Android N版本适配

AndroidN beta版本已经出来了, 虽然还没有搭载的机器上市,但是已经Android N版本早早的就可以体验试用了。

近期使用Nexus 6 刷了7.0版本, 对负责的项目进行了适配。大问题不多,小问题不少,还是耗费了些时间。整理如下:

相关资料:

https://developer.android.com/preview/api-overview.html官方说明(Android N for Developers)

https://developer.android.com/preview/samples.html官方demo

可查到的总结:

http://gold.xitu.io/entry/577bbc9d7db2a20054e70f56,http://www.trinea.cn/android/android-n-adaptation/

简单总结(具体的官方文档中都有描述):

1,多窗口支持:

在 Android N 中,引入了一个新的而且非常需要的多任务处理功能 — 多窗口支持。

现在,用户可以一次在屏幕上打开两个应用。

在运行 Android N 的手机和平板电脑上

,用户可以并排运行两个应用,或者处于分屏模式时一个应用位于另一个应用之上。 用户可以通过拖动两个应用之间的分隔线来调整应用。

在 Android TV 设备上,应用可以将自身置于画中画模式,从而让它们可以在用户浏览或与其他应用交互时继续显示内容。

2,通知增强功能(请参阅通知指南)

在 Android N 中,重新设计了通知,使其更易于使用并且速度更快。 部分变更包括:

模板更新

消息样式自定义

捆绑通知

直接回复

自定义视图

3,个人资料指导的 JIT/AOT 编译

在 Android N 中,添加了 Just in Time (JIT) 编译器,对 ART 进行代码分析,让它可以在应用运行时持续提升 Android 应用的性能。 JIT 编译器对 Android 运行组件当前的 Ahead of Time (AOT) 编译器进行了补充,有助于提升运行时性能,节省存储空间,加快应用更新和系统更新速度。

4,快速的应用安装路径

Android 运行组件的 JIT 编译器最实际的好处之一是应用安装和系统更新的速度。 即使在 Android 6.0 中需要几分钟进行优化和安装的大型应用,现在只需几秒钟就可以完成安装。 系统更新也变得更快,因为省去了优化步骤。

5,随时随地低电耗模式

现在,在 Android N 中,低电耗模式又前进了一步,随时随地可以省电。只要屏幕关闭了一段时间,且设备未插入电源,低电耗模式就会对应用使用熟悉的 CPU 和网络限制。这意味着用户即使将设备放入口袋里也可以省电。

 低电耗模式现在应用限制以延长电池寿命,即使设备未处于静止状态。

6,Project Svelte:后台优化

Project Svelte 在持续改善,以最大程度减少生态系统中一系列 Android 设备中系统和应用使用的 RAM。 在 Android N 中,Project Svelte 注重优化在后台中运行应用的方式。

7,Data Saver

Android N 推出了 Data Saver 模式,这是一项新的系统服务,有助于减少应用使用的蜂窝数据,无论是在漫游,账单周期即将结束,还是使用少量的预付费数据包。 Data Saver 让用户可以控制应用使用蜂窝数据的方式,同时让开发者打开 Data Saver 时可以提供更多有效的服务。

8,Vulkan API(API 文档)

Android N 将一项新的 3D 渲染 API Vulkan™ 集成到平台中。就像 OpenGL™ ES 一样,Vulkan 是 3D 图形和渲染的一项开放标准,由 Khronos Group 维护。

9,Quick Settings Tile API( API 参考)

Android N 添加了一个新的 API,可以定义自己的“快速设置”图块,使用户可以轻松访问应用中的关键控件和操作。

10,号码屏蔽(API 参考)

Android N 现在支持在平台中进行号码屏蔽,提供框架 API,让服务提供商可以维护屏蔽的号码列表。 默认短信应用、默认手机应用和提供商应用可以对屏蔽的号码列表进行读取和写入操作。 其他应用则无法访问此列表。

11,来电过滤(API 参考 android.telecom.CallScreeningService)

Android N 允许默认的手机应用过滤来电。手机应用执行此操作的方式是实现新的 CallScreeningService,该方法允许手机应用基于来电的Call.Details 执行大量操作

12,多区域设置支持、多语言(多语言支持)

Android N 现在允许用户在设置中选择多个区域设置,以更好地支持双语用例。 应用可以使用新的 API 获取用户选择的区域设置,然后为多区域设置用户提供更成熟的用户体验 — 如以多个语言显示搜索结果,并且不会以用户了解的语言翻译网页。

13,新增的表情符号

Android N 引入更多表情符号和表情符号相关功能,包括肤色表情符号和支持变量选择符

14,Android 中的 ICU4J API( ICU4J 支持)

Android N 目前在 Android 框架(位于 android.icu 软件包下)中提供 ICU4J API的子集。 迁移很简单,主要是需要从 com.java.icu 命名空间更改为 android.icu。如果您已在您的应用中使用 ICU4J 捆绑包,切换到 Android 框架中提供的 android.icu API 可以大量节省 APK 大小

15,OpenGL™ ES 3.2 API

Android N 添加了框架接口和对 OpenGL ES 3.2 的平台支持

16,Android TV 录制

Android N 通过新的录制 API 添加了从 Android TV 输入服务录制和播放内容的功能。 构建在现有时移 API 之上,TV 输入服务可以控制能够录制的渠道数据、保存录制的会话的方式,同时可通过录制的内容管理用户交互。

17,Android for Work

Android for Work 针对运行 Android N 的设备添加了许多新功能和 API。部分重要内容如下— 有关变更的完整列表,请参阅 Android forWork 更新。

18,无障碍增强功能(API 参考 中的 android.accessibilityservice.GestureDescription)

Android N 现在针对新的设备设置直接在欢迎屏幕上提供“Vision Settings”。 这使用户可以更容易发现和配置他们设备上的无障碍功能,包括放大手势、字体大小、显示屏尺寸和 TalkBack。

19,直接启动

在 Android N 中,直接启动充分利用基于文件的加密,以针对系统和应用数据启用细化的加密策略。为系统和应用数据。系统针对选定的系统数据和显式注册的应用数据使用设备加密的存储。 默认情况下,凭据加密的存储可用于所有其他系统数据、用户数据、应用及应用数据。

20,密钥认证

为了让硬件支持的密钥库使用起来更简单和更安全,Android N 引入了密钥认证。 应用和关闭的设备可使用密钥认证以坚决地确定 RSA 或 EC 密钥对是否受硬件支持、密钥对的属性如何,以及其使用和有效性有何限制。

21,网络安全性配置(网络安全性配置)

在 Android N 中,通过使用说明性“网络安全性配置”(而不是使用传统的易出错的编程 API(例如,X509TrustManager)),应用可以安全地自定义其安全(HTTPS、TLS)连接的行为,无需任何代码修改。

22,APK signature scheme v2(建议行方案)

23,作用域目录访问

在 Android N 中,应用可以使用新的 API 请求访问特定的外部存储目录,包括可移动媒体上的目录,如 SD 卡。新 API 大大简化了应用访问标准外部存储目录的方式,如 Pictures 目录。 应用(如照片应用)可以使用这些 API(而不是使用 READ_EXTERNAL_STORAGE),其授予所有存储目录的访问权限或存储访问框架,从而让用户可以导航到目录。

24,键盘快捷键辅助工具

在 Android N 中,用户可以按“Alt + /”触发“键盘快捷键”屏幕,它会显示的系统和对焦的应用中可用的所有快捷键

25,VR 支持(面向 Android 的 Google VR SDK)

26,打印服务增强

27,FrameMetricsListener API

FrameMetricsListenerAPI 允许应用监测它的 UI 渲染性能。 API 通过公开流式传输 Pub/Sub API 来提供此能力,以传递应用当前窗口的帧计时信息。 返回的数据相当于 adb shell dumpsysgfxinfo framestats 显示的数据,但不限定于在过去的 120 帧内。

28,虚拟文件

Android N 在存储访问框架中增加了“虚拟文件”的概念。 虚拟文件功能可以让您的 DocumentsProvider 返回可与 ACTION_VIEWIntent使用的文件 URI,即使它们没有直接字节码表示。 Android N 还允许您为用户文件(虚拟或其他类)提供备用格式。

适配问题:

问题1:

支持StatusbarTranslucent时显示URL bar位置需要在状态栏之下 (setcontent view时统一处理,但状态栏位置是动态添加所以需要特殊处理)

多窗口时:

1,在窗口下的位置时,控制显示的urlbar位置需要特殊处理;在窗口上位置时时,无需处理。所以面临多窗口状态下需要区分多窗口的问题。

2,全屏模式下可解决1的问题, 但是全屏模式下在多窗口里无法隐藏状态栏,所以在窗口上位置时,存在和状态栏重叠的问题。

3,多窗口变化时动态改变状态栏显示(理论上可行,但是增加额外的处理成本和页面重绘)

最终处理:

对24及以上版本,去除对StatusbarTranslucent支持。

问题2:

使用了24版本的API,则编译版本需指向Target 24

指向24后,很容易出现JDK版本冲突问题:

1,(Can't process class[dalvik/system/DexClassLoader.class] (Unsupported class version number [52.0](maximum 51.0, Java 1.7)))

2,如果找不对JDK 冲突的包单方面指向1.8还会有:

UNEXPECTEDTOP-LEVEL EXCEPTION:

com.android.dx.cf.iface.ParseException:bad class file magic (cafebabe) or version (0034.0000)

3, javac:无效的源发行版:1.8

最终处理:

使用android-24里的android.jar那么就得支持java 8版本, 需要检查编译的Jar包,proguard (proguard5.2.1支持) 是否均支持java 8版本。

问题3:

多窗口UI显示问题

1,      显示不全的页面,添加滚动支持。

2,      通过屏幕宽高计算显示位置和数量的,区分状态显示处理。

3,      输入法遮挡的,暂不处理。

4,      实在难兼容的,独立Task,不支持多窗口。

问题4:

涉及广播监听等和新API等问题,根据业务需要灵活适配。

Android N版本(7.0)适配相关推荐

  1. Android P(3)---Android P版本刘海屏适配指南

    Android P版本刘海屏适配指南 Android P预览版增加了很多亮点新特性,其中最接地气.最直观的改变当属适配了类似于华为P20的顶部凹槽屏幕设计这一项,俗称刘海屏. 在开发者模式中,Andr ...

  2. Android Q版本应用兼容性适配指导

    目录 Android Q版本应用兼容性适配指导... 1 1.      背景说明... 4 2.      存储空间限制... 4 2.1背景     4 2.2兼容性影响... 5 2.3 适配指 ...

  3. android开发 文件分享到应用,Android开发之——7.0适配之应用之间共享文件(FileProvider)...

    前言 Android 7.0强制启用了被称作StrictMode的策略,带来的影响就是你的App对外无法暴露file://类型的URI了. 如果你使用Intent携带这样的URI去打开外部App(比如 ...

  4. Android P版本应用兼容性适配技术指导

    ndroid P版本中伴随很多机制和新增特性的改变,对自研以及第三方应用带来了很多兼容性问题. 本文档第1章主要介绍谷歌P版本开发环境搭建以及调试:第2章节主要是对P版本兼容性现状一些摸底测试情况以及 ...

  5. Android P版本 刘海屏适配 与WindowInsets,DisplayCutout使用

    Android P版本的发布,引入了刘海屏的概念,像华为nova 3e,vivo X21等手机厂商也纷纷推出自己的刘海屏手机,我们先预览下HUAWEI nova 3e的机照 从这张图中我们可以看出,所 ...

  6. 三星sm-g7106com.android.mms,Android系统版本及其屏幕适配

    Android设备分辨率趋势 对应关系表 资源文件夹   屏幕分辨率  类型  对应图标尺寸 屏幕密度1dp xhdpi超高分辨率 1280*720 WQVGA    96*96  320  =2 h ...

  7. android sdk版本8.0,把targetSdkVersion设置为26(Android 8.0)需要注意的地方

    前言 由于项目要上应用宝,必须设置targetSdk>=26,所以把以前项目的targetSdk=22的改成了26,要开始处理Android 6.0的动态权限,7.0的FileProvider, ...

  8. 【Android 屏幕适配】异形屏适配 ② ( 需要异形屏适配情况 | 需要异形屏适配的 Android 系统版本 | 刘海屏状态判定 | 异形屏适配调试 - 华为云调试 )

    文章目录 一.需要异形屏适配情况 1.需要异形屏适配的 Android 系统版本 8.0 2.正常有状态栏的界面竖屏不需要适配 3.正常有状态栏的界面横屏需要适配 4.刘海屏状态判定 二.异形屏适配调 ...

  9. 技术实践 | Android 设备音视频兼容性适配

    导读:WebRTC 是一个非常优秀的项目, 可以支持 Web.iOS.Android.Mac.Windows.Linux 在内的所有平台的 API,保证了 API 在所有平台的一致性.然而 WebRT ...

  10. android相机拍照代码,Android 调用相机拍照,适配到Android 10

    今天写的博客是关于Android调用手机相机拍照并显示图片.这是一个很常用的功能,并且这个功能在Android6.0.7.0.10.0等版本上实现都有所不同,需要对Android各个版本进行兼容适配, ...

最新文章

  1. Django视图之HttpRequest对象和HttpResponse对象
  2. 利用对象的等待队列和锁队列管理线程。
  3. FMDB使用Cached Statement功能
  4. 奥比中光大白(3D结构光)摄像头测试发现对着灯光过曝问题
  5. 过滤JSON中的特殊字符
  6. 使用exp导出导入,需要注意的问题。
  7. jmeter的逻辑控制器
  8. 微信视频不能连接到服务器,微信无法连接到服务器
  9. Google的Guava开发库快速快速入门
  10. 修改配置文件,编译freeswitch支持H264
  11. kettle基础教程-kettle9教程
  12. python中pdfplumber解析pdf_Python教程:pdfplumber提取pdf中的表格数据
  13. 姿态估计论文汇总 Stacked Hourglass/CPN/Simple Baselines/MSPN/HRNet
  14. nodebb部署心路历程【加上踩坑合集】
  15. windows 8 .1全家桶(很详细)
  16. 微软最爽命令行工具将成 Win11 默认终端
  17. vue使用print.js打印插件
  18. 腾讯T3大牛亲自讲解!面试字节跳动Android研发岗,值得收藏!
  19. CRNN论文翻译——中英文对照
  20. 机器人工程毕业设计☞提升突破

热门文章

  1. Window系统装机步骤
  2. Cobbler z自动装机 (装机步骤,优化内容详解,导入系统镜像步骤,cobbler-web管理认证方式)
  3. 完美解决在Latex的表格里的单元格内的文本紧贴着上边框线条的问题
  4. 技术科普丨[测试] 64MEG 感光芯片效果对比
  5. 获取某年某月的第一天和最后一天的时间
  6. 众筹创业资金,他成了“地瓜王子”,收入十分可观
  7. Matlab-标准遗传算法
  8. 华为手表连接苹果手机显示无法连接服务器,苹果用户福音!HUAWEI WATCH完美适配...
  9. 使用盗版软件开发工具面临的若干法律问题
  10. 下拉框select chosen被遮盖