Android P(Android 9.0)的新特性

Android 9.0已经发布了第三个预览版本,具体包含哪些新特性?

  1. Google I/O 2018 watch
  2. Google I/O 2018 for developer watch
  3. What’s new in Android Overview(Google I/O ‘18) watch

1.Android P

1.1 Android P上的新功能

1. 使用 WiFi RTT 进行室内定位

在Android P版本中在硬件设备中添加对IEEE 802.11mc WiFi协议的支持,并对上层封装了API,从而可以在应用中使用室内定位。室内定位具体是怎么做到的呢?这里有一个概念RTT,也称为WIFI往返时间,具体来说,移动设备会根据RTT来计算移动设备与附近WIFI接入点的距离,WIFI接入点越多,计算的位置越准确,具体可以精确到1-2m,在此过程中移动设备不需要连接到WIFI接入点,保证了移动设备的隐私。

2. 凹口屏幕的支持

20180703153060177753280.png
在Android P上添加了对凹口屏幕的支持,并且提供了相关个API,可以调用 getDisplayCutout() 来判断本地设备是否具有凹口屏幕,然后再确定裁切区域的位置和形状。可以在设置里,设置凹口屏的显示方式。

3. 消息通知的改进

在Android O上,Google引入了一种全新的显示样式,MessagingStyle 突出强调了来信人以及可采用的回复方式。在Android P上对这种样式又进行了优化,当收到短信后,可以选择智能回复,甚至可以附加照片和表情。

4. 多摄像头 API

在Android P的设备中,添加对多个摄像头的API支持,可以通过两个或更多实体摄像头同时访问视频流。所以您可以在具有双前置或双后置摄像头的设备上,实现单摄像头无法实现的创新功能:如无缝变焦、散景和立体视觉。

5. 用于位图和 drawable 的 ImageDecoder

20180703153060216289421.png
Android P 引入了一种更简单的方法来将图像解码为位图或 drawable,即用 ImageDecoder 替代了 BitmapFactory。ImageDecoder 允许您从字节缓冲区、文件或 URI 创建位图或 drawable。它比 BitmapFactory 多出了几个优势,包括对精确缩放的支持,单步解码至硬件存储器,对解码后处理的支持,以及对动画图像的解码。

6. HDR VP9 视频、HEIF 以及媒体 APIs

20180703153060219040472.png
添加了对 HEIF 图像编码的支持,这种格式被广泛使用,改善了照片压缩效果,并减少了所需的存储空间和网络流量。

7. JobScheduler 中的数据费用敏感度

任务现在可以声明其估计的数据大小、信号预取以及指定详细的网络要求 —— 运营商可以报告网络状况是拥塞还是不计量,然后,JobScheduler 会根据网络状态管理工作。例如,当网络拥塞时,JobScheduler 可能推迟大型网络请求。而在网络可以不计量使用时,则可以运行多种预加载作业 (例如,预读标题) 来改进用户体验。

8. 神经网络 API 1.1

加速 Android 上设备内置的机器学习。

9. 自动填充的改进

20180703153060227647836.png
在 Android P 中,此版本还包含新的 API,允许密码管理程序 (Password Manager) 改进 Autofill 用户体验,例如更好的数据集过滤,输入清理和兼容模式。

10. 用于 NFC 支付和安全交易的 Open Mobile API

Android P 将 GlobalPlatform Open Mobile API 的实现添加到 Android 中。在支持的设备上,应用可以使用 OMAPI API 访问 Android 设备上的安全元素 (SE) ,以启用智能卡支付等安全服务。

11.在Android P的设备中优化了任务栏的显示

20180703153060238237889.gif

12.在Android P中提供了新型的快捷方式App Action和Slices

20180703153060348129235.gif

2018070315306035231551.gif

1.2 Android P版本中进行的优化

1. 应用安全

20180703153060377944006.png
Android P 现在提供了一个标准系统对话框,以提示用户触摸指纹传感器,并且在文案和位置管理方面会根据不同的设备做相应的匹配。同时,应用可以使用新的 FingerprintDialog API 触发系统指纹对话框。

将所有网络流量从明文 (未加密的 HTTP) 转向 TLS,我们还将更改网络安全性配置 (Network Security Configuration) 的默认值,以阻止所有明文流量。

2.用户隐私

为了更好地保证隐私,Android P 限制所有处于空闲状态的应用对话筒、摄像头和所有 SensorManager 传感器的访问。当一个应用的 UID 空闲时,麦克风将会报告系统 “无音频信号”,传感器将会停止报告事件。应用使用的摄像头也会断开连接。

3.ART 性能提升

扩展了 ART 对执行配置文件的使用,以优化应用并减少已编译应用代码的内存占用量。ART 现可使用配置文件信息在设备上重写 DEX 文件,在多个人气的应用中内存占用减少高达 11%。

4.Kotlin 优化

改进了一些编译器优化,尤其是那些针对循环的编译器优化,以实现更好的性能。

5.电耗优化

在 Android P 中继续优化 Doze、App 待命模式以及后台限制,进一步改善电池寿命。
20180703153060370845336.gif

6.针对现阶段的Android版本

Google Play 将要求所有应用在 2018 年 11 月之前针对 Android Oreo (targetSdkVersion 26 或更高版本) 进行更新,并支持将在 2019 年提供 64 位支持。

Android P 将在安装针对 Android 4.2 之前的平台 (targetSdkVersion 小于17) 的应用时通过对话框向用户发出警告,未来平台将会继续提高版本下限。

7.通过公开 API 增强应用兼容性

确保应用从一开始就支持新平台,并让用户远离崩溃风险,以及开发者不再需要针对兼容性问题做紧急更新。从 SDK 到 NDK 都使用 Android 公开 API 的应用拥有较好的兼容性,而使用私有 Android 接口和库的应用则兼容性较差。 在Android P中,开始逐步限制对特定非 SDK 接口的访问权限,并要求开发者 (包括 Google 内部的应用团队) 使用公开 API 里的替代接口。

Google对非SDK接口提供了灰名单机制,将目前Android应用或定制OS调用的非SDK接口分进行了分级,分别为浅灰名单,深灰名单和黑名单。不同名单中的接口有不同的处理策略。

  1. 浅灰名单,Google目前还没有可替代的SDK接口,暂时放在浅灰名单中。在Android P预览版上调用时会出现警告。
  2. 深灰名单,Google目前已经提供了可替代的SDK接口,开发者需要进行整改。这部分接口在Android P以下设备调用时出现警告,Android P及以上设备调用时出现Crash。
  3. 黑名单,浅灰名单和深灰名单之外的非SDK接口,都放在了这个名单中,这部分接口调用就会出现Crash。

2.Android App Bundle

20180703153060375326969.gif
App Bundle可以理解为一种新的文件格式,配和着Google的应用市场Google Play,当用户下载一个app时,不用再去下载一个全量的包,而只需下载跟自己设备相关的一系列Bundle。比如,用户设备是arm结构,就只需下载arm平台相关的so,没有必要下载x86平台下的so。这在以前,用户会下载两个甚至更多平台下的so,这无疑会节省用户的流量,减小下载的apk的体积。遗憾的是,目前只能在Google Play上使用。

关于App Bundle的介绍,可以浏览以下视频。
Build the new, modular Android App Bundle (Google I/O ‘18) watch

App Bundle的思想类似于已经普遍使用的插件框架,插件后台换成了GooglePlay而已。如果App Bundle能够普及,相信会替代目前使用的插件框架。
20180703153060380188748.png

3.Android JetPack

Android JetPack可以理解为Google 为开发人员提供的一个开发工具包,在这个包里,集成了一些模板代码,使用这些已经封装好的代码,可以更加快速高效的开发一款应用。
20180606152825601059704.png

关于JetPack中每一项具体的介绍,可以浏览下面的视频。

Introducing Android Jetpack for Developers watch

  1. Android Jetpack: Improve Your App’s Architecture watch
  2. Android Jetpack: KTX - Sweeter Kotlin Android Development watch
  3. Android Jetpack: Room watch
  4. Android Jetpack: ViewModel watch
  5. Android Jetpack: LiveData watch
  6. Android Jetpack: Paging watch
  7. Android Jetpack: Autosizing TextView watch
  8. Android Jetpack: EmojiCompat watch

Android Studio

AndroidStudio已经更新到了3.2版本,下面介绍一下这个版本上的一些优化

1. 在这个版本中,添加Assistant的视图窗口,介绍了一些新特性
20180704153068472145336.png

2. 添加了对Android JetPack的支持
3. 对Profiler视图进行了优化,可以对一段时间内cpu,内存,网络,电池等使用情况进行录制
4. 对Emulator的优化,模拟器基本是秒开

Android Studio预计在下个版本中,添加对动画的编辑,预计会是一种全新的布局方式。这将极大的方便开发人员开发出更加绚丽的动画。
20180704153068739326850.gif

参考资料

  1. https://android-developers.googleblog.com/2018/03/previewing-android-p.html?m=1
  2. https://developer.android.com/studio/preview/features/?utm_source=android-studio&utm_medium=studio-assistant
  3. https://developer.android.com/jetpack/behavior/
  4. https://android-developers.googleblog.com/2018/05/whats-new-in-android-p-beta.html
  5. https://developer.android.com/platform/technology/app-bundle/
  6. https://developer.android.com/studio/preview/features/?utm_source=android-studio&utm_medium=studio-assistant
  7. https://developer.android.com/topic/libraries/architecture/navigation/navigation-implementing#kotlin
  8. https://android-developers.googleblog.com/2018/05/use-android-jetpack-to-accelerate-your.html
  9. https://android-developers.googleblog.com/2018/05/android-studio-3-2-canary.html

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×