Android 开发者峰会 2019 常见问题解答

感谢你们关注 Android 开发者峰会 2019!在本次峰会内容连载期间咱们收到了很多来自你们的 Android 开发问题,因为篇幅所限这里精选一部分具备表明性的问题作出解答。

本次开发者峰会所有演讲的中文字幕视频已经所有发布,覆盖到了目前 Android 应用和游戏开发领域的主要课题。欢迎您前往咱们的官方网站或播放列表页面观看。android

Android 开发者峰会 2019 官方网站 developer.android.google.cn/dev-summit-…git

Bilibili 播放列表 space.bilibili.com/64169458/ch…github

Q 1: Jetpack Compose 会给 Android 应用的架构带来哪些变化?后端

A: Jetpack Compose 设计的初衷是尽量不影响你们使用架构组件打造好的内容,并在 UI 方面确保帮助开发者们高效打造符合架构组件一向高品质的体验。请查看开发者预览版本,欢迎经过 Github 提交您的反馈!网络

开发者预览版本 developer.android.google.cn/jetpack/com…架构

Github github.com/android/com…布局

Q 2: 有没有可能脱离其余 Jetpack 库单独使用 CameraX?性能

A: CameraX 目前依赖 Jetpack Lifecycle,但并无依赖其余组件 (如 ViewModel 和 LiveData)。咱们接下来会逐步在 CameraX 中引入更多针对 Jetpack 的兼容性功能。学习

Q 3: 接下来 Wear OS 会有怎样的进展? A: Google 很重视 Wear OS 以及合做伙伴生态系统的发展,许多合做伙伴也在不久前发布了全新的秋季手表产品阵容。在软件方面,咱们也在继续投入资源打造更好的用户体验,好比磁贴交互,以及使用滑动操做进入全屏信息界面。此次开发者峰会上咱们没有面向开发者的新消息,但咱们一直在思考如何为 Wear OS 带来更多的兼容性。请你们继续保持关注。优化

Q 4: Google 有没有一些展现 Kotlin 协程和 Android 架构组件的例子,好比使用 MVVM 模式?

A: 咱们有很多这样的例子。好比在 Github 上就有好几个展现架构组件以及 LiveData 的例子,而且有提供 Codelab。这些例子也在咱们的 Udacity 课程和文章中有展现。

GitHub 上的示例 github.com/android/arc…

将 Kotlin 协程与架构组件一块儿使用 developer.android.google.cn/topic/libra…

Q 5: 我设置了一个 15 分钟运行一次的循环,其约束条件是须要能够访问网络。为何在网络一直可用的状况下,第二次运行 1 小时也没有出现?

A: 在没有提供更多细节的状况下很难判断具体缘由,多是应用被设备强行结束,或者是约束条件因为某种缘由并无获得知足。

Q 6: 有没有办法修改 Android 模拟器默认的电话号码和国家码? A: 目前没有办法修改。

Q 7: 请问 ViewPager2 的稳定版大概会在什么时候可用

A: ViewPager2 的稳定版已在 2019 年 11 月上线啦!你们久等了。 developer.android.google.cn/jetpack/and…

Q 8: Kotlin 适合企业开发者来使用吗?

A: Kotlin 并不只限于 Android 开发,事实上在后端、Web 乃至桌面上都有很丰富的用例和强大的支持。

Q 9: Android Studio 的速度有改善吗?

A: 有。咱们经过 Project Marble 等诸多环节的努力进一步提高了 Android Studio 在性能和稳定性方面的表现,包括但不限于 UI 卡顿、内存消耗、增量注解处理速度等诸多指标。另外,咱们也会针对开发者的开发环境和项目给出建议分配给 Studio 的内存大小,从而进一步改善其性能表现。

Q 10: 随着 Android Studio 的功能愈来愈复杂,有没有计划下降或者优化其内存需求?

A: 咱们正在着手考虑这一点。

Q 11: 单一 Activity 或者多个 Activity,哪种实现更优?

A: 咱们建议开发者采用单一 Activity,这样能带来更好的用户体验。若是开发者打算提供深连接,也能够考虑多 Activity。

Q 12: 为何 Android 每一年会推出一个版本?会不会太快了?

A: 围绕咱们的技术演进速度本就很快,更加上各类全新硬件的涌现、以及用户体验诉求的变迁,使得咱们须要让 Android 平台和这些趋势保持同步。但咱们也在努力确保开发者能有充裕的时间跟上平台演进的节奏,并会在尽量早的时间点让开发者参与到平台演进的过程当中来。

Q 13: Project Mainline 和 Project Treble 有什么区别?

A: 考虑到 FAQ 的篇幅,这里简要概述一下。Project Treble 能够认为是 Android OS 和底层的硬件之间的一条线,这条线的存在能够确保 Android 设备开发商能更快、更平顺地支持最新的 Android。而 Project Mainline 则能够理解为 Treble 上的一条条竖线,这些竖线组成了 OS,而经过 Project Mainline 咱们能够作到在不发布完整 OS 的状况下更新操做系统组件。

Q 14: 咱们什么时候能够在生产环境使用 CameraX?

A: CameraX 目前仍然在 Alpha 阶段。咱们建议开发者在生产环境至少使用 Beta 版本的库,请你们关注 CameraX 的后续发布。

Q 15: 我如今在使用 Camera 1,我是该迁移至 Camera 2 仍是 CameraX?我应该基于什么理由作出决策?

A: CameraX 的学习曲线比 Camera 2 更友好。但若是您打算实现更多自定义的或者完整的摄像头功能,Camera 2 会提供更多灵活性。另外,针对 API 19 或之前的用户,请使用 Camera 1,其余的用户请使用 CameraX,由于 CameraX 能够覆盖绝大多数用户。

Q 16: CameraX 如何处理多个摄像头的数据流?

A: 从 Android 9 开始咱们引入了新的逻辑摄像头 API,它会将多个物理摄像头封装成一个逻辑摄像头供开发者使用。

Q 17: Compose 是否相比较 LiveData 数据绑定更优?

A: 这是达到同一个目的的两种作法,咱们鼓励你们作出本身的尝试和选择。

developer.android.google.cn/dev-summit-…

A: 咱们的开发者网站上开设了专区,请务必前往查看。

Jetpack Compose developer.android.google.cn/jetpack/com…

Github 上的示例 github.com/android/com…

Q 19: Jetpack Compose 支持使用约束布局来构建动态 UI 吗?

A: 咱们正在努力加入对约束布局的支持。

Q 20: 在切换至深色模式时,是推荐使用深灰色背景仍是纯黑色背景?

A: 深灰色背景能够在省电的同时作到在视觉上更加柔和,请开发者结合本身的应用视觉效果进行尝试。

Q 21: 在 Android 10 上如何获取用户的 IMEI?

A: 从 Android 10 开始,应用必须具备 READ_PRIVILEGED_PHONE_STATE 特许权限才能访问设备的不可重置标识符 (包含 IMEI 和序列号)。其实许多使用场景都不须要不可重置的设备标识符。例如,若是您的应用将不可重置的设备标识符用于广告跟踪或用户分析目的,请为这些特定使用场景使用 Android 广告 ID。要了解详情,请参阅惟一标识符的最佳作法。

惟一标识符最佳作法 developer.android.google.cn/training/ar…

再次感谢你们关注 Android 开发者峰会!

点击这里 进入 Android Dev Summit 中文官方网站

相关文章
相关标签/搜索