您的位置:首页 > 移动开发 > Android开发

Android7.0适配所需要注意的一些事项

2016-10-18 22:31 281 查看

低电耗模式

会对闹铃、GPS 和 Wi-Fi 扫描 产生限制.

可参考Optimizing for Doze and App Standby

使用GCM来发送和接受消息

后台优化

Android N 删除了三项隐式广播,隐式广播会在后台频繁启动已注册侦听这些广播的应用。 删除这些广播可以显著提升设备性能和用户体验.

侦听网络变化的主线程广播改为: CONNECTIVITY_CHANGE。

对所有应用都无法 发送和接受 ACTION_NEW_PICTURE 或 ACTION_NEW_VIDEO .

可以使用JobScheduler API ,更多参考后台优化

权限变更

旨在提高私有文件的安全性,

仍然可以使用原生 API 或 File API 来修改私有目录,但是不建议使用.

使用
file:// URI
,可能会导致接受者无法访问该路径 ,需要使用
FileProvider


DownloadManager
不再按文件名分享私人存储的文件,需要使用
ContentResolver.openFileDescriptor()


参考阅读:Android7.0须知–应用间共享文件(FileProvider)

文件共享

若要在应用间共享文件,需要发送一项 content:// URI,最好也是使用 FileProvider类

NDK平台库

Android N 做了一些命名空间更改,阻止加载非公开API,会出现一些常见错误

如,UnsatisfiedLinkError

典型修复方法,

1. 使用标准 JNI 函数来替代使用 libandroid_runtime.so 中的 getJavaVM 和 getJNIEnv

2. 使用公开 alternative __system_property_get 来替代使用 libcutils.so 中的 property_get 符号

3. 使用应用本地版本来替代使用 libcrypto.so 中的 SSL_ctrl 符号

注解保留

Android N 在注解可见性被忽略时修复错误,

这些注解包括:

1. VISIBILITY_BUILD:仅应编译时可见

2. VISIBILITY_SYSTEM:运行时应可见,但仅限基本系统

其他重要事项

如果应用是针对更低
API
级别开发而运行在
Android N
上,那么在更改显示尺寸,系统将终止此应用进程.

Android N 上的应用应能够正常处理配置变更,包括字体大小的变更

许多平台 API 现在开始检查在 Binder 事务间发送的大负载,ps,
Activity.onSaveInstanceState()
存储过多数据时,引发
RuntimeException


View 发布 Runnable 任务,在 View 附加到窗口之前,Runnable 任务不会执行

DELETE_PACKAGES 权限的变更,应用尝试删除一个软件包,但另一项应用已经安装了这个软件包,则系统可能要求用户确认

参考:Android 7.0牛轧糖
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android 7-0适配 Nougat