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

感谢大家关注 Android 开发者峰会 2019!在本次峰会内容连载期间我们收到了不少来自大家的 Android 开发问题,由于篇幅所限这里精选一部分具有代表性的问题做出解答。

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

Android 开发者峰会 2019 官方网站

https://developer.android.google.cn/dev-summit-recap

Bilibili 播放列表

https://space.bilibili.com/64169458/channel/detail?cid=91608

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

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

开发者预览版本

https://developer.android.google.cn/jetpack/compose

Github

https://github.com/android/compose-samples/tree/master/JetNews

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 上的示例

https://github.com/android/architecture-components-samples/tree/master/LiveDataSample

将 Kotlin 协程与架构组件一起使用

https://developer.android.google.cn/topic/libraries/architecture/coroutines

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

A: 在没有提供更多细节的情况下很难判断具体原因,可能是应用被设备强行结束,或者是约束条件由于某种原因并没有得到满足。

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

A: 目前没有办法修改。

Q 7: 请问 ViewPager2 的稳定版大概会在何时可用?

A: ViewPager2 的稳定版已在 2019 年 11 月上线啦!大家久等了。

https://developer.android.google.cn/jetpack/androidx/releases/viewpager2#1.0.0

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: 这是达到同一个目的的两种做法,我们鼓励大家做出自己的尝试和选择。

Q 18: 我对 Compose 很感兴趣,我该从何学起?

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

Jetpack Compose

https://developer.android.google.cn/jetpack/compose

Github 上的示例

https://github.com/android/compose-samples/tree/master/JetNews

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

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

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

A: 深灰色背景可以在省电的同时做到在视觉上更加柔和,请开发者结合自己的应用视觉效果进行尝试。

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

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

唯一标识符最佳做法

https://developer.android.google.cn/training/articles/user-data-ids

再次感谢大家关注 Android 开发者峰会!

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

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 221,198评论 6 514
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 94,334评论 3 398
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 167,643评论 0 360
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,495评论 1 296
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,502评论 6 397
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 52,156评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,743评论 3 421
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,659评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 46,200评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,282评论 3 340
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,424评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 36,107评论 5 349
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,789评论 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,264评论 0 23
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,390评论 1 271
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,798评论 3 376
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,435评论 2 359

推荐阅读更多精彩内容

  • 作者 / Stephanie Cuthbertson, 产品管理总监 现代 Android 开发的最新进展 也许是...
    谷歌开发者阅读 2,153评论 0 6
  • Device ID Q: 预装应用可以获取设备 ID,这里对预装应用的定义、标准和范畴是什么?是否由厂商系统设置名...
    谷歌开发者阅读 4,640评论 0 2
  • “1%的体验胜过99%的知识。” 听到老师说这句话,我想起以前的一句话:“知识可以百度,能力无法搜索。经验不可替代...
    方方彩琴阅读 659评论 1 1
  • 很多时候运营在做的事就像攒一个“局”。即,设计或假想出来,一个最终可以拉动n多人一起参与,一起玩,一起嗨的事情,并...
    一一慢知阅读 195评论 0 0
  • 一气跑了六分钟,感觉自己好棒!原先跑俩分钟就上气不接下气,现在也能跑五分钟,甚至偶尔还会超过,真是为自己骄傲!一直...
    大瑜阅读 420评论 2 4