美文网首页
Android 5.0-10.0 版本更新笔记

Android 5.0-10.0 版本更新笔记

作者: silencefun | 来源:发表于2017-11-09 09:01 被阅读0次

    update time :2020年3月6日 12:41:23

    一、5.0 新特性

    Android 5.0 Lollipop开发代号:Android L
    2014年6月25日于Google I/O 2014大会上发布Developer版(Android L),
    2014年10月15日正式发布且名称定为Lollipop“棒棒糖”。

    • 5.0 主要新特性概述
      5.0 API
      1.采用全新Material Design界面
      2.支持64位处理器
      3.全面由Dalvik转用ART(Android Runtime)编译,性能可提升四倍
    Material Design組件
    • RecyclerView
      提供一种插拔式的体验,它具有高度的解耦、异常的灵活和更高的效率,通过设置它提供的不同LayoutManager、ItemDecorration、ItemAnimation可实现更加丰富多样的效果。只是条目分割线需要自定义。

    • 卡片CardView
      继承自FrameLayout类,所以子控件设置原则和FrameLayout一样。并且可以设置圆角和阴影。

    • 三种Notification
      5.0加入了一种新的模式Notification的显示等级。
      1.普通Notification
      创建Builder 对象,添加各种属性,用PendingIntent 控制跳转,最后是创建NotificationManager调用notify方法。
      2.折叠式Notification
      用RemoteViews来创建自定义Notification视图。
      3.悬挂式Notification(5.0新增)
      调用setFullScreenIntent来将Notification变为悬挂式Notification。焦点不变,不会影响用户操作,显示几秒会自动消失。

    • Toolbar

    • Palette
      用Palette提取颜色,从而使主题能够动态适应当前界面的色调,做到整个App颜色的基调和谐统一。

    • FloatingActionButton
      是一种悬浮按钮,继承至ImageView,拥有ImageView的所有属性。

    • TextInputLayout
      继承自linearlayout,里边只能包裹一个控件,edittext或继承自edittext,在用户输入的时候能将原来的提示文字浮动在控件上边。

    • Snackbar
      轻量级的反馈机制,手机屏幕下方的一个弹框,在屏幕所有层的最上方,包括浮动操作按钮。

    • AppBarLayout
      继承自LinearLayout,布局方向为垂直方向。

    • TabLayout
      水平布局展示Tabs,经常与Viewpager合用。

    • NavigationView
      NavigationView可以用来快速的创建一个导航菜单。菜单的内容可以通过一个menu资源文件来配置。

    二、6.0新特性

    2015年5月28日举行。在发布会上代号为“Marshmallow(棉花糖)”的安卓6.0系统正式推出
    6.0 API
    ● 应用权限管理
    6.0 应用权限管理成为系统级的功能,
    ● SD卡可能和内置存储“合并”
    ● Android Pay
    ● 原生指纹识别认证Fingerprint Support(指纹支持)。

    三、7.0新特性

    Android7.0系统的初次公开亮相于2016年5月18日的Google I/O大会。 7.0 主要新特性概述7.0 API
    ● 多窗口模式(分屏模式)
    ● Data Saver(流量保护)
    ●通知消息快捷回复
    ● 通知消息归拢
    ● 后台省电

    ● 兼容问题
    Android 7.0 禁止在应用外部公开 file:// URI,所以我们必须使用 content:// 替代。那我们就需要应用到FileProvider。应用场景就是:拍照图片的保存路径、升级时apk的下载路径。

    Android N 引入一项新的应用签名方案 APK Signature Scheme v2,它能提供更快的应用安装时间和更多针对未授权 APK 文件更改的保护.

    四、8.0新特性

    2017年8月22日,谷歌正式发布了Android 8.0的正式版,其正式名称为:Android Oreo(奥利奥)。
    2017年12月5日谷歌正式发布了Android 8.1的正式版。

    • 8.0 主要新特性概述
      8.0 API
      ● 通知渠道 — Notification Channels
      引入通知渠道,提高用户体验,方便用户管理通知信息。
      ,严格限制了后台进程对手机资源的调用.
      ● 取消了大部分静态广播注册

    适配
    0.通知渠道
    在Android 8.0中所有的通知都需要提供通知渠道,否则,所有通知在8.0系统上都不能正常显示。
    1.透明窗口不允许锁定屏幕旋转
    窗口透明 + 固定屏幕方向 会抛出下面的异常:

       Caused by: java.lang.IllegalStateException: Only fullscreen opaque activities can request orientation
    

    2.8.0中新增了一种悬浮窗的窗口类型,TYPE_APPLICATION_OVERLAY,如果应用使用SYSTEM_ALERT_WINDOW权限并且尝试使用在其它应用和系统窗口上方显示提醒窗口,都会显示在TYPE_APPLICATION_OVERLAY窗口类型的下方。

     TYPE_PHONE
     TYPE_PRIORITY_PHONE
     TYPE_SYSTEM_ALERT
     TYPE_SYSTEM_OVERLAY
     TYPE_SYSTEM_ERROR
     TYPE_TOAST
    

    如果该应用的targetSdkVersion >= 26,则应用只能使用TYPE_APPLICATION_OVERLAY窗口类型来创建悬浮窗。

    五、9.0新特性

    ● 适配异形全面屏
    ● 黑暗模式
    ● 非 SDK 接口访问限制
    ● GPS定位之外的WiFi定位
    ●Material Design迎来2.0时代
    ●仪表板 Android的仪表板显示显示你花了多少时间使用手机
    适配
    1.限制非Activity场景启动Activity
    从Android P开始,只有当Intent flag中指定了FLAG_ACTIVITY_NEW_TASK,才允许在非Activity场景启动Activity。如果不在Intent添加FLAG_ACTIVITY_NEW_TA

    2.弃用 Apache HTTP Client
    在 Android 9.0 中移除了所有 Apache HTTP Client 相关的类,因此我们的应用或是一些第三方库如果使用了这些类,就会抛出找不到类的异常
    需要继续使用 Apache HTTP Client ,可通过以下方法进行适配:

    在 AndroidManifest.xml 中添加以下内容:

    <uses-library android:name ="org.apache.http.legacy"android:required="false"/>

    或者在应用中直接将 Apache HTTP Client 相关的类打包并进行引用
    3.设备识别码
    通过Build.SERIAL不再能够获取到真实数据,Build.serial:unknown,需要通过Build.getSerial()获取。同时需要用户授权READ_PHONE_STATE权限。

    1. 强制执行 FLAG_ACTIVITY_NEW_TASK 要求

    在 Android 7.0(API 级别 24)之前,若开发者需要通过非 Activity context 启动 Activity,就必须设置 Intent 标志 FLAG_ACTIVITY_NEW_TASK,否则会启动失败并抛出以下异常

    android.util.AndroidRuntimeException: Calling startActivity() from outside of an Activity  context requires the FLAG_ACTIVITY_NEW_TASK flag. Is this really what you want?
    

    但这个要求在更新 Android 7.0 以后由于系统问题被临时取消了,开发者即使不设置标志也可以正常启动 Activity。而在 Android 9.0 中官方修复了这个问题,这个要求重新开始强制执行,因此开发者在适配 Android 9.0 时需要注意这个问题。
    5.限制 HTTP 网络请求

    Android 9.0 中限制了 HTTP(明文传输)网络请求
    Android 6.0 中引入了是否允许网络使用明文传输的配置:

        <application android:usesCleartextTraffic=["true" | "false"]>
    

    原来默认为 true,但在 Android 9.0 中默认值改为了 false,因此将配置手动设为 true 即可解决明文传输被限制的问题

    六、10.0新特性

    2019.09 Android Q
    ●.可折叠设备(更改了resizeableActivity) 清单属性的工作方式);
    ●.5G网络,提速降延迟;
    ●.系统级深色主题;
    ●.新的设备面板;
    ●.共享快捷方式;
    ●剪切板隐私限制

    适配
    1.用户存储权限的变更
    Android Q 在外部存储设备中为每个应用提供了一个“隔离存储沙盒”(例如 /sdcard)。任何其他应用都无法直接访问您应用的沙盒文件。由于文件是您应用的私有文件,因此您不再需要任何权限即可在外部存储设备中访问和保存自己的文件。此变更可让您更轻松地保证用户文件的隐私性,并有助于减少应用所需的权限数量。
    2.手机共享路径

    读取其他APP创建的共享文件,例:相册、屏幕快照 等,则需要申请READ_EXTERNAL_STORAGE权限:
    照片:存储在 MediaStore.Images 中。
    视频:存储在 MediaStore.Video 中。
    音乐:存储在 MediaStore.Audio 中。

    相关文章

      网友评论

          本文标题:Android 5.0-10.0 版本更新笔记

          本文链接:https://www.haomeiwen.com/subject/petpmxtx.html