他们都没告诉你适配 Android N 需要注意什么

简介:

Android N 这次的新特性包括多窗口的支持、通知栏支持直接回复消息、对部分广播的后台限制、网络数据节省开关等,并不多,也有很多翻译文章已经介绍。

这里主要分享对 Android N 的适配大家可能要注意什么。
文末杂谈带阿里腾讯保障员工买房相关的福利介绍。

还记得 6.0 对 Apache Http 库的废除导致的应用崩溃吗?
还记得 6.0 中 MAC id 始终返回为空导致的唯一 id 混合生成算法大幅失效吗?

1. Android 中 Java 的实现向 OpenJDK 8 迁移

Android 是站在 Linux 和 Java 肩膀上快速成长的,在运行时依赖 Oracle JDK,早在 2010 年甲骨文就起诉谷歌侵权 Java。在 N 中 Google 采用 OpenJDK 8 作为 Java 的实现,在 Java 实现上的一些差别可能导致应用出问题。如:
(1) ArrayList 实现中的私有属性 array 被移除
反射使用该属性的需要注意下。

(2) 随机数种子调用可能出错
Crypto 安全提供商在 OpenJDK 中不提供,而它在大家调用 SecureRandom.setSeed() 设置随机种子时会用到,OpenJDK 中需要通过 SecretKeySpec 去直接加载原始密钥或者使用真正的密钥导出函数。

有了解 OpenJDK 8 与 Oracle JDK 更多实现差别的欢迎留言。

PS:
(1) 记得 2014 年 InfoQ 大会上 Oracle 的人介绍 Java 8 的特性,当时还在想 Android 现在依赖 JDK6.0 什么时候才能到 8,现在终于等到了这一天,可惜不是你..

(2) Kotlin 还有机会吗?

2. JNI 中不允许调用非公有 API

JNI 中不允许调用非公有 API,由于命名空间的变化,在 Android N 上运行会崩溃,需要切换到对应公有 API。

3. “老人机的适配”

Android N 允许用户设置显示密度,有点像老人机模式。需要测试 App 在 sw320dp 密度下显示是否正常,及配置变更后应用是否会有异常。

4. 后台优化——三个广播被禁止监听或发送

(1) CONNECTIVITY_CHANGE 广播
对 targetVersion 设置为 Android N 的 App,在后台时不再能接收到 CONNECTIVITY_CHANGE 广播,前台不影响。

(2) ACTION_NEW_PICTURE 和 ACTION_NEW_VIDEO 广播
所有运行在 Android N 上的 App 不能发送或是接收新增图片(ACTION_NEW_PICTURE)和新增视频(ACTION_NEW_VIDEO) 的广播。

5. 权限改动

(1) GET_ACCOUNTS 权限被废弃
对 targetVersion 设置为 Android N 的 App,GET_ACCOUNTS 权限被废弃。

(2) 增加 ACTION_OPEN_EXTERNAL_DIRECTORY 权限
这个感觉就是对部存储设备写权限的保护,需要用户同意,说不定以后就慢慢废弃 WRITE_EXTERNAL_STORAGE 权限了。

6. 更严格的 Doze 模式

大家知道在 Android 6.0 中,在手机关屏且静止时,Doze 模式通过推迟 CPU 和网络操作延长底池寿命。而 Android N 则在手机关屏时就会一定程度限制 CPU 和网络操作,进入 Doze 模式一段时间后进一步限制 WakeLock、Alarm、GPS 和 Wi-Fi 扫描等,做好迎接休眠状态下更多功能受限导致的 bug 吧,哈哈。

7. 自带 ICU4J 库的子集

更方便 App 的全球化了

杂谈:

(1) 今天下午就有传闻阿里集团(仅上市业务,与某蚁某鸟无关)准备在杭州买地盖楼,房价是市场价的六折,哈哈,刚看了下该文章已经被删除。

不管怎么说,这是个好福利,希望更多优秀人才来杭州。

早在 2011 年腾讯、阿里就相继宣布正式启动“安居计划”和“iHome”计划,为员工提供无息贷款买房。

腾讯三年以上员工在一线城市可免息贷款 50w,除此外城市为 25w,六年内还清。
阿里是两年以上员工可免息贷 20w,三年以上为 30w,双职工可最多贷 40w,五年内还清。

随后京东以及当年中国版 Facebook 都相继出了类似福利。

(2) 有媒体报道菜鸟集团即将完成百亿人民币融资,估值 400 亿人民币。

蚂蚁金服拟融资 31 亿美元,估值或达 500 亿美元,在小米最新估值跌到 280 亿,蚂蚁超过百度跻身 BAT 只是时间的问题,而且不会太久。这么大盘子哪天领跑 BAT 也不是没有可能。

不用羡慕,他们都在招 Android,而且 codeKK 上有他们的内推。具体可见:http://j.codekk.com/

目录
相关文章
|
8月前
|
Web App开发 移动开发 小程序
"项目中mpaas升级到10.2.3 适配Android 14之后 app中的H5以及小程序都访问不了,
"项目中mpaas升级到10.2.3 适配Android 14之后 app中的H5以及小程序都访问不了,显示“网络不给力,请稍后再试”,预发内网版本不能使用,线上版本可以正常使用,这个是什么原因啊,是某些参数没有配置吗,还是说是一些参数改错了?
122 2
|
4月前
|
调度 Android开发 UED
Android经典实战之Android 14前台服务适配
本文介绍了在Android 14中适配前台服务的关键步骤与最佳实践,包括指定服务类型、请求权限、优化用户体验及使用WorkManager等。通过遵循这些指南,确保应用在新系统上顺畅运行并提升用户体验。
323 6
|
6月前
|
IDE API Android开发
安卓与iOS开发环境的差异及适配策略
在移动应用开发的广阔舞台上,Android和iOS两大操作系统各据一方,各自拥有独特的开发环境和工具集。本文旨在深入探讨这两个平台在开发环境上的关键差异,并提供有效的适配策略,帮助开发者优化跨平台开发流程。通过比较Android的Java/Kotlin和iOS的Swift/Objective-C语言特性、IDE的选择、以及API和系统服务的访问方式,本文揭示了两个操作系统在开发实践中的主要分歧点,并提出了一套实用的适配方法,以期为移动开发者提供指导和启示。
|
5月前
|
安全 Java Android开发
Android 14适配Google play截止时间临近,适配注意点和经验
本文介绍了Android 14带来的关键更新,包括性能优化、定制化体验、多语言支持、多媒体与图形增强等功能。此外,还强调了适配时的重要事项,如targetSdkVersion升级、前台服务类型声明、蓝牙权限变更等,以及安全性与用户体验方面的改进。开发者需按官方指南更新应用,以充分利用新特性并确保兼容性和安全性。
348 0
|
8月前
|
编解码 人工智能 测试技术
安卓适配性策略:确保应用在不同设备上的兼容性
【4月更文挑战第13天】本文探讨了提升安卓应用兼容性的策略,包括理解平台碎片化、设计响应式UI(使用dp单位,考虑横竖屏)、利用Android SDK的兼容工具(支持库、资源限定符)、编写兼容性代码(运行时权限、设备特性检查)以及优化性能以适应低端设备。适配性是安卓开发的关键,通过这些方法可确保应用在多样化设备上提供一致体验。未来,自动化测试和AI将助力应对设备碎片化挑战。
819 4
|
8月前
|
Android开发
Android保存图片到相册(适配android 10以下及以上)
Android保存图片到相册(适配android 10以下及以上)
193 1
|
8月前
|
Android开发
Android RIL 动态切换 4G 模块适配
Android RIL 动态切换 4G 模块适配
220 0
|
8月前
|
Android开发
Android Uri转File方法(适配android 10以上版本及android 10以下版本)
Android Uri转File方法(适配android 10以上版本及android 10以下版本)
850 0
|
8月前
|
Java 物联网 Android开发
Android 12 蓝牙适配 Java版(下)
Android 12 蓝牙适配 Java版(下)
512 0
|
8月前
|
传感器 Java 定位技术
Android 12 蓝牙适配 Java版(上)
Android 12 蓝牙适配 Java版(上)
528 0

热门文章

最新文章