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 中文官方網站

相關文章
相關標籤/搜索