1、当设备处于充电状态且屏幕已关闭一定时间后,设备会进入低电耗模式并应用第一部分限制:关闭应用网络访问、推迟作业和同步。如果进入低电耗模式后设备处于静止状态达到一定时间,系统则会对 PowerManager.WakeLock、AlarmManager 闹铃、GPS 和 WLAN 扫描应用余下的低电耗模式限制。无论是应用部分还是全部低电耗模式限制,系统都会唤醒设备以提供简短的维护时间窗口,在此窗口期间,应用程序可以访问网络并执行任何被推迟的作业/同步。

2、面向 Android 7.0 开发的应用不会收到CONNECTIVITY_ACTION广播,即使它们已有清单条目来请求接受这些事件的通知。在前台运行的应用如果使用BroadcastReceiver请求接收通知,则仍可以在主线程中侦听CONNECTIVITY_CHANGE。

3、应用无法发送或接收ACTION_NEW_PICTURE或ACTION_NEW_VIDEO广播。此项优化会影响所有应用,而不仅仅是面向 Android 7.0 的应用。

5、传递软件包网域外的file://URI 可能给接收器留下无法访问的路径。因此,尝试传递file://URI 会触发FileUriExposedException。分享私有文件内容的推荐方法是使用FileProvider。

7、Android 7.0在“Welcome”屏幕中加入了“Vision Settings”,用户可以在新设备上设置以下无障碍功能设置:Magnification gesture、Font size、Display size和话语提示。此项变更让您可以更容易发现与不同屏幕设置有关的错误。要评估此功能的影响,您应在启用这些设置的状态下测试应用。您可以在Settings > Accessibility中找到这些设置。

8、从 Android 7.0 开始,系统将阻止应用动态链接非公开 NDK 库,这种库可能会导致您的应用崩溃。此行为变更旨在为跨平台更新和不同设备提供统一的应用体验。即使您的代码可能不会链接私有库,但您的应用中的第三方静态库可能会这么做。因此,所有开发者都应进行相应检查,确保他们的应用不会在运行 Android 7.0 的设备上崩溃。如果您的应用使用原生代码,则只能使用公开 NDK API。

9、所有应用在调用既非公开又不可暂时访问的 API 时都会生成一个运行时错误。结果就是System.loadLibrary和dlopen(3)同时返回NULL,并可能导致您的应用崩溃。您应检查应用代码以移除对私有平台 API 的使用,并使用预览版设备或模拟器全面测试应用。如果您不确定您的应用是否使用私有库,您可以检查 logcat以识别运行时错误。

10、如果一个应用在 Android 7.0 上运行,但却是针对更低 API 级别开发的,那么在用户更改显示尺寸时,系统将终止此应用进程。应用必须能够妥善处理此情景。否则,当用户从最近使用记录中恢复运行应用时,应用将会出现崩溃现象。

11、您应测试应用以确保不会发生此行为。要进行此测试,您可以通过 DDMS 手动终止应用,以造成相同的崩溃现象。

12、在密度发生更改时,系统不会自动终止面向 N 及更高版本的应用;不过,这些应用仍可能对配置变更做出不良响应。

13、Android 7.0上的应用应能够妥善处理配置变更,并且在后续启动时不会出现崩溃现象。您可以通过更改字体大小 (Setting>Display>Font size) 并随后从最近使用记录中恢复运行应用,来验证应用行为。

14、由于之前的 Android 版本中的一项错误,系统未能将对主线程上的一个 TCP 套接字的写入操作举报为违反严格模式。Android 7.0 修复了此错误。呈现出这种行为的应用现在会引发android.os.NetworkOnMainThreadException。一般情况下,我们不建议在主线程上执行网络操作,因为这些操作通常会出现可能导致 ANR 和卡顿的高尾延迟。

15、Debug.startMethodTracing()方法系列现在默认在您的共享存储空间上的软件包特定目录中存储输出,而非 SD 卡根目录。这意味着应用不再需要请求WRITE_EXTERNAL_STORAGE权限来使用这些 API 。

16、许多平台 API 现在开始检查在Binder事务间发送的大负载,系统现在会将TransactionTooLargeExceptions作为RuntimeExceptions再次引发,而不再只是默默记录或抑制它们。一个常见例子是在Activity.onSaveInstanceState()上存储过多数据,导致ActivityThread.StopInfo在您的应用面向 Android 7.0 时引发RuntimeException。

17、如果应用向View发布Runnable任务,并且View未附加到窗口,系统会用View为Runnable任务排队;在View附加到窗口之前,不会执行Runnable任务。此行为会修复以下错误:

18、如果一项应用是从并非预期窗口 UI 线程的其他线程发布到View,则Runnable可能会因此运行错误的线程。

19、如果Runnable任务是从并非环路线程的其他线程发布,则应用可能会曝光Runnable任务。

20、如果 Android 7.0 上一项有DELETE_PACKAGES权限的应用尝试删除一个软件包,但另一项应用已经安装了这个软件包,则系统需要用户进行确认。在这种情况下,应用在调用PackageInstaller.uninstall()时预计的返回状态应为STATUS_PENDING_USER_ACTION。

21、名为Crypto的 JCA 提供程序已弃用,因为它仅有的 SHA1PRNG 算法为弱加密。应用无法再使用 SHA1PRNG(不安全地)派生密钥,因为不再提供此提供程序。如需了解详细信息,请参阅博文Android N 中已弃用“Crypto”安全提供程序。

Android7.0占用空间,Android7.0 开发者注意事项相关推荐

  1. Broadcasts在Android7.0以及Android8.0中的变更

    从Android6.0开始,谷歌更新的Android越来越注重应用安全.对一些行为进行了限制,相信大家都有关注这些新版的变更. 本文主要记录我在学习Broadcasts在Android7.0以及And ...

  2. android7虚拟定位,Android8.0还早 EMUI助推Android7.0普及

    5月17日至19日,谷歌2017年开发者大会在加州谷歌总部所在地举办.本次会议当中,最重要产品之一即新一代Android O操作系统(也就是我们所说Android 8.0)成为最大的亮点.最新发布的A ...

  3. Android7.0、8.0版本更新问题(下载、安装app)

    Android7.0.8.0版本更新问题 问题 先看看下面这段代码 private void autoInstallApk(Context context, File file) {Intent in ...

  4. 华为m5可以降android7.0,华为EMUI8.0回退到EMUI5.0教程(安卓8.0降级7.0)

    华为EMUI8.0回退到EMUI5.0教程(安卓8.0降级7.0).现在有一部分华为手机用户比如华为Mate9用户通过官方申请升级到EMUI8.0版本了,但是新版本在尝鲜之后,大家会觉得手机部分功能没 ...

  5. android7.0如何加载本地图片,Android 6.0和7.0 加载同一张图片,结果不同

    问题描述 Android6.0和7.0 加载一张jpg图片,转换为bitmap, 然后将其保存到本地,用UE比较两张本地图片的2进制,得到的结果不一致. 问题出现的环境背景及自己尝试过哪些方法 (1) ...

  6. 正在使用.NET Framework 2.0 Beta 2的开发者要注意了!

    今天在BCLTeam's WebLog上看到一篇<Intra-Whidbey (V2.0) Obsoletions: a MUST have list for people using Beta ...

  7. 瑞友天翼4.0在XP下安装注意事项

    瑞友天翼4.0在XP下安装注意事项 此版本只支持Windows Xp Professinal SP2下安装.如果你的Xp不是SP2请按照一下方法修改操作系统,并安装Xp的SP2补丁包!+ o( f+ ...

  8. SDHC或SD2.0卡的驱动程序的注意事项

    SDHC或SD2.0卡的驱动程序的注意事项 首先对SD卡有一个感性认识: SD卡的技术是基于MultiMedia卡(MMC)格式上发展而来,大小和MMC差不多,尺寸为32mm x 24mm x 2.1 ...

  9. 更全面的开放能力 HMS Core 5.0重磅亮相华为开发者大会

    2020年9月10日, HMS Core 5.0重磅亮相华为开发者大会.会上,华为消费者云服务总裁张平安发表了<HMS新沃土,让我们一起共舞>的主题演讲,他表示,华为HMS生态仅一年时间里 ...

最新文章

  1. NPM:Cannot read property 'pause' of undefined
  2. 密码学基础知识(五)序列密码
  3. hutool的定时任务不支持依赖注入怎么办_「架构」 - 定时任务 amp; Elastic-Job基本使用...
  4. linux can总线接收数据串口打包上传_关于串口,你需要知道这些!!
  5. Android模拟器启动3个g,android,模拟器_android 模拟器用3.18的内核无法启动,一直黑屏。,android,模拟器,内核 - phpStudy...
  6. Java 注解知识总结
  7. 特朗普近百条推文,被 Twitter 标记为「不实消息」
  8. c语言16进制数给变量,C语言中怎样定义能够保存16进制整数的变量
  9. 我的世界java8u101_jre8下载 Java SE Runtime Environment 8 9.0u101 多语言安装版 下载-脚本之家...
  10. hsqldb mysql_HSQLDB创建数据库和基本的数据库访问 | 学步园
  11. c语言的快速排序,C语言实现快速排序法(分治法)
  12. 用c语言解题的程序,C语言实现的数独解题程序
  13. 使用Feign调用时添加验证信息token到请求头
  14. mysql怎么快速删除亿级数据_mysql数据库如何实现亿级数据快速清理
  15. 较于微信红包,支付宝AR红包是个好产品吗?
  16. Leetcode466.统计重复个数——掐头去尾寻找循环点
  17. 计算机社团活动丰富多彩,社团活动丰富多彩 校园文化彰显特色
  18. 50个经典的增长黑客策略
  19. 三菱服务器显示51,三菱空调故障代码51什么意思一招解决 -三菱柜机故障代码06...
  20. Mac动作冒险游戏:尘埃幸福的轨迹 for Mac

热门文章

  1. Java String:重要到别人只能当老二的字符串类
  2. c/c++ 继承与多态 文本查询的小例子(非智能指针版本)
  3. centos6上安装mysql8.0版本
  4. namespace 或The content of element type mapper must match EMPTY
  5. python socket 网络编程
  6. 如何定期备份网站数据
  7. DFS应用——遍历有向图+判断有向图是否有圈
  8. C#获取程序集的版本号和最后编译时间
  9. c#扩展方法奇思妙用高级篇四:对扩展进行分组管理
  10. java.util.prefs.Preferences