Android 各版本适配(更新到Android14)

一 简介

1.1 Android 目前最新版已更新到了Android14,google市场每次更新都要求必须同步更新项目API,否则会有下架风险。

1.2 Android 每一个版本更新都对电量优化,通知的使用,隐私权限方面做了修改,所以重点适配方面也是在这几个方面

二 各版本更新变化

2.1 Android 1.0 (API Level 1) - 2008年9月发布,首次发布的Android版本,提供了基本功能。

2.2 Android 1.1 (API Level 2) - 2009年2月发布,增加了一些功能改进,如支持地图和小部件。

2.3 Android 1.5 (Cupcake, API Level 3) - 2009年4月发布,首次引入了虚拟键盘和小部件。

2.4 Android 1.6 (Donut, API Level 4) - 2009年9月发布,增强了搜索功能,支持不同屏幕尺寸。

2.5 Android 2.0 (Eclair, API Level 5) - 2009年10月发布,引入了多帐户支持、图像和音频增强。

2.6 Android 2.2 (Froyo, API Level 8) - 2010年5月发布,增加了对Flash的支持,提升了性能和安全性。

2.7 Android 2.3 (Gingerbread, API Level 9) - 2010年12月发布,优化了用户界面和游戏性能,增加了对NFC的支持。

2.8 Android 3.0 (Honeycomb, API Level 11) - 2011年2月发布,专为平板电脑设计,改进了界面和多任务功能。

2.9 Android 4.0 (Ice Cream Sandwich, API Level 14) - 2011年10月发布,统一了智能手机和平板电脑的用户界面,增加了面部解锁。

2.10  Android 4.1 (Jelly Bean, API Level 16) - 2012年7月发布,增强了流畅度和通知功能。

2.11 Android 4.4 (KitKat, API Level 19) - 2013年10月发布,优化了性能,提高了在低内存设备上的运行效果。

2.12 Android 5.0 (Lollipop, API Level 21) - 2014年11月发布,彻底改进了用户界面,增加了Material Design。

2.13 Android 6.0 (Marshmallow, API Level 23) - 2015年10月发布,增强了权限管理和Doze模式以延长电池使用。

2.14 Android 7.0 (Nougat, API Level 24) - 2016年8月发布,支持分屏模式和增强的通知功能。

2.15 Android 8.0 (Oreo, API Level 26) - 2017年8月发布,引入了画中画、多窗口和通知渠道。

2.16 Android 9.0 (Pie, API Level 28) - 2018年8月发布,改进了用户界面,增加了手势导航和数字健康功能。

2.17 Android 10 (API Level 29) - 2019年9月发布,全面改进隐私权和位置控制,并引入黑暗模式。

2.18 Android 11 (API Level 30) - 2020年9月发布,增强了通讯管理和多媒体功能。

2.19  Android 12 (API Level 31) - 2021年10月发布,改进了隐私和新的用户自定义界面。

2.20 Android 13 (API Level 33) - 2022年8月发布,进行了小幅改进,包括新的个性化选项和隐私特性。

2.21 Android 14 (API Level 34) - 2023年预期发布,预计将继续增强隐私和用户体验。

三 版本,名字,和api对比表

Android Version Name API Level
Android 15 V 35
Android 14 U 34
Android 13 T 33
Android 12L S 31
Android 12.0 S 30
Android 11.0 R 29
Android 10.0 Q 28
Android 9.0 Pie 27
Android 8.1 Orea 26
Android 8.0 Orea 25
Android 7.1.1 Nougat 24
Android 6.0 MarshMallow 23
Android 5.1 Lollipop 22
Android 5.0 Lollipop 21
Android 4.4W KitKat Wera 20
Android 4.4 KitKat

19

四 各版本适配

4.1 Android4.4到android5(API19-22)

权限比较低,不需要太多权限就能访问,不再多介绍,现在android5以下手机已经非常少了(开发板RK系列除外)

4.2 Android6(API23) 

运行时权限

  • android6.0 之前,我们把app需要用到的权限全部罗列在Manifest清单文件中。安装app时android系统会询问用户是否授予这些权限,拒绝后则无法安装app。如果授予,则安装app,之后无法修改授予状态。
  • android6.0 将权限分为普通权限(不涉及用户隐私和安全)和危险权限(设计用户隐私和安全)。普通权限和andorid6.0之前一样,在Manifest清单文件中申请即可。危险权限需要在使用时动态申请,由用户决定是否授予

HttpClient的移除

自Android6.0起,HttpClient系列代码从SDK中剔除,推荐使用HttpURLConnection。

4.3 Android7(API24) 

 应用间共享文件

  • 对于面向 Android 7.0 的应用,Android 框架执行的 StrictMode API 政策禁止在您的应用外部公开 file:// URI 。如果一项包含文件 URI 的 intent 离开您的应用,则应用出现故障,并出现 FileUriExposedException 异常。
  • 要在应用间共享文件,您应发送一项 content:// URI,并授予 URI 临时访问权限。进行此授权的最简单方式是使用 FileProvider 类。
     
  • 在AndroidManifest.xml清单文件中注册provider
    authorities 是标记我们这个ContentProvider的唯一标识,是一个用于认证的暗号,我们一般默认使用包名+fileprovider来定义。(能不能使用别的,可以,abcd都行,但是没必要)
    
    name 是具体的FileProvider类,如果是系统的,就用上面的这种,如果是自定义的,就写自定义FileProvider的全类名。
    
    exported 是否限制其他应用获取此FileProvider。
    
    grantUriPermissions 是否授权其他应用获取访问Uri权限,一般为true。
    
    meta-data 和下面的 name 都是固定的写法,重点是 resource 需要自己实现规则,定义哪些私有文件会被提供访问。
    <manifest>
      ...
      <application>
        ...
        <provider
            android:name="androidx.core.content.FileProvider"
            android:authorities="com.demo.fileprovider" <!--替换为自己的包名-->
            android:exported="false"
            android:grantUriPermissions="true">
            <meta-data
                android:name="android.support.FILE_PROVIDER_PATHS"
                android:resource="@xml/paths" />
        </provider>
        ...
      </application>
    </manifest>
    
  • res/xml中定义对外暴露的文件夹路径:
    root-path 从SD卡开始找 例如 storage/emulated/0/Android/data/com.guadou.kt_demo/cache/pos/naixiao-1122.jpg
    external-path 从外置SD卡开始 例如 Android/data/com.guadou.kt_demo/cache/pos/naixiao-1122.jpg
    external-files-path 外置沙盒file目录 例如 pos/naixiao-1122.jpg (真实目录在 Android/data/com.guadou.kt_demo/cache/pos/)
    external-cache-path 外置沙盒cache目录 例如 naixiao-1122.jpg (真实目录在 Android/data/com.guadou.kt_demo/cache/)
    files-path 和上面的同理,只是在内置的data/data目录下面
    cache-path 和上面的同理,只是在内置的data/data目录下面
    <?xml version
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值