导航:首页 > 操作系统 > android71新特性

android71新特性

发布时间:2023-02-21 14:48:41

android8.0新特性【转】

1.通知渠道
2.通知角标
3.通知圆点
4.通知延后
5.消息样式
6.通知超时
7.后台执行限制
8.画中画模式
9.自适应图标
10.蓝牙体验提升
11.智能文本选择与智能共享
12.WLAN感知
13.取消屏幕纵横比限制
14.其他

尽管 Android 刷版本号的步伐年年加快,但每年带给用户的惊喜从未减少。经历了四个开发者预览版的洗礼后,Android 8.0 终于在今天凌晨迎来了正式版发布。
如果你还不清楚 Android O 有哪些关键的新特性,不妨让我们通过这篇文章快速为你梳理一遍。
代号“奥利奥”
和发布会前几天外媒传出的消息一样,Android 8.0 的甜品代号果然是“奥利奥”(Oreo)。

而昨晚的发布会碰巧赶上了美国日全食,为此 Google 也准备了一段应景的揭晓视频:
从奇巧板到牛轧糖再到这次的奥利奥,不得不说近几个 Android 版本所选择的甜品都非常可口。在开始新功能介绍之前,我们不妨通过下面这张长图回顾一下 Android 历代甜品代号:

通知——往往是 Android 系统的信息过载的“重灾区”,也是近三个大版本以来 Google 不断在优化和改进的重点。在 Android 8.0 中,通知系统有了如下改进:

Android 8.0 引入了通知渠道特性,将应用的通知进行分门别类,用户可以针对不同的通知类别单独设置通知优先级别和提醒方式。

Google 的时钟应用提供了 4 个通知渠道
假想一下(这不可能),适配了这一特性的淘宝客户端,我们可以屏蔽那些直播通知和促销推荐,物流信息、秒杀提醒则可以适当“放行”。

在早前的 Android 版本中,我们只能借助第三方启动器和通知读取工具(比如 Nova Launcher+Telsa)来实现通知角标效果。

Android 8.0 开始,应用可以在启动器图标上显示通知圆点来提示用户,但这个圆点角标和 iOS 上那个有所不同——它仅提示用户该应用有通知,不会显示具体的通知数量。考虑到部分用户的“红点强迫症”,这算是一种折衷的设计了……

通常,当一条通知出现在通知栏,除了点击查看、划掉不理以外,我们就只剩下“放任不管”这种处理方式了。这显然不太优雅,太多的通知驻留不仅会让通知栏拥挤不堪,回过头进行处理的时候也很不方便。
所以,Android 8.0 引入了另一种通知处理操作——通知延后。当我们暂时不便处理某条应用通知时,只需要在该条通知上清扫,点击出现的时钟图标,即可让这条通知暂时从通知栏消失,在设定好的时间后再回来。

通知延后功能演示
理论上来说,如果开发者在开发应用时没有进行特殊限制,所有的非常驻通知(比如媒体通知)都可以被延后。

Android 8.0 提供了新的通知背景着色方式,除了大家可能已经见过的多彩媒体通知以外,一些常驻高优先级通知也可以利用这种背景着色方式来让自己更加引人注目,比如驾驶导航和后台通话通知。
目前,一些使用原生通知样式的应用已经可以在 Android 8.0 上正确调用新的通知背景着色机制了,效果也十分讨人喜爱。

原生 Android 系统的消息通知向来好用——我们不仅可以通过消息通知进行快速回复,还能通过扩展试图看到多条消息通知并逐条回复(详情请参阅 Android Nougat 的通知改进详解)。
在 Android 8.0 中,消息通知样式得到了进一步完善。开发者可以通过新的通知函数来为消息通知的扩展视图增加消息历史,让用户在快速处理通知的过程中更加熟悉回话上下文。

除了上面提到的通知延后功能以外,Android 8.0 还面向开发者提供了通知超时特性,允许特定通知在设定时间后自行清除;进而,系统还能区分某条应用的清除操作是由用户还是应用发出。
利用这些特性,应用开发者能够探索设计出对用户造成打扰程度最小的通知方式。
系统级自动填充框架
不管是在手机上注册账号、登录账号还是输入其他常用个人信息,过程都相当繁琐且容易出错,选择第三方密码管理和自动填写工具又不得不额外考虑安全和隐私问题。
因而在 Android 8.0 中,Google 首次整合了一个系统级的全局自动填写功能。开启后,当我们在第一次进行应用设置、登录时,系统就会帮我们快速填写好对应的个人信息和密码。

系统级自动填写使用起来非常方便
当然,如果不想使用 Google 提供的密码保存服务,也可以等待 1Password、LastPass 等服务商跟进这一特性,到时我们就可以在“系统->语言和输入法->输入帮助”自由选择想要使用的自动填充服务。

未来会有更多应用适配这一特性

优秀的多任务处理能力一直以来都是 Android 系统的魅力所在,但同时运行的应用太多肯定会为系统造成不小的负担。如果还有应用或服务在后台运行,而用户正在使用其他需要大量系统资源的应用(例如玩游戏或观看视频),就会因为硬件性能不足导致卡顿,部分应用可能还需要重新加载。
为此,Android 8.0 对应用在后台运行时可以执行的操作施加了限制,面向 Android 8.0 进行开发的应用将在两个方面受到限制:
后台服务限制:处于空闲状态时,应用可以使用的后台服务存在限制。
广播限制:除了有限的例外情况,应用无法为隐式广播注册接收器。
不清楚何为“服务”何为“广播”也没关系,只需要知道:当一个面向 Android 8.0 开发或被用户手动开启了后台限制的应用被放到后台运行时,系统在为它分配各项系统资源时就会“酌情考虑”了。

这个后台执行限制此前也存在缺陷和不足,好在经过绿色守护开发者 @oasisfeng 和部分热心 Android 用户的热心反馈,Google 已于第四个开发者预览版(DP4)中修复了后台服务管控漏洞。即便是那些顽固的国产毒瘤,在 Android 8.0 中也不得不收敛了。

Android Nougat 引入了应用“分屏”功能,允许用户将任意两个(适配了该特性)的应用或窗口在屏幕上进行上下分屏,提升了应用间的协作和使用效率。
而从 Android 8.0 开始,系统将支持更加自由、灵活的“画中画”模式。这个通常用于视频播放的特性早已在部分 OEM 厂商的定制 ROM 和 Android TV 当中的实现,但加入原生 Android 8.0 依然令人惊喜。

一边看视频一边浏览其他内容
如果你订阅了 YouTube Red 并开启了“后台播放功能”,系统就能在你把 YouTube 放到后台的同时将视频内容以悬浮窗的形式继续播放;当你在 Chrome 中查看网页视频时,也可以将某个标签中的视频“拿出来”,一边浏览其他网页一边查看视频;知名 Android 播放器 VLC 也抢在正式版发布前就适配了画中画模式,升级 Android 8.0 正式版以后别忘了试一试。

Android 系统上到底改采用异形图标还是规则图标?在这个问题上,不同的 OEM 厂商和用户都有自己的选择偏好。这也导致不同 Android 设备的体验迥异,百花齐放的表象之下,无论是应用开发者和图标设计师们往往感到很迷茫。
为了解决这个问题,Google 在 Android 8.0 中引入了自适应图标规范。依据这一规范开发的自适应图标不仅可以最大程度上保留自己的特色,同时还能完美地融入到不同启动器和 ROM 的整体视觉风格当中。

除此之外,应用开发者还能脑洞大开,赋予这些图标不同的动态效果。

关于自适应图标规范的意义所在以及开发者如何进行设计和适配,请参阅少数派先前发布的译文:
Android O 自适应图标的意义何在?Google 设计师给你答案 | 科普设计自适应图标实现自适应图标Android O 新特性介绍:自适应图标(Adaptive Icons)

Android 8.0 还从多个角度增强了原生 Android 平台对蓝牙的支持,具体包括:
支持 AVRCP 1.4 标准:支持远程浏览和控制 TV、HiFi 等设备的媒体库。支持蓝牙低功耗 (BLE) 5.0 标准:传输速度提升两倍、传输距离提升四倍、数据承载能力提升八倍。此外,5.0 标准还优化了时隙可用性和信道选择算法,可规避 Wi-Fi 和 LTE 信道干扰来提高数据传输质量。集成更多蓝牙协议编解码器,包括由 Sony 提供的 LDAC 编解码器。
毫无疑问,Android 8.0 对于那些爱听歌的用户来说是一次良心满满的升级:只要手里蓝牙耳机满足硬件要求,就可以轻松实现无损蓝牙音乐传输。

利用机器学习和人工智能,当我们在 Android 8.0 中进行文字点选操作时,系统会自动识别我们想要复制的文字内容。在长按弹出的浮动工具条中,系统还将提供可用于处理被选中部分文字内容的应用选项。

自动识别文字内容并提供应用建议 - 1
例如,当我们长按一段文字中地址的一部分,系统不仅会将整个地址内容进行选中,还能在弹出的浮动工具条中显示地图应用,点击即可快速调用地图打开选中地址;同理,如果我们选中的是一段 URL,那么 Chrome 浏览器就会出现在弹出的浮动工具条中,方便我们快速跳转至该 URL 所指向的网页。

自动识别文字内容并提供应用建议 - 2
同样的技术也将运用于 Android 8.0 的“分享”接口中,如果我们试图分享一张购物小票的照片,在分享列表中,系统会优先建议那些记账应用;而如果我们分享一张自拍,美颜应用则更可能会出现在分享菜单的前列。

Android 8.0 新增了对 WLAN 感知的支持,此技术基于周边感知联网 (NAN) 规范。在具有相应 WLAN 感知硬件的设备上,应用和附近设备可以通过 WLAN 进行搜索和通信,无需依赖互联网接入点。

开启 WLAN 感知功能后,当我们位于已保存的 WiFi 连接附近时,系统就会自动使用这个 WiFi 接入点。

以 Android 7.1(API 级别 25)或更低版本为目标平台开发的应用默认最大屏幕纵横比为 1.86,但这也导致这些应用在一些新近机型(比如 Galaxy S8/S8+)上显示效果不佳(无法全屏、上下黑边等等)。

采用非传统屏幕纵横比的新近机型 | 源:bgr
而面向 Android 8.0 或更高版本系统所开发的应用将不要求设定最大纵横比,保证应用能够最大限度地兼容屏幕比例各异的 Android 机型。

对开发者而言,他们还可以利用下面这些 Android 8.0 新特性:

Ⅱ android 7.0对开发者会有哪些影响

Android N 除了提供诸多新特性和功能外,还对系统和 API 行为做出了各种变更。 本文重点介绍您应该了解并在开发应用时加以考虑的一些重要变更。

如果您之前发布过 Android 应用,请注意您的应用可能受到这些平台变更的影响。

电池和内存

Android N 包括旨在延长设备电池寿命和减少 RAM 使用的系统行为变更。 这些变更可能会影响您的应用访问系统资源,以及您的系统通过特定隐式 Intent 与其他应用互动的方式。

低电耗模式

Android 6.0(API 级别
23)引入了低电耗模式,当用户设备未插接电源、处于静止状态且屏幕关闭时,该模式会推迟 CPU 和网络活动,从而延长电池寿命。而 Android N
则通过在设备未插接电源且屏幕关闭状态下、但不一定要处于静止状态(例如用户外出时把手持式设备装在口袋里)时应用部分 CPU
和网络限制,进一步增强了低电耗模式。

图 1. 低电耗模式如何应用第一级系统活动限制以延长电池寿命的图示。

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

图 2. 低电耗模式如何在设备处于静止状态达到一定时间后应用第二级系统活动限制的图示。

请注意,激活屏幕或插接设备电源时,系统将退出低电耗模式并取消这些处理限制。 此项新增的行为不会影响有关使您的应用适应 Android 6.0(API 级别 23)中所推出的旧版本低电耗模式的建议和最佳实践,如低电耗模式和应用待机模式优化中所讨论。
您仍应遵循这些建议(例如使用 Google Cloud Messaging (GCM) 发送和接收消息)并开始安排更新计划以适应新增的低电耗模式行为。

Project Svelte:后台优化

Android N 删除了三项隐式广播,以帮助优化内存使用和电量消耗。 此项变更很有必要,因为隐式广播会在后台频繁启动已注册侦听这些广播的应用。 删除这些广播可以显着提升设备性能和用户体验。

移动设备会经历频繁的连接变更,例如在 Wi-Fi 和移动数据之间切换时。 目前,可以通过在应用清单中注册一个接收器来侦听隐式 CONNECTIVITY_ACTION广播,让应用能够监控这些变更。
由于很多应用会注册接收此广播,因此单次网络切换即会导致所有应用被唤醒并同时处理此广播。

同理,应用可以注册接收来自其他应用(例如相机)的隐式 ACTION_NEW_PICTURE 和 ACTION_NEW_VIDEO 广播。
当用户使用相机应用拍摄照片时,这些应用即会被唤醒以处理广播。

为缓解这些问题,Android N 应用了以下优化措施:

面向 Android N 开发的应用不会收到 CONNECTIVITY_ACTION 广播,即使它们已有清单条目来请求接受这些事件的通知。
在前台运行的应用如果使用BroadcastReceiver 请求接收通知,则仍可以在主线程中侦听 CONNECTIVITY_CHANGE。
应用无法发送或接收 ACTION_NEW_PICTURE 或 ACTION_NEW_VIDEO 广播。此项优化会影响所有应用,而不仅仅是面向
Android N 的应用。

如果您的应用使用任何 Intent,您仍需要尽快移除它们的依赖关系,以正确适配 Android N 设备。 Android 框架提供多个解决方案来缓解对这些隐式广播的需求。 例如,JobScheler API
提供了一个稳健可靠的机制来安排满足指定条件(例如连入无限流量网络)时所执行的网络操作。 您甚至可以使用JobScheler 来适应内容提供程序变化。

如需了解有关 Android N 中后台优化以及如何改写应用的详细信息,请参阅后台优化。

权限更改

Android N 做了一些权限更改,这些更改可能会影响您的应用。

系统权限更改

为了提高私有文件的安全性,面向 Android N 或更高版本的应用私有目录被限制访问(0700)。 此设置可防止私有文件的元数据泄漏,如它们的大小或存在。 此权限更改有多重副作用:

私有文件的文件权限不应再由所有者放宽,为使用 MODE_WORLD_READABLE 和/或 MODE_WORLD_WRITEABLE 而进行的此类尝试将触发SecurityException。
注:迄今为止,这种限制尚不能完全执行。 应用仍可能使用原生 API 或 File API 来修改它们的私有目录权限。 但是,我们强烈反对放宽私有目录的权限。

传递软件包网域外的 file:// URI 可能给接收器留下无法访问的路径。 因此,尝试传递 file:// URI 会触发 FileUriExposedException。 分享私有文件内容的推荐方法是使用 FileProvider。
DownloadManager 不再按文件名分享私人存储的文件。
旧版应用在访问 COLUMN_LOCAL_FILENAME 时可能出现无法访问的路径。
面向 Android N 或更高版本的应用在尝试访问 COLUMN_LOCAL_FILENAME 时会触发 SecurityException。
通过使用DownloadManager.Request.() 或 DownloadManager.Request.() 将下载位置设置为公共位置的旧版应用仍可以访问 COLUMN_LOCAL_FILENAME 中的路径,但是我们强烈反对使用这种方法。
访问由 DownloadManager 公开的文件的首选方式是使用 ContentResolver.openFileDescriptor()。

应用间共享文件

对于面向 Android N 的应用,Android 框架执行的 StrictMode API
政策禁止向您的应用外公开 file:// URI。 如果一项包含文件 URI 的 Intent 离开您的应用,应用失败,并出现 FileUriExposedException 异常。

若要在应用间共享文件,您应发送一项 content:// URI,并授予 URI 临时访问权限。 进行此授权的最简单方式是使用 FileProvider 类。
如需有关权限和共享文件的更多信息,请参阅共享文件。

无障碍改进

为提高平台对于视力不佳或视力受损用户的可用性,Android N 做出了一些更改。这些更改一般并不要求更改您的应用代码,不过您应仔细检查并使用您的应用测试这些功能,以评估它们对用户体验的潜在影响。

屏幕缩放

Android N 支持用户设置显示尺寸,以放大或缩小屏幕上的所有元素,从而提升设备对视力不佳用户的可访问性。用户无法将屏幕缩放至低于最小屏幕宽度 sw320dp,该宽度是
Nexus 4 的宽度,也是常规中等大小手机的宽度。

图 3. 右侧屏幕显示的是一台运行 Android N 系统映像的设备增大显示尺寸后的效果。

当设备密度发生更改时,系统会以如下方式通知正在运行的应用:

如果是面向 API 级别 23 或更低版本系统的应用,系统会自动终止其所有后台进程。 这意味着如果用户切换离开此类应用,转而打开“Settings”屏幕并更改 Display size 设置,则系统会像处理内存不足的情况一样终止该应用。 如果应用具有任何前台进程,则系统会如处理运行时变更中所述将配置变更通知给这些进程,就像对待设备屏幕方向变更一样。
如果是面向 Android N 的应用,则其所有进程(前台和后台)都会收到有关配置变更的通知,如处理运行时变更中所述。

大多数应用并不需要进行任何更改即可支持此功能,不过前提是这些应用遵循 Android 最佳实践。具体要检查的事项:

在屏幕宽度为 sw320dp 的设备上测试您的应用,并确保其充分运行。
当设备配置发生变更时,更新任何与密度相关的缓存信息,例如缓存位图或从网络加载的资源。当应用从暂停状态恢复运行时,检查配置变更。
注:如果您要缓存与配置相关的数据,则最好也包括相关元数据,例如该数据对应的屏幕尺寸或像素密度。 保存这些元数据便于您在配置变更后决定是否需要刷新缓存数据。

避免用像素单位指定尺寸,因为像素不会随屏幕密度缩放。应改为使用与密度无关像素 (dp)
单位指定尺寸。

设置向导中的视觉设置

Android N 在“Welcome”屏幕中加入了“Vision Settings”,用户可以在新设备上设置以下无障碍功能设置: Magnification gesture、Font size、Display size 和 TalkBack。 此项变更增强了与不同屏幕设置相关的错误的可见性。
要评估此功能的影响,您应在启用这些设置的状态下测试应用。 您可以在Settings > Accessibility 中找到这些设置。

NDK 应用链接至平台库

Android N 做了一些命名空间更改,以阻止加载非公开 API。 如果您使用 NDK,则只能使用 Android 平台提供的公开 API。 在下一个官方发布的 Android 版本上使用非公开 API 会导致应用崩溃。

为提醒您使用了非公开 API,在 Android N
设备上运行的应用会在有应用调用非公开 API 时在日志消息输出中生成一个错误。
此错误还会作为消息显示在设备屏幕上,以帮助增强您对此情况的认识。 您应检查应用代码以删除使用非公开平台
API,并使用预览版设备或模拟器全面测试应用。

如果您的应用依赖平台库,则请参见 NDK 文档,了解使用公开 API 等效项替换普通私有 API 的典型修复。 您还可以链接至平台库,而无需实现此应用,如果应用使用的库是平台的一部分(例如 libpng),但不属于 NDK,则更可如此。 此情况下,请确保您的 APK 包含您打算链接到的所有 .so 文件。

注意:有些第三方库可能会链接至非公开 API。 如果您的应用使用这些库,那么当您的应用在下一个官方发布的 Android 版本上运行时可能会出现崩溃现象。

应用不应依赖或使用不属于 NDK
的原生库,因为这些库可能会发生更改或从一个 Android 版本迁移至另一版本。 例如,从 OpenSSL 切换至 BoringSSL
即属于此类更改。 此外,不同的设备可能提供不同级别的兼容性,因为不属于 NDK 中的平台库没有兼容性要求。 如果您必须在较旧设备上访问非 NDK
库,则请依据 Android API 级别进行加载。

为帮助您诊断此类问题,下面列举了一些在您试图使用 Android N 开发应用时可能遇到的 java 和 NDK 错误:

Java 错误示例:
java.lang.UnsatisfiedLinkError: dlopen failed: library "/system/lib/libcutils.so"
is not accessible for the namespace "classloader-namespace"

NDK 错误示例:
dlopen failed: cannot locate symbol "__system_property_get" referenced by ...

以下是遇到这类错误的应用的一些典型修复:

可以使用标准 JNI 函数来替代使用 libandroid_runtime.so 中的 getJavaVM 和 getJNIEnv:
AndroidRuntime::getJavaVM -> GetJavaVM from <jni.h>
AndroidRuntime::getJNIEnv -> JavaVM::GetEnv or
JavaVM::AttachCurrentThread from <jni.h>.

可以使用公开 alternative __system_property_get 来替代使用 libcutils.so 中的 property_get 符号。如需这样做,请使用__system_property_get 及以下 include 函数:
#include <sys/system_properties.h>

应使用应用本地版本来替代使用 libcrypto.so 中的 SSL_ctrl 符号。例如,您应在 .so 文件中静态链接 libcyrpto.a,或者在应用中包含您自己的来自 BoringSSL 或 OpenSSL 的动态 libcrypto.so。

Android for Work

Android N 包含一些针对面向 Android
for Work 的应用的变更,包括对证书安装、密码重置、二级用户管理、设备标识符访问权限的变更。如果您是要针对 Android for
Work 环境开发应用,则应仔细检查这些变更并相应地修改您的应用。

您必须先安装授权证书安装程序,然后 DPC 才能对其进行设置。 对于面向 N SDK 的个人资料和设备所有者应用,您应在设备策略控制器 (DPC) 调用DevicePolicyManager.setCertInstallerPackage() 之前安装授权证书安装程序。 如果尚未安装此安装程序,则系统会引发IllegalArgumentException。
针对设备管理员的重置密码限制现在也适用于个人资料所有者。 设备管理员无法再使用 DevicePolicyManager.resetPassword() 来清除或更改已经设置的密码。 设备管理员仍可以设置密码,但只能在设备没有密码、PIN 或图案时这样做。
即使设置了限制,设备所有者和个人资料所有者仍可以管理帐户。而且,即使具有 DISALLOW_MODIFY_ACCOUNTS 用户限制,设备所有者和个人资料所有者仍可调用 Account Management API。
设备所有者可以更轻松地管理二级用户。当设备在设备所有者模式下运行时,系统将自动设置 DISALLOW_ADD_USER 限制。 这样可以防止用户创建非托管二级用户。 此外,CreateUser() 和 createAndInitializeUser() 方法已弃用,取而代之的是 DevicePolicyManager.createAndManageUser() 方法。
设备所有者可以访问设备标识符。设备所有者可以使用 DevicePolicyManagewr.getWifiMacAddress() 访问设备的 Wi-Fi MAC 地址。 如果设备上从未启用 Wi-Fi,则此方法将返回一个 null 值。
工作模式设置控制工作应用访问。当工作模式关闭时,系统启动器通过使工作应用显示为灰色来指示它们不可用。 启用工作模式会再次恢复正常行为。

如需了解有关 Android N 中针对 Android for Work 所做变更的详细信息,请参阅 Android for
Work 更新。

注解保留

Android N 在注解可见性被忽略时修复错误。这种问题将启用本不应被允许的运行时访问注解。 这些注解包括:

VISIBILITY_BUILD:仅应编译时可见。
VISIBILITY_SYSTEM:运行时应可见,但仅限基本系统。

如果您的应用依赖这种行为,请在注解中添加一项运行时必须可用的保留政策。 您可通过使用 @Retention(RetentionPolicy.RUNTIME) 来如此做。

其他重要说明

如果一个应用在 Android N 上运行,但却是针对更低 API 级别开发的,那么在用户更改显示尺寸时,系统将终止此应用进程。 应用必须能够正常处理此情景。 否则,当用户从最近使用记录中恢复运行应用时,应用将会出现崩溃现象。
您应测试应用以确保不会发生此行为。要进行此测试,您可以通过 DDMS 手动终止应用,以造成相同的崩溃现象。

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

Android N 上的应用应能够正常处理配置变更,并且在后续启动时不会出现崩溃现象。您可以通过更改字体大小 (Setting > Display > Font size) 并随后从最近使用记录中恢复运行应用,来验证应用行为。
由于之前的 Android 版本中的一项错误,系统未能将对主线程上的一个 TCP 套接字的写入操作举报为严格模式违反。 Android N 修复了此错误。呈现出这种行为的应用引发 android.os.NetworkOnMainThreadException。一般情况下,我们不建议在主线程上执行网络操作,因为这些操作通常都有可能导致 ANR 和卡顿的高尾延迟。
Debug.startMethodTracing() 方法族现在默认在您的共享的存储空间上的软件包特定目录中存储输出,而非 SD 卡顶级。 这意味着应用不再需要请求WRITE_EXTERNAL_STORAGE 使用这些 API 的权限。
许多平台 API 现在开始检查在 Binder 事务间发送的大负载,系统现在会将 TransactionTooLargeExceptions 再次作为 RuntimeExceptions 引发,而不再只是默默记录或抑制它们。
一个常见例子是在 Activity.onSaveInstanceState() 上存储过多数据,导致 ActivityThread.StopInfo 在您的应用面向
Android N 时引发 RuntimeException。
如果应用向 View 发布 Runnable 任务,并且 View 未附加到窗口,系统会用 View 为 Runnable 任务排队;在 View 附加到窗口之前,Runnable 任务不会执行。
此行为会修复以下错误:
如果一项应用是从并非预期窗口 UI 线程的其他线程发布到 View,则Runnable 可能会因此运行错误的线程。
如果 Runnable 任务是从并非环路线程的其他线程发布,则应用可能会曝光 Runnable 任务。
如果 Android N 上一项有 DELETE_PACKAGES 权限的应用尝试删除一个软件包,但另一项应用已经安装了这个软件包,则系统可能要求用户确认。
在这种情况下,应用在调用 PackageInstaller.uninstall() 时的返回状态应为 STATUS_PENDING_USER_ACTION。

Ⅲ Android各版本间差异

一个好的APP最好支持90%设备,由于不同版本系统提供的API可能不同,所以了解不同版本间系统差异很重要,这样才能更好的适配更多的智能设备。

Android4.X

Android5.X 这是一个里程碑的版本

Android6.X

Android7.X

Android8.X

Android9.0
对更大屏幕显示的追求和视觉等体验的优化,智能的开始体现(用户行为的学习及正确化引导,网络环境的智能适应,电池电量的优化),更加人性化。

参考文档:
Android从1.0到 6.0各版本的差别
大致总结一下 安卓各大版本的差异(安卓4以上版本)
Android 9.0新特性
关于Android Pie(Android 9.0),你想知道的都在这了

阅读全文

与android71新特性相关的资料

热点内容
excel表格单列数据加密 浏览:646
给同事的解压话语 浏览:990
linux关闭网卡命令行 浏览:452
史上最漂亮程序员 浏览:768
java实现excel的导入 浏览:758
光遇账号如何转移安卓 浏览:266
5分之13除以26的算法 浏览:342
兰州安宁区买解压包子 浏览:641
php接收图片代码 浏览:668
hci命令 浏览:662
福建服务器大区云空间 浏览:840
笔杆子程序员 浏览:745
手机软件易验证加密 浏览:589
文档加密只读模式也不能看到 浏览:431
把jpg转换成pdf的软件 浏览:874
linuxeth0mac 浏览:192
windows编程知乎 浏览:442
压缩工期超过40 浏览:249
Android怎么优化内存 浏览:106
linuxetcsysconfig 浏览:396