Android Q致力于让用户控制、保护个人数据,确保透明度。
[外链图片转存失败(img-btiqSYXg-1568285151835)(https://fossbytes.com/wp-content/uploads/2019/01/Android-Q-What-To-Expect-Release-Rumors-Features-2-640x360.png)]
根据官方博文,谷歌已经公布了 Android Q 的名称,它并不像以前一样,以甜食命名,也不是以任何以字母 Q 开头来命名,而是简单称它为 Android 10。
Android Q API 报告
https://developer.android.google.cn/sdk/api_diff/q-beta1/changes.html
Android Q API 参考
https://developer.android.google.cn/reference/
维基百科
https://en.wikipedia.org/wiki/Android_version_history#cite_note-introducingqbeta-242
Android 10新的特性以及适配向导,请查阅谷歌官方页面:
https://developer.android.com/about/versions/10
Android 10 release note:
https://source.android.com/setup/start/android-10-release
Android 10谷歌开发者发布中文说明:
https://mlog.club/article/34749
Android Q版,最大的亮点集中在隐私安全和智能交互两方面,其中在隐私安全方面Android Q增加了外部存储策略变更、位置权限的后台访问限制、后台应用(不限于摄像头、麦克风等)的启动限制、设备识别码限制.
可以告知平台直接从应用的 APK 文件中运行嵌入式 DEX 代码。如果攻击者曾设法篡改了设备上本地编译的代码,则此选项有助于防止相应攻击。
注意:启用此功能可能会影响应用的性能,因为在应用启动时 ART 必须使用 JIT 编译器(而不是读取提前编译的原生代码)。我们建议您先测试应用性能,然后再决定是否在已发布的应用中启用此功能。
安卓系统此前毫无限制的剪贴板功能在Android Q中将纳入监管,目前的代码暗示只有OEM厂商签名的程序才有访问权。
原则上建议避免识别更容易关联到特定个人的硬件标识符,而是使用实例 ID,也可以在安装时创建自己的 GUID,以变进一步降低隐私全风险。应用必须具有READ_PRIVILEGED_PHONE_STATE 签名权限才能访问设备的唯一标识符,并在具体场景中推荐了如下最佳做法:
当设备连接到不同的 Wi-Fi 网络时,系统会随机生成不同的 MAC 地址
平台的 TLS 实现支持 TLS 1.3。TLS 1.3 是 TLS 标准的主要修订版本,它提升了性能和安全性。我们的基准测试数据表明,与 TLS 1.2 相比,使用 TLS 1.3 可以将建立安全连接的速度提高 40%。
Android Q 增加了对点对连接的支持。借助此功能,应用可以提示用户更改设备连接到的接入点。点对点连接用于“非网络提供”
Android Q 扩大了支持范围,现在允许应用提示用户连接到 WLAN 接入点。您可以提供关于要连接到哪个网络的建议。平台最终会根据来自您的应用和其他应用的输入来选择要接受的接入点
Android Q 扩展了 WLAN Lock API,以有效地支持高性能和低延迟模式。系统会针对高性能和低延迟模式停用 WLAN 节能模式,并且您可以在低延迟模式下启用进一步的延迟优化(具体取决于调制解调器支持)
Android Q 增加了对“通过传输层安全协议 (TLS) 执行 DNS”的原生支持,以进行专用 DNS 查找
利用 Easy Connect 为使用 URI 的对等设备配置 WLAN 凭据。您可以通过各种方法来检索此 URI,包括从 QR 码或者通过蓝牙 LE 或 NFC。
利用预先确定的信息快速与 WLAN 直连建立连接的功能。此信息通过边信道进行共享,例如蓝牙或 NFC。
应用无法启用或停用Wi-Fi。 WifiManager.setWifiEnabled()方法始终返回false。 如果需要,请使用设置面板提示用户启用和禁用Wi-Fi。
允许您为 Wi-Fi 网络创建一个 QR 码,或者扫描一个 QR 码,就直接在设备的 Wi-Fi 设置中加入 Wi-Fi 网络。若要使用此新功能,需转到 Wi-Fi 设置,然后选择您的家庭网络,然后是共享按钮,上面有一个小 QR 码。这样避免了与人分享密码或询问别人密码的尴尬
当设备连接到不同的 Wi-Fi 网络时,系统会随机生成不同的 MAC 地址
可以使用 BLE CoC 连接在两个 BLE 设备之间传输较大的数据流
增加了在支持相关功能的设备上收集进行中的 IP 多媒体子系统 (IMS) 通话质量相关信息的功能,包括通过网络接听和拨打电话的质量。
可以将用户通讯录中不存在号码的来电标识为潜在骚扰电话,以及代表用户拒接骚扰电话而不响铃。
自动将给定国家/地区的代码添加到已拨号码
允许直接与联系人共享内容
在紧急情况下支持 IRadio HAL v1.4的设备可以发起紧急拨号 紧急号码包括报警 火警 救护车等
可以使用 C/C++ 代码发送和接收 MIDI 数据、与 C/C++ 音频/控制逻辑进行更紧密的集成以及最大限度地减少对 JNI 的需求,即原生MIDI API,允许与音乐控制器交互
增加了对 Android JVMTI 实现中的 can_pop_frames 功能的支持。在调试时,此功能让您能够在断点暂停并调整函数的局部变量、全局变量或实现,然后重新运行函数。
引入了一个新的 WebViewRendererClient 抽象类,应用可以使用它来检测 WebView 是否无响应。要使用此类,请执行以下操作:
为聋人添加表情符号,一对情侣手上的表情符号序列,多达55种肤色和性别组合,服务动物背心更换为安全背心,新的表情符号为臭鼬,斧头,打呵欠的脸,风筝,懒惰,三角裤,潜水面罩,洋葱,降落伞等等。
根据这项技术的实施方式,最终结果可能是更好的电池寿命以及更流畅的动画和菜单转换。
在应用程序被删除几秒钟后,您还可以撤销更改,在屏幕底部找到“撤消”按钮,点击即可恢复应用程序。
Q中用更精细的媒体特定权限替换并取消了 READ_EXTERNAL_STORAGE 和 WRITE_EXTERNAL_STORAGE权限,需要申请新的媒体权限:READ_MEDIA_IMAGES,READ_MEDIA_VIDEO,READ_MEDIA_AUDIO,申请方法同原来的存储权限。
用户可细粒度地设置允许应用访问的共享文件的媒介类型(照片、视频或音频),从而让应用访问的数据类型和数量有必要性。并为每个应用程序单独设立了存储沙盒,应用程序读取自身的文件不需要特别授权,其他应用程序则无法直接访问;
为了让用户更好地控制应用对位置信息的访问权限,Android Q 引入了新的位置权限 ACCESS_BACKGROUND_LOCATION。新权限仅会影响应用在后台运行时对位置信息的访问权
参照IOS系统对地理位置的授权机制, 在“始终访问”外,安卓系统也增加了“仅在使用该应用期间”才能获取设备当前位置信息得选项,确保用户可以自行控制是否允许后台应用获知地理位置;
因为悬浮窗会使用额外的内存,这对于低内存配置的Android设置带来很明显的性能消耗
能够连接到外接显示器并同时使用两个屏幕(手机/平板电脑和显示器)
Android Q 对应用未经通知用户就启动进行了极大地限制,在Android Q上运行的应用只有在满足以下一个或多个条件时才能启动活动:
Android Q 对 java.util.zip 软件包(用于处理 ZIP 文件)中的类做出了变更。让库的行为在 Android 和使用 java.util.zip 的其他平台之间更加一致
java_sdk_library 是Android Q 新提供的一种编译语法 目的是解决多个library之间兼容性的问题 例如系统的和厂商自定已的library 厂商可以通过java_sdk_library 编译自己的library
实现hal的动态关停 例如,如果用户未使用 WLAN,则 WLAN 子系统不应占用内存、耗损电量或使用其他系统资源
Android Q 提供了一中全新的aidl机制 stable aidl
他和aidl的区别在于
详情参考:https://source.android.google.cn/devices/bootloader/stable-aidl
新支持的一种文件格式
当对商店更新后的版本后悔时,可以“回到过去”即回滚到旧版
android Q 提供了一些系统组件可以通过被单独的通过googleplay 或者ota升级 不依赖整个android生态
用户可以从网上下载单独的system.img刷机 且不会有变砖的风险
Ashmem 更改了 /proc//maps 中的 dalvik 映射的格式,这会影响那些直接解析映射文件的应用。如果应用依赖于 dalvik 映射格式,则应用开发者应该在设备上测试新的 /proc//maps 格式并相应地进行解析。
以 Android Q 为目标平台的应用无法再直接使用 ashmem (/dev/ashmem),而必须通过 NDK 的 ASharedMemory 类访问共享内存。此外,应用无法直接对现有 ashmem 文件描述符进行 IOCTL,而必须改为使用 NDK 的 ASharedMemory 类或 Android Java API 创建共享内存区域。这项变更可以提高使用共享内存时的安全性和稳健性,从而提高 Android 的整体性能和安全性。
暗黑模式适用于任何地方,如果应用不支持暗黑模式,那么系统将自动设置一个暗黑模式。
当应用程序使用您的位置数据、麦克风或摄像头时,您将在通知栏中看到相应的图标, 它会告诉你哪个应用程序正在使用该权限。
在下拉通知栏顶部加入了一项新内容,即剩余续航时间。和电池图标的百分比不同,它会直接告诉你手机还能用多长时间,相当于是将设置项中的「预估使用时长」放到了通知栏上。目前我们系统上面是放在电池电量界面的
Android Q 可以在任何状态下enable
Android Q 贯彻了PBD(privacy by default)的精神,原则上将禁止后台应用未经通知用户就直接启动(Android O已经要求启动麦克风、摄像头权限时进行增强提示,Android P直接禁止后台应用启用麦克风、摄像头及其他传感器访问权限,Android Q进一步扩大了对应用在后台启动的限制范围)。若后台应用运行的程序需启用,需要使用高优先级通知,并提供一个全屏 intent。否则,一旦应用程序尝试从后台运行,系统将会向用户发送警告消息;
当应用黑暗模式时,浏览Pixel 3上的界面和基本应用程序可以减少30%的功耗。同时,黑暗模式也会影响第三方应用程序的功耗,可节省高达20%的电量!
全局黑暗模式可以达到延长具有OLED显示屏的电池寿命的效果。