Android的适配之版本内容适配
版本内容适配
当前主要需要进行适配的版本有6.0、7.0、8.0、9.0、10.0、11.0、12.0、13.0
Android 14
- 前台服务需要提供服务类型
<service android:foregroundServiceType="specialUse/systemExempted/remoteMessaging/shortService/health等"></service> - 对于需要动态加载的代码,需要指定为只读状态
- 安装App的版本提高到6.0,,不在兼容安装6.0以下的App
- 闹钟、字体缩放、通知权限调整、注册广播需要export等
Android 13
细化的媒体权限、内置图片选择器、隐藏剪贴板中的敏感内容、屏蔽不匹配的 Intent、针对 Wifi 设备的新运行时权限、广告 ID 权限。
Android13的适配内容
Android 12
重点需要适配的是:授予大致位置信息权限、剪贴板访问通知、更安全的组件导出。
参考
Android 11
重点是
- 强制执行分区存储
- 单次授权和自动重置权限
- ACCESS_BACKGROUND_LOCATION权限申请的升级
其他升级的
- 签名
- 状态栏的高度需要使用WindowMetrics来获取
- 软件包可见性
Android 10
重点适配内容
- 分区存储:应用数据分区和多媒体存储
- 设备跟踪的ID识别增加特许权限
- 限制对剪贴板数据的访问权限
- 位置权限增加:ACCESS_BACKGROUND_LOCATION
其他
- 通知回复
- 夜间模式(深夜主题)
- 可折叠设备的支持
- 快捷方式
由于系统的供应商不同,存储的路径可能不同,这里默认是以源码的路径进行展示
// /data/data/your.application.package/customDir
File internal_m1 = getDir("customDir", 0);
// /data/data/your.application.package/files
File internal_m2 = getFilesDir();
// /storage/emulated/0
File external_m1 = Environment.getExternalStorageDirectory();
// /storage/emulated/0/Android/data/your.application.package/files
File external_m2 = getExternalFilesDir(null);
// /storage/emulated/0/Android/data/your.application.package/files/Pictures
File external_m2_Args = getExternalFilesDir(Environment.DIRECTORY_PICTURES);
// /storage/emulated/0/Pictures
File external_m3 = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES);
//如果有可移动的存储介质的话 file[]数组长度为两个
// /storage/emulated/0/Android/data/your.application.package/files;/storage/sdcard1/Android/data/your.application.package/files
File[] external_AND_removable_storage_m1 = getExternalFilesDirs(null);
// /storage/emulated/0/Android/data/your.application.package/files/Pictures;/storage/sdcard1/Android/data/your.application.package/files/Pictures
File[] external_AND_removable_storage_m1_Args =getExternalFilesDirs(Environment.DIRECTORY_PICTURES);
Android 10的路径适配分类展示


Android 9
- 非加密的网络请求
- canvas的修改
if (Build.VERSION.SDK_INT >= 26) {
canvas.clipPath(mPath);
} else {
canvas.clipPath(mPath, Region.Op.REPLACE);
}

Android 8
- 通知增加分组
- 安装APK
- SecurityException的闪退,配置ContentProvider
- 静态广播无法正常接收
- Android 8.0 非全屏透明页面不允许设置方向
Android 7
- 应用间共享文件:FileProvider
- V2签名
- apache库
defaultConfig {
useLibrary 'org.apache.http.legacy'
}
Android 6
- 运行时权限的支持和分级,这方面市场上已经有很多的成熟方案,在AndroidX之后的权限申请可以采用新的申请方式(使用ActivityResultContract),效果更好。
- 取消Apache HTTP
- 硬件标识符访问权的修改
存储区别示意图

Android 5
- ART取代Dalvik
- 通知的修改
- Material Design的引入
Android 4
- 沉浸式全屏和透明系统状态栏
- 属性动画

浙公网安备 33010602011771号