Android Oreo 常见问题 4.0|Android 开发者 FAQ Vol. 12
随着越来越多的设备升级到 Android Oreo,我们持续收到了很多开发者发来的关于 Oreo 的问题。在前三期 Android Oreo 的 FAQ 中我们已经答复了一些。不过很显然,中国开发者们对于 Oreo 的热情并没有随着春节假期的过去而减弱,本期 FAQ 便为大家解答二月期间我们新收到的关于 Oreo 的问题。
Q 1:
Android Oreo 在安全性方面有哪些改变?
A:Google Play Protect (Verify Apps API,SafetyNet Attestation,reCAPTCHA for Android,“未知来源” 开关现在是针对每一个安装来源的权限) 。
- 硬件强化(Hardware hardening)
· 验证引导:回滚保护,硬解锁;
· 加密:FBE enhancements,key ejection,等;
· 安全锁定屏幕:防伪硬件支持;
· 权限:覆盖API更新,删除访问最持久的id,即时更新权限模型应用;
· Fighting ransomware:SYSTEM_ALERT_WINDOW;
· 隐私控制:删除访问持久的设备标识符;
· 即时更新权限模型应用;
· 沙盒和隔离:硬件隔离与第三方项目;
· SELinux 有效性;
- 内核强化 (Kernel hardening)
· Seccomp: 减少内核攻击;
- App 安全性
· WebView安全:渲染器在一个孤立的进程中,安全浏览;
- 设备和用户认证
· Keystore 关键认证;
· APIs for FIDO U2F 安全密钥。
Q 2:
一些用户反馈 Android 手机在长时间使用后会出些卡顿,是什么原因导致这种现象呢?
A:卡顿的原因很大部分来源于单个应用的多服务进程,后台监控、推送等服务。而且,在用户请求权限的时候不建议所有都允许,应当酌情考虑,节省系统的资源。相同功能的 app 尽量只保留一个自己喜欢的即可。并且,对于不熟悉系统的用户,应当养成杀掉不常使用的 app 进程,来保证其他 app 有足够的内存空间可以使用的习惯。
我们在系统方面一直在改进:Dalvik -> ART,后台限制等,而且这些限制会越来越多,这都有利于用户体验。
Q 3:
Android Oreo 和以前的版本有什么不同,测试方向上需要注意些什么呢?
A:除了自适应图标等新特性之外,Android Oreo 较之以前的版本在 API 行为、系统功能等方面有所变更和进化。比如,API 方面的后台执行及位置限制。
具体细节您可以参考 Android O 的行为变更文档:https://developer.android.google.cn/about/versions/oreo/android-8.0-changes.html
Q 4:
有些开发者认为老的 Android 版本已经 “够用了”,还有必要升级到最新版吗?
A:我们建议您及时升级,以获得新系统功能和安全性提升。如果您的应用在 Google Play 上发布,请留意 Google Play 对新应用在目标 SDK 版本设置上提出的新要求:所有应用的 Target SDK Version 都必须是一年以内升级发布的新版本。
或查阅原文:https://android-developers.googleblog.com/2017/12/improving-app-security-and-performance.html
Q 5:
我的 app 兼容 Android Oreo 有多大作用呢?
A:不管您的 app 是否兼容 Oreo,用户都会慢慢迁移到 Oreo 的设备上。所以为了您的用户可以获得更好的体验,我们建议您主动兼容。
Q 6:
适配了 Android Oreo,对于 Hybrid Mobile app (混合模式移动应用) 有什么好处?
A:在 Oreo 中,NDK 增加了一些安全性要求,比如,Android 版本中本机代码加载有些更改。例如,符号版本控制允许库提供更好的向后兼容性。直接从 APK 打开共享库在 API 等级 23 及以上版本中,可以直接从您的 APK 打开 .so 文件。使用 System.loadLibrary ("foo"),并在你的 AndroidManifest.xml 里设置 android:extractNativeLibs="false"。
从 Android Oreo 开始,可以通过设置与特定应用程序的完全限定名称相对应的属性来启用可调试应用程序的动态链接程序活动日志记录。
详细内容请参考官方文档:https://android.googlesource.com/platform/bionic/+/master/android-changes-for-ndk-developers.md
另,WebView 也有安全性的更新。
Q 7:
很多 Android 应用在退出后还是会自启占用手机内存,导致系统变慢,这种情况在 Oreo 中会有所改善吗?
A:应用的互相唤醒是导致 “自启” 频繁发生的根源,Android 系统对应用间的相互唤醒限制在变得越来越严格,“全家桶” 间的连锁自启将越来越难。
Q 8:
使用 JobScheduler 任务作业取代服务后如何能保证推送通知的实时性?
A:如果是针对国外的应用,您可以使用 FCM。
Q 9:
Android 8.0 和 8.1 的 launcher 相对 7.0 的有哪些变化和新特性?8.1 系统能否很好兼容 6.0 和 7.0 上开发的 launcher?
A:新增了自适应图标的支持。具体 launcher 的兼容性要看开发时使用了哪些系统特性,这些特性是否存在行为变更。
Q 10:
手机更新换代,如何测试多产品的兼容性?
A:您可以使用 Emulator 和云测平台。
请参考以往文章《云真机测试 | 让您的应用完美适配 Android Oreo》和《Android 8.0 Oreo 国内可用测试平台上线》。
如果您仍然有关于系统及兼容性等问题,欢迎在我们的微信公众平台留言,我们会继续收集有代表性的问题,请我们的工程师做出解答,并将答案尽量及时地回复给大家。同时,也请关注下一期的 “Android 开发者 FAQ” 专题文章,希望可以帮助您补充相关知识技能。
推荐阅读:
Android Developers 官方文档☟链接☟:
> https://developer.android.google.cn