2017-【技术驱动未来分会场】What_is_New_in_Android_O_37页-12mb
报告摘要
详细总结:Android 0 新特性与开发者指南
核心内容
本文档提供了关于 Android 0 的最新特性和开发者指南,涵盖了兼容性、新功能、性能优化、安全性改进等多个方面。以下是文档的核心内容、主要观点和关键信息的总结。
开发者优先任务
兼容性
- 测试现有应用:确保应用在新平台上正常运行。
- 根据需要进行修改:针对新特性或限制进行必要的代码调整。
- 发布更新:目标版本为非 O,以保持兼容性。
基于 O 的开发
- 利用新功能和 API:开发新应用或更新现有应用以使用 O 中的新特性。
- 支持新系统行为:确保应用符合新版本的系统规范。
- 发布包含新 API 的更新:目标版本为 O,以使用新功能。
重要事项
目标
- 基于关注程度排序:开发者应优先处理用户关注度高的功能。
视觉稳定性
- 通知渠道:设置通知类别,由用户控制通知显示。
通知标志
- 未回应的通知:依然由用户控制。
新的浮动层
- Z轴排序在系统窗口之下:如锁屏界面。
- 用户可轻松管理:提供更直观的管理方式。
对于开发者
浮动层
- 使用 TYPE_APPLICATION_OVERLAY:用于创建浮动层。
后台限制
- 提高性能:限制后台进程和广播,以节省内存和电池。
- 后台服务限制:空闲时会被停止。
- 绑定服务不受影响:仍可运行。
- 后台位置限制:每小时只能接受几次位置更新。
传感器
- VR 直接传感器通道:提供更直接的传感器访问。
- 未校准的加速度计与校准算法:优化传感器数据处理。
- 低延迟 Off Body Detector:用于更精确的运动检测。
Android Support Library 更新
新特性
- Min SDK 版本为 14:减少 1400 个函数方法。
- 新 SDK 版本 25.3 和 26.0:提供更稳定的库支持。
- 新问题追踪器:方便开发者跟踪和解决 bug。
支持功能
- XML 字体与可下载字体:支持从代码或 XML 中加载字体。
- Emoji 兼容性库:确保应用支持 Emoji。
- 自动调整字体大小的 TextView:提升用户体验。
- DynamicAnimation 与 VectorDrawableCompat:支持动画和矢量图。
- Form factors(如 wear、leanback):适配不同设备形态。
- PreferenceDataStore:改进偏好设置管理。
- FrameMetricsAggregator:提供更详细的性能指标。
- ActionBarDrawerToggle.setDrawerSlideAnimationEnabled():支持动画切换。
新功能
72dp 外延 108dp
- 66dp 安全区:提供更宽的界面适配空间。
自动填充框架
- 性能、安全性与隐私性提升:优化自动填充体验。
基于物理的动画
- 更自然的动画效果:支持早期版本,通过 support library 实现。
媒体改进
编解码器
- getMetrics():获取编解码器信息、时长、比特率等。
- 改进缓冲控制与寻址功能:提升播放体验。
录制
- 支持 MPEG-2 TS 流格式:兼容更多视频格式。
- 任意数量的音频/视频轨道:灵活支持多轨道录制。
- 支持元数据轨道:增强媒体内容管理。
AAudio Native API
- 比 Open SLES 更易使用:支持专业音频应用。
WebView 改进
- 多进程安全性和稳健性:提升安全性。
- Version API:支持版本控制。
- Google Safe Browsing API:增强安全防护。
- Termination Handle 和 Renderer Importance APIs:优化内存管理。
自动填充框架
- 支持 XML 字体与可下载字体:提升字体加载灵活性。
- 自动调整字体大小的 TextView:适配不同屏幕尺寸。
辅助功能
视力障碍
- Accessibility Volume:支持语音控制。
- Fingerprint Gestures:指纹手势支持。
- 多语言支持:增强 TTS 功能。
- Accessibility Shortcut:提供快捷操作。
阅读障碍
- Select to Speak:支持语音选择功能。
开发者工具
- Continuous Gestures API:支持鼠标和头部追踪。
- Accessibility Scanner:可在 Google Play 上使用。
- Accessibility test framework:帮助测试辅助功能。
StrictMode
- 无缓冲 I/O:跟踪未缓冲的 I/O 操作。
- 未标记的 sockets:监控未标记的 socket 使用。
- 未设置权限的 Content URI:防止未经授权的访问。
媒体文件访问
- 可寻址文件描述符:适用于大型远程数据源。
缓存数据 - StorageManager
- 保持低于配额:避免被系统删除。
- 主动查询配额:使用
getCacheQuotaBytes()和getAllocatableBytes()。 - 设置 cache behavior tombstone:保留文件并截断为 0 字节。
情境体验(Contextual Experience)
- Wi-Fi 感知(Neighbor Awareness Networking):发现并连接相邻设备。
- Nearby + Awareness(Google Play Services):支持多种情境类型(Location, Place, Beacons, Time, Activity, Headphones, Weather)。
Google Play Console 更新
新功能
- Android Vitals:提供可采取行动的系统健康数据。
- App signing:提升应用签名安全性。
- Device catalog:管理设备信息。
- Release dashboards:查看发布数据。
- Subscriptions dashboards:管理订阅信息。
更新
- Pre-launch reports:提前检测应用问题。
- Statistics page:查看应用统计数据。
- Acquisition reports:分析用户获取情况。
- Reviews analysis:分析用户评论。
Android Go
- 数据管理和节约:优化资源使用。
- Chrome Data Saver:节省数据流量。
- YouTube Go:支持离线观看。
- GBoard 多语言支持:适配全球用户。
- Apk 小于 10MB:优化内存和电池使用。
Lifecycle Aware Components
- Lifecycle 事件:跟踪组件生命周期状态。
- LiveData:感知生命周期,自动管理订阅。
- ViewModel:管理 UI 数据,不直接访问 Views。
- Room:提供流畅的数据库访问,支持原始 SQL。
新语言支持
- Kotlin 官方支持:与 Java 互通,适合生产环境,IDE 支持良好,开源。
- Java 8 更新:支持
java.time、javanio.file、java.lang.invoke等新特性。
参考信息
系统健康
- Android Vitals:提供性能和稳定性数据。
- ANR RATE、CRASH RATE、SLOW RENDERING、FROZEN FRAMES:监控应用健康状况。
电池管理
- Battery Saver:在电量 15% 时自动开启。
- Adaptive brightness:优化亮度以适应环境光。
- Sleep:30 秒无活动后自动进入休眠。
- App usage since last full charge:展示各应用的使用情况。
开发建议
- Kotlin 与 Java 8:推荐使用新语言特性。
- Adaptive Icons:适配不同屏幕尺寸。
- Android Things:支持物联网设备开发。
编译优化
- Instant App 支持:提升应用启动速度。
- Build Speed Improvements:优化编译速度。
- Google's Maven Repository:使用最新版本库。
- Instant Run:减少构建时间。
- 禁用 PNG 压缩:提升性能。
- 使用 Gradle 缓存:加快依赖下载。
Android Gradle Builds
- 最新 Android Gradle Plugin:提升多模块项目管理。
- Gradle Profiler:帮助解决性能问题。
ART 性能与内存改进
- DEX 文件内存优化:使用 JIT profiles 优化内存使用,减少 1/3 内存消耗。
- 新的 Garbage Collector:并发压缩,减少 GC 停顿时间(0.4ms vs 2.5ms)。
- Heap compaction:提升内存收集与分配效率。
安全性改进
硬件强化
- Verified Boot:防止系统回滚,增强解锁安全性。
- Encryption:提升 FBE 功能,支持密钥弹出。
- Security Lock Screen:支持防篡改硬件。
- Permissions:更新 overlay API,移除大部分持久 ID 访问,优化 Instant Apps 权限模型。
- Fighting ransomware:限制 SYSTEM_ALERTWINDOW 权限。
- Privacy controls:移除对持久设备标识符的访问。
- Sandboxing and isolation:通过 Project Treble 实现硬件隔离。
- SELinux 效果:增强系统安全。
内核强化
- Seccomp:减少内核攻击面。
App 安全性
- WebView 安全性:使用隔离进程,支持 Safe Browsing。
- 设备和用户认证:使用 Keystore key attestation,支持 FIDO U2F 安全密钥。
结语
文档最后感谢了所有参与和贡献的团队,鼓励开发者充分利用 Android 0 的新特性,提升应用性能、安全性和用户体验。
展开完整摘要
试读结束,高清完整版pdf/doc/ppt,请点下载