Android 開發(fā)者峰會(huì) 2019 常見問題解答

感謝大家關(guān)注 Android 開發(fā)者峰會(huì) 2019!在本次峰會(huì)內(nèi)容連載期間我們收到了不少來自大家的 Android 開發(fā)問題,由于篇幅所限這里精選一部分具有代表性的問題做出解答。

本次開發(fā)者峰會(huì)全部演講的中文字幕視頻已經(jīng)全部發(fā)布,覆蓋到了目前 Android 應(yīng)用和游戲開發(fā)領(lǐng)域的主要課題。歡迎您前往我們的官方網(wǎng)站或播放列表頁面觀看。

Android 開發(fā)者峰會(huì) 2019 官方網(wǎng)站

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

Bilibili 播放列表

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

Q 1: Jetpack Compose 會(huì)給 Android 應(yīng)用的架構(gòu)帶來哪些變化?

A: Jetpack Compose 設(shè)計(jì)的初衷是盡可能不影響大家使用架構(gòu)組件打造好的內(nèi)容,并在 UI 方面確保幫助開發(fā)者們高效打造符合架構(gòu)組件一貫高品質(zhì)的體驗(yàn)。請查看開發(fā)者預(yù)覽版本,歡迎通過 Github 提交您的反饋!

開發(fā)者預(yù)覽版本

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

Github

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

Q 2: 有沒有可能脫離其他 Jetpack 庫單獨(dú)使用 CameraX?

A: CameraX 目前依賴 Jetpack Lifecycle,但并沒有依賴其他組件 (如 ViewModel 和 LiveData)。我們接下來會(huì)逐步在 CameraX 中引入更多針對 Jetpack 的兼容性功能。

Q 3: 接下來 Wear OS 會(huì)有怎樣的進(jìn)展?

A: Google 很重視 Wear OS 以及合作伙伴生態(tài)系統(tǒng)的發(fā)展,許多合作伙伴也在不久前發(fā)布了全新的秋季手表產(chǎn)品陣容。在軟件方面,我們也在繼續(xù)投入資源打造更好的用戶體驗(yàn),比如磁貼交互,以及使用滑動(dòng)操作進(jìn)入全屏信息界面。這次開發(fā)者峰會(huì)上我們沒有面向開發(fā)者的新消息,但我們一直在思考如何為 Wear OS 帶來更多的兼容性。請大家繼續(xù)保持關(guān)注。

Q 4: Google 有沒有一些展示 Kotlin 協(xié)程和 Android 架構(gòu)組件的例子,比如使用 MVVM 模式?

A: 我們有不少這樣的例子。比如在 Github 上就有好幾個(gè)展示架構(gòu)組件以及 LiveData 的例子,并且有提供 Codelab。這些例子也在我們的 Udacity 課程和文章中有展示。

GitHub 上的示例

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

將 Kotlin 協(xié)程與架構(gòu)組件一起使用

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

Q 5: 我設(shè)置了一個(gè) 15 分鐘運(yùn)行一次的循環(huán),其約束條件是需要可以訪問網(wǎng)絡(luò)。為什么在網(wǎng)絡(luò)一直可用的情況下,第二次運(yùn)行 1 小時(shí)也沒有出現(xiàn)?

A: 在沒有提供更多細(xì)節(jié)的情況下很難判斷具體原因,可能是應(yīng)用被設(shè)備強(qiáng)行結(jié)束,或者是約束條件由于某種原因并沒有得到滿足。

Q 6: 有沒有辦法修改 Android 模擬器默認(rèn)的電話號碼和國家碼?

A: 目前沒有辦法修改。

Q 7: 請問 ViewPager2 的穩(wěn)定版大概會(huì)在何時(shí)可用?

A: ViewPager2 的穩(wěn)定版已在 2019 年 11 月上線啦!大家久等了。

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

Q 8: Kotlin 適合企業(yè)開發(fā)者來使用嗎?

A: Kotlin 并不僅限于 Android 開發(fā),事實(shí)上在后端、Web 乃至桌面上都有很豐富的用例和強(qiáng)大的支持。

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

A: 有。我們通過 Project Marble 等諸多環(huán)節(jié)的努力進(jìn)一步提升了 Android Studio 在性能和穩(wěn)定性方面的表現(xiàn),包括但不限于 UI 卡頓、內(nèi)存消耗、增量注解處理速度等諸多指標(biāo)。另外,我們也會(huì)針對開發(fā)者的開發(fā)環(huán)境和項(xiàng)目給出建議分配給 Studio 的內(nèi)存大小,從而進(jìn)一步改善其性能表現(xiàn)。

Q 10: 隨著 Android Studio 的功能越來越復(fù)雜,有沒有計(jì)劃降低或者優(yōu)化其內(nèi)存需求?

A: 我們正在著手考慮這一點(diǎn)。

Q 11: 單一 Activity 或者多個(gè) Activity,哪一種實(shí)現(xiàn)更優(yōu)?

A: 我們建議開發(fā)者采用單一 Activity,這樣能帶來更好的用戶體驗(yàn)。如果開發(fā)者打算提供深鏈接,也可以考慮多 Activity。

Q 12: 為什么 Android 每年會(huì)推出一個(gè)版本?會(huì)不會(huì)太快了?

A: 圍繞我們的技術(shù)演進(jìn)速度本就很快,更加上各種全新硬件的涌現(xiàn)、以及用戶體驗(yàn)訴求的變遷,使得我們需要讓 Android 平臺和這些趨勢保持同步。但我們也在努力確保開發(fā)者能有充裕的時(shí)間跟上平臺演進(jìn)的節(jié)奏,并會(huì)在盡可能早的時(shí)間點(diǎn)讓開發(fā)者參與到平臺演進(jìn)的過程中來。

Q 13: Project Mainline 和 Project Treble 有什么區(qū)別?

A: 考慮到 FAQ 的篇幅,這里簡要概述一下。Project Treble 可以認(rèn)為是 Android OS 和底層的硬件之間的一條線,這條線的存在可以確保 Android 設(shè)備開發(fā)商能更快、更平順地支持最新的 Android。而 Project Mainline 則可以理解為 Treble 上的一條條豎線,這些豎線組成了 OS,而通過 Project Mainline 我們可以做到在不發(fā)布完整 OS 的情況下更新操作系統(tǒng)組件。

Q 14: 我們何時(shí)可以在生產(chǎn)環(huán)境使用 CameraX?

A: CameraX 目前仍然在 Alpha 階段。我們建議開發(fā)者在生產(chǎn)環(huán)境至少使用 Beta 版本的庫,請大家關(guān)注 CameraX 的后續(xù)發(fā)布。

Q 15: 我現(xiàn)在在使用 Camera 1,我是該遷移至 Camera 2 還是 CameraX?我應(yīng)該基于什么理由做出決策?

A: CameraX 的學(xué)習(xí)曲線比 Camera 2 更友好。但如果您打算實(shí)現(xiàn)更多自定義的或者完整的攝像頭功能,Camera 2 會(huì)提供更多靈活性。另外,針對 API 19 或以前的用戶,請使用 Camera 1,其他的用戶請使用 CameraX,因?yàn)?CameraX 可以覆蓋絕大多數(shù)用戶。

Q 16: CameraX 如何處理多個(gè)攝像頭的數(shù)據(jù)流?

A: 從 Android 9 開始我們引入了新的邏輯攝像頭 API,它會(huì)將多個(gè)物理攝像頭封裝成一個(gè)邏輯攝像頭供開發(fā)者使用。

Q 17: Compose 是否相比較 LiveData 數(shù)據(jù)綁定更優(yōu)?

A: 這是達(dá)到同一個(gè)目的的兩種做法,我們鼓勵(lì)大家做出自己的嘗試和選擇。

Q 18: 我對 Compose 很感興趣,我該從何學(xué)起?

A: 我們的開發(fā)者網(wǎng)站上開設(shè)了專區(qū),請務(wù)必前往查看。

Jetpack Compose

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

Github 上的示例

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

Q 19: Jetpack Compose 支持使用約束布局來構(gòu)建動(dòng)態(tài) UI 嗎?

A: 我們正在努力加入對約束布局的支持。

Q 20: 在切換至深色模式時(shí),是推薦使用深灰色背景還是純黑色背景?

A: 深灰色背景可以在省電的同時(shí)做到在視覺上更加柔和,請開發(fā)者結(jié)合自己的應(yīng)用視覺效果進(jìn)行嘗試。

Q 21: 在 Android 10 上如何獲取用戶的 IMEI?

A: 從 Android 10 開始,應(yīng)用必須具有 READ_PRIVILEGED_PHONE_STATE 特許權(quán)限才能訪問設(shè)備的不可重置標(biāo)識符 (包含 IMEI 和序列號)。其實(shí)許多使用場景都不需要不可重置的設(shè)備標(biāo)識符。例如,如果您的應(yīng)用將不可重置的設(shè)備標(biāo)識符用于廣告跟蹤或用戶分析目的,請為這些特定使用場景使用 Android 廣告 ID。要了解詳情,請參閱唯一標(biāo)識符的最佳做法。

唯一標(biāo)識符最佳做法

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

再次感謝大家關(guān)注 Android 開發(fā)者峰會(huì)!

點(diǎn)擊進(jìn)入 Android Dev Summit 中文官方網(wǎng)站

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 作者 / Stephanie Cuthbertson, 產(chǎn)品管理總監(jiān) 現(xiàn)代 Android 開發(fā)的最新進(jìn)展 也許是...
    谷歌開發(fā)者閱讀 2,262評論 0 6
  • Device ID Q: 預(yù)裝應(yīng)用可以獲取設(shè)備 ID,這里對預(yù)裝應(yīng)用的定義、標(biāo)準(zhǔn)和范疇是什么?是否由廠商系統(tǒng)設(shè)置名...
    谷歌開發(fā)者閱讀 4,694評論 0 2
  • “1%的體驗(yàn)勝過99%的知識。” 聽到老師說這句話,我想起以前的一句話:“知識可以百度,能力無法搜索。經(jīng)驗(yàn)不可替代...
    方方彩琴閱讀 806評論 1 1
  • 很多時(shí)候運(yùn)營在做的事就像攢一個(gè)“局”。即,設(shè)計(jì)或假想出來,一個(gè)最終可以拉動(dòng)n多人一起參與,一起玩,一起嗨的事情,并...
    一一慢知閱讀 240評論 0 0
  • 一氣跑了六分鐘,感覺自己好棒!原先跑倆分鐘就上氣不接下氣,現(xiàn)在也能跑五分鐘,甚至偶爾還會(huì)超過,真是為自己驕傲!一直...
    大瑜閱讀 458評論 2 4

友情鏈接更多精彩內(nèi)容