Android版本适配

Android版本判断相关方法:

	if(Build.VERSION.SDK_INT < Build.VERSION_CODES.N){...}
	@TargetApi(Build.VERSION_CODES.N)
	public void function(){}

几个重要版本:

Android版本API版本代号
4.419KITKAT
5.021LOLLIPOP
6.023M
7.024N
8.026O
9.028P
10.029Q
Android 6.0:

1.动态申请危险权限
动态申请危险权限,这里在授权一个危险权限的时候,会将同组的危险权限一并授权,这一点在Android 8.0有改动,具体参考权限管理

2.状态栏黑色图标
状态栏开放设置黑色图标的接口,参考状态栏设置

Android 7.0:

1.引入另一种apk签名方式:
引入APK Signature Scheme v2,参考两种APK签名方式

2.后台优化
后台优化:限制了三个隐式广播静态注册无效,如CONNECTIVITY_ACTIONACTION_NEW_PICTUREACTION_NEW_VIDEO ,目的是防止有些App通过静态广播自动唤醒

Android 8.0:

1.自适应App图标

2.PHONE中增加两个权限
ANSWER_PHONE_CALLS允许接电话,READ_PHONE_NUMBERS允许读取设备中的电话号码

3.前台任务可以创建前后台任务,后台服务创建后台或前台任务被禁止

4.修改了Notifation的接口
开始使用Channel来管理Notification,参考Notification

5.后台优化:
进一步限制了一些隐式广播的静态注册,一些隐式广播的静态注册仍可以使用

Android 9.0:

1.刘海屏幕:
加入刘海屏适配,参考刘海屏

2.前台服务权限:
前台服务需要在manifest文件添加FOREGROUND_SERVICE权限:

 	<uses-permission android:name="android.permission.FOREGROUND_SERVICE"/>

3.默认禁止http连接
只支持https连接,如果要使用Http连接,需要在res下的xml目录新建一个文件

	<network-security-config>
    	<base-config cleartextTrafficPermitted="true" />
	</network-security-config>

然后在manifest的application节点加入:

	android:networkSecurityConfig="@xml/xxx"
Android 10.0:

1.分区存储
获取外部文件时通过Context.getExternalFilesDir()得到应用的私有目录,这个目录下的文件会随着应用一起被删除,访问这个文件夹下的文件不再需要申请存储读写权限;且Environment.getExternalStorageState()将无法访问外部文件
如果想要文件不随应用一起被删除,则需要通过MediaStore来实现,同时需要申请存储权限;

2.增加针对后台定位的权限
增加了新的权限ACCESS_BACKGROUND_LOCATION,表示应用程序是否可以在处于后台运行时使用定位

3.设备唯一标识符
通过WifiInfo.getMacAddress()获取的Mac地址变为了固定默认值;
此外IMEI(国际移动设备身份码)和UUID(唯一设备表示码)都只能获取到null
Android Q 获取设备唯一ID的做法:
待填坑

4.后台启动Activity
Android Q只允许在应用前台启动Activity,想要在一个应用启动另外一个应用的Activity,需要创建通知等待用户点击,这样做可以减少用户操作中断

5.非SDK接口
非SDK接口是API没有对外提供的接口如private接口,通过反射等方式调用了非SDK接口的行为会带来兼容性问题;

Android是一个开源的移动操作系统,由Google开发。它的各个版本都有不同的特性和适配要求。下面是Android各个版本适配情况: 1. Android 1.0:这是Android的首个正式版本,发布于2008年。它主要适配了当时的早期智能手机。 2. Android 1.5 Cupcake:这个版本引入了许多新特性,包括虚拟键盘、文本选择和复制功能等。它的适配要求相对较低,可以在较旧的设备上运行。 3. Android 1.6 Donut:这个版本增加了搜索框和快捷方式等功能。它的适配要求与Cupcake相似。 4. Android 2.0/2.1 Eclair:这个版本引入了许多新特性,包括支持多点触控、HTML5视频播放和Live壁纸等。它的适配要求相对较高,需要较新的设备支持。 5. Android 2.2 Froyo:这个版本引入了许多新特性,包括支持移动热点和Adobe Flash等。它的适配要求与Eclair相似。 6. Android 2.3 Gingerbread:这个版本引入了许多新特性,包括支持NFC和下载管理器等。它的适配要求相对较高,需要较新的设备支持。 7. Android 4.0 Ice Cream Sandwich:这个版本引入了许多新特性,包括全新的用户界面和面部解锁等。它的适配要求相对较高,需要较新的设备支持。 8. Android 4.1/4.2/4.3 Jelly Bean:这个版本引入了许多新特性,包括Google Now和通知增强等。它的适配要求与Ice Cream Sandwich相似。 9. Android 4.4 KitKat:这个版本引入了许多新特性,包括透明状态栏和打印支持等。它的适配要求相对较高,需要较新的设备支持。 10. Android 5.0/5.1 Lollipop:这个版本引入了许多新特性,包括Material Design和多用户支持等。它的适配要求相对较高,需要较新的设备支持。 11. Android 6.0 Marshmallow:这个版本引入了许多新特性,包括指纹识别和运行时权限等。它的适配要求相对较高,需要较新的设备支持。 12. Android 7.0/7.1 Nougat:这个版本引入了许多新特性,包括分屏模式和通知增强等。它的适配要求相对较高,需要较新的设备支持。 13. Android 8.0/8.1 Oreo:这个版本引入了许多新特性,包括自适应图标和通知渠道等。它的适配要求相对较高,需要较新的设备支持。 14. Android 9 Pie:这个版本引入了许多新特性,包括手势导航和应用程序切片等。它的适配要求相对较高,需要较新的设备支持。 15. Android 10:这个版本引入了许多新特性,包括暗黑模式和系统级录屏等。它的适配要求相对较高,需要较新的设备支持。 16. Android 11:这个版本引入了许多新特性,包括聊天气泡和无线Android Auto等。它的适配要求相对较高,需要较新的设备支持
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值