分类 技术相关 下的文章

ART 运行时优化

Android Q 大幅改进了 ART 运行时。开发者无需进行任何操作,便可有效缩短应用的启动时间,减少内存消耗,并提高应用的运行流畅度。为了加快应用的初始启动速度,Google Play 现在除了 APK 文件之外,还会提供基于云的配置文件。这是一套已经过匿名化处理的汇总 ART 配置文件,允许 ART 在应用开始运行之前就预编译一部分代码。基于云的编译文件适用于所有应用,而且运行 Android P 或更高版本系统的设备目前已提供相关支持。

76435-um38qzjngpb.png
此外,我们还在 ART 的并发复制垃圾收集器 (Concurrent Copying Garbage Collector) 中添加了分代收集机制 (Generational Garbage Collection)。分代算法可以将新生代的对象单独收集出来,与 full-heap GC 相比成本更小。引入分代算法后,ART 垃圾回收速度和 CPU 利用效率有了明显提升,在减少垃圾的同时,让应用可以在低端设备上更流畅地运行。

Q: Android Q 会在什么时候推出?

A: 2019 年第三季度。

详情请参阅

https://developer.android.google.cn/preview/overview

Q: Android Q 源码大概什么时候会开源出来?

A: 2019 年第三季度,Android Q 正式推出当日。

Q: Android Q 的应用什么时候能上传到 Google Play?

A: 从 Beta 4 开始。

66232-qf3856sn72o.png

Q: 支持 Android Q 开发者预览版的设备只有 Google Pixel 吗?

A: 现时共有 21 款 Beta 设备支持 Android Q 开发者预览版。

详情请参阅

https://developer.android.google.cn/preview/devices

Scoped Storage

Q: 应用如何暂时豁免 Q 的外部存储沙箱限制。

A: 不会。所以我们强烈建议应用在 Q 版本时作出适配,但如您需要多点时间,可考虑在 Manifest 中增加 <application android:requestLegacyExternalStorage = “true”>,如果要检测是否已豁免,使用 Environment.isExternalStorageLegacy() 函数。

47994-z34bkdhirl.png

Q: 外部存储沙箱限制在下一版本仍可获得豁免吗?

A: 不会。所以我们强烈建议应用在 Q 版本时作出适配。

Q: 我的文件管理器/电子书应用与 Q 不兼容,该如何做?

A: 我们建议档案管理类应用使用 OPEN_DOCUMENT_TREE 让用户选择一个子目录,使应用能够存取该目录下的档案。经此方法,用户亦能够存取任何经由 DocumentsProvider 所提供,在云端或在本地的档案。

Android Q 后台启动 Acitvity 限制
Q: 如果用户在设置里关闭了我的 app 通知,我的 app 是不是没有办法在后台通过通知来启动 Activity 了呢?对此 Google 有什么建议?

A: 是的。所以请提高应用品质,让用户满意才不会关闭您的 app 通知。也请在应用里多给用户提示,让用户了解关闭通知所造成的改变。当然,使用 Notification Channel 将通知分类也是一个好方法。

Q: 禁止后台启动 Activity 是否会对 adb 启动 Activity 等测试场景有影响,如果是的话有办法绕过吗?

A: 没有影响。Android Studio 安装与测试的流程也是用了 adb 的机制而不会受到影响。

09760-f4407d9h3ek.png

Q: 我的网络电话应用或闹钟应用会受背景限制影响吗?

A: 为了提高用户体验,当用户正在使用其他应用时,请善用 heads-up notification 通知用户。

详情请参阅

https://developer.android.google.cn/preview/privacy/background-activity-starts#create-notifications

免责声明
本博客部分内容来自于互联网,不代表作者的观点和立场,如若侵犯到您的权益,请联系[email protected]。我们会在24小时内进行删除。