Android版本特性

一、Android L 后 ART替换dalvik

Dalvik是Google公司自己设计用于Android平台的虚拟机
Dalvik虚拟机是Google等厂商合作开发的Android移动设备平台的核心组成部分之一。
它可以支持已转换为** .dex格式**的Java应用程序的运行,.dex格式是专为Dalvik设计的一种压缩格式,适合内存和处理器速度有限的系统。
Dalvik 经过优化,允许在有限的内存中同时运行多个虚拟机的实例,并且每一个Dalvik 应用作为一个独立的Linux 进程执行。独立的进程可以防止在虚拟机崩溃的时候所有程序都被关闭。

即Android Runtime
ART 的机制与 Dalvik 不同。在Dalvik下,应用每次运行的时候,字节码都需要通过即时编译器(just in time ,JIT)转换为机器码,这会拖慢应用的运行效率,而在ART 环境中,应用在第一次安装的时候,字节码就会预先编译成机器码,使其成为真正的本地应用。这个过程叫做预编译(AOT,Ahead-Of-Time)。这样的话,应用的启动(首次)和执行都会变得更加快速。

ART有什么优缺点呢?


优点:
1、系统性能的显著提升。
2、应用启动更快、运行更快、体验更流畅、触感反馈更及时。
3、更长的电池续航能力。
4、支持更低的硬件。
缺点:
1.机器码占用的存储空间更大,字节码变为机器码之后,可能会增加10%-20%(不过在应用包中,可执行的代码常常只是一部分。比如最新的 Google+ APK 是 28.3 MB,但是代码只有 6.9 MB。)
2.应用的安装时间会变长。

tips:现在智能手机大部分都可以让用户选择使用Dalvik还是ART模式。当然默认还是使用Dalvik模式。
用法:设置-辅助功能-开发者选项(开发人员工具)-选择运行环境(不同的手机设置的步骤可能不一样)

Android 各个版本适配:

https://www.jianshu.com/p/bac6cbedf0d3

5.0 (API 21)新特性—2014年(Lollipop)

  1. 全新的Material Design设计风格。
  2. 支持64位ART虚拟机。
    1. 放弃了之前一直使用的Dalvik虚拟机,改用了ART虚拟机,实现了真正的跨平台编译。(todo:弄懂为何)
  3. 引入RecyclerView(todo:它的优点)。
    1. Android ListView与RecyclerView对比浅析
  4. 新增悬挂式Notification。
    1. 相较于普通式和折叠式Notification需要拉下通知中心才可以查看的交互,悬挂式直接显示在屏幕上方,并且焦点不变,仍然在用户操作的界面上,不会打断用户的操作,过几秒会消失。
    2. Android 5.0 支持对Notification设置显示等级的能力。通知黑白图标
  5. 引入更加灵活的Toolbar,取代ActionBar

6.0 (API 23) 新特性—2015年(Marshmallow)

  1. 统一支付标准Android Pay。

  2. 指纹支持。

  3. Doze电量管理。

    1. 手机静止不动一段时间后,会进入Doze电量管理模式,提高续航时间。
  4. APP Links。

    1. 加强了软件间的关联,支持点击链接跳转到对应的App(todo:scheme调起???)
  5. Now on Tap

    1. 长按Home键激活Now on Tap,他会识别当前屏幕上的内容并创建Now卡片。
  6. 【重点】运行时权限管理

    1. targetSdkVersion >= 23。

    2. 分位Normal Permissions和Dangerous Permissions。

    3. ActivityCompat.checkSelfPermissions()请求,低于6.0的版本,次方法默认返回值为PackManager.PERMISSION_GRANTED。

    4. onRequestPermissionsResult()回调结果。

    5. 如果用户选择了『不在询问』,下次则不会弹框,而是直接处理拒绝后的逻辑。

  7. 取消支持 Apache HTTP 客户端

7.0 (API 24)新特性—2016年(Nougat)

  1. 多窗口模式(分屏模式)
    1. 进入多窗口的Activity生命周期变化,会先onDestroy销毁,随后重建,停在onPause状态。
    2. 推出多窗口的Activity生命周期变化,接着上面onPause->onDestroy,随后正常重建。
    3. 禁用多窗口模式:在manifest.xml中配置android:resizeableActivity="false"
  2. Data Server
    1. 一种流量保护机制,启用Data Server后,系统将拦截后台应用的数据使用。
  3. 改进的Java8语言支持。
    1. 支持java8,可以使用lambda表达式等。
  4. 自定义壁纸
    1. 设置壁纸时,可以选择是设置桌面还是锁屏壁纸。
  5. 快捷回复
    1. 在通知中快捷回复。
  6. 快速设置
    1. 下拉通知栏顶部,有edit按钮,可以对菜单进行自定义添加、删除、拖动排序。
  7. 其它:Daydream VR、后台省点、Unicode 9支持和全新的emoji表情符号、Google Assistant。
  8. FileProvider,7.0 的通知栏,改变了样式,增加了小图标,还可以显示通知数

8.0 (API 26) 新特性—2017年(Oreo)

  1. 【重点】通知中心
    1. 所有通知都必须分到一个渠道,即新增NotificationChannel。
  2. 画中画(PIP)支持
    1. 一种特殊的多窗口模式,常用于视频播放。
  3. 自适应启动器图标
    1. 桌面icon在不同的设备型号上显示为不同的形状。
  4. 后台执行限制
    1. 后台service限制。
    2. 广播限制:除了有限的例外情况,应用无法使用清单注册隐式广播。
  5. 后台位置信息限制
    1. 为降低耗电量,后台应用检索用户当前位置信息的频率会得到限制。
  6. 其它:自动填充框架、自动调整TextView的大小、WebView API、多显示器支持
  7. 通知分渠道

9.0 (API 28) 新特性—2018年(Pie)

  1. 全面支持全面屏
    1. 通过DisplayCutout类可以确定非功能区域的位置和形状,这些区域不应显示内容。
  2. 动画
    1. 引入AnimatedImageDrawable类,用于显示GIF和WebP动画图像。
  3. 利用Wi-Fi RTT进行室内定位。
  4. 隐私变更
    1. 限制后台访问设备传感器,限制通过WiFi扫描检索到的信息等。
  5. 其它:机器学习,HDR VP9视频、HEIF图像压缩和Media API、对使用非SDK接口的限制。
  6. 刘海屏幕,强制https请求

10.0 (API 29) 新特性—2019年(Q)

  1. 5G支持。
  2. 支持可折叠设备。
  3. 【重点】暗黑主题
  4. 手势导航。
    1. 全面屏手势操作。
  5. 智能回复。
    1. 通过机器学习预测你在回复消息时可能会说些什么。
  6. 用户隐私。给用户更多应用程序控制权。
    1. 提供仅这一次、应用使用时授权等选择。
  7. ART优化,
    1. 添加了一种垃圾回收机制,节省垃圾回收的时间,帮助在低版本设备上顺畅运行。
  8. 机器学习更新。
  9. 夜间模式,存储 分区

11.0 (API 30)新特性—2020年(R)

  1. 短信 更新进,提供更加友好的交互。
  2. 权限和隐私
    1. 在Android10的用户隐私基础上,新增了位置、麦克风和摄像头的一次性权限许可。
  3. 内置屏幕录制。
  4. 适配不同设备。
    1. 折叠屏支持优化,增加铰链角度传感器API等。
    2. 高刷新率支持。
  5. 网络优化。
    1. 新增『动态计量API』,如果检测到连接到无限5G信号,将可以访问最高质量的视频和图片。
  6. 强制执行存储分区

12.0 (API 31)新特性—2021年(S)

  1. 原生的ImageDecoder支持GIF和WebP格式。
  2. 支持圆角。
    1. Display.getRounderCorner()获取屏幕圆角的详细信息。
  3. 更易用的模糊、色彩滤镜等特效。
    1. View.setRenderEffect(RenderEffect) 将特效直接应用于视图
  4. 限制对MAC地址的访问。
  5. 应用覆盖控制。
    1. 可以控制是否允许在自己的内容上显示这些覆盖图层,调用Window#setHideOverlayWindows(),表明不允许TYPE_APPLICATION_OVERLAY的窗口显示。
  6. 应用无法关闭系统对话框。
    1. 弃用了 ACTION_CLOSE_SYSTEM_DIALOGS intent 操作。
  7. Activity/BroadcastReciver/Service 声明了Filter,则必须显示设置android:exported属性。
  8. 必须为每个PendingIntent设置可变性。
  9. 后台应用无法再启动前台服务。
  10. 请求精确位置,需同时申请 ACCESS_FINE_LOCATION 和 ACCESS_COARSE_LOCATION 权限

13.0 (API 33)新特性—2022年(T)

  1. 细分媒体权限:将 READ_EXTERNAL_STORAGE 细分为IAMGES、VIDEO、AUDIO权限(若设置 targetSdk>=33 则此项必需适配!)
  2. WebView调整:废弃setAppCacheEnabled与setForceDark方法;
    (若设置 targetSdk>=33 则此项必需适配!)
  3. 静态广播注册:注册静态广播时,需设置对其他应用的可见性
    (若设置 targetSdk>=33 则此项必需适配!)
  4. 通知权限:新增运行时通知权限:POST_NOTIFICATIONS
    (若设置 targetSdk>=33 则此项必需适配!)
  5. Wi-Fi :新增 NEARBY_WIFI_DEVICES 运行时权限
    (若设置 targetSdk>=33 则此项必需适配!)
  6. 身体传感器后台权限:新增 BODY_SENSORS_BACKGROUND 运行时权限
    (若设置 targetSdk>=33 则此项必需适配!)
  7. 剪切板内容隐藏:新增内容隐藏API
    (根据业务需求,选择性适配!)
  8. 非 SDK 接口的限制
    (若设置 targetSdk>=33 则此项必需适配!

14.0 (API 33)新特性—2022年(T)

  1. 进程只能杀死自己的后台进程

    说明:从Android 14开始,当应用调用 killBackgroundProcesses() 时,该API只能杀死应用自己的后台进程。如果传入其他应用的包名,该方法对其他应用的后台进程没有影响。

  2. 前台服务类型是必填项

    说明:Android 14 为目标平台,则必须指定适当的前台服务类型。与以前的 Android 版本一样,可组合使用多个类型。

    Android 14(U)适配攻略 - 简书

  • 20
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值