- 前言
- 推薦詞
- Manuel Vivo(Bumble 的 Android 資深工程師,前 Google Android 開發者關係工程師)
- Matt McKenna(Block 的資深 Android 工程師,Android GDE)
- Alejandra Stamato(HubSpot 的首席 Android 工程師,前 Google Android 開發者關係工程師)
- Simona Milanovic(資深 Android 開發者關係工程師)
- 關於本書
- 致求職者
- 致面試官
- 贊助商
- Stream
- 問題回報與討論
- 0. Android 面試題
- 類別 0:Android 框架
- Q) 0. 什麼是 Android?
- 問)1. 什麼是 Intent?
- 問)2. PendingIntent 的目的是什麼?
- 問)3. Serializable 和 Parcelable 的區別是什麼
- 問)4. 什麼是 Context?存在哪些類型的 Context?
- Q) 5. 什麼是 Application 類別?
- 問)6. AndroidManifest 檔案的目的是什麼?
- 問)7. 描述 Activity 生命週期
- Q) 8. 描述 Fragment 生命週期
- Q) 9. 什麼是 Service?
- Q) 10. 什麼是 BroadcastReceiver?
- 問)11. 內容提供者的目的是什麼,它如何促進應用程式之間的安全資料共享?
- Q) 12. 如何處理配置變更?
- Q) 13. Android 如何管理記憶體,以及如何避免記憶體洩漏?
- 問)14. ANR 錯誤的主要原因是什麼,如何防止它們發生?
- Q)15. 如何處理深層連結?
- 問題)16. 什麼是任務和返回堆疊?
- 問)17. Bundle 的用途是什麼?
- Q) 18. 如何在 Activity 或 Fragment 之間傳遞數據
- Q) 19. Activity 在配置變更期間會發生什麼?
- 問) 20. 什麼是 ActivityManager?
- 問題)21. 使用 SparseArray 的優勢是什麼
- 問)22. 如何處理執行時權限?
- 問)23. Looper、Handler 和 HandlerThread 的角色是什麼?
- 問)24. 如何追蹤異常?
- 問)25. 什麼是建置變體和風味?
- 問)26. 如何確保無障礙性?
- 問)27. 什麼是 Android 檔案系統?
- 問)28. 什麼是 Android 執行環境 (ART)、Dalvik 和 Dex 編譯器?
- 問)29. APK 檔案和 AAB 檔案有什麼區別?
- 問題)30. 什麼是 R8 優化?
- Q) 31. 如何減少應用程式大小?
- Q) 32. 什麼是 Android 應用程式中的進程,Android 作業系統如何管理它?
- 類別 1:Android UI - 視圖
- Q) 33. 描述視圖生命週期
- Q) 34. View 和 ViewGroup 有什麼區別?
- Q) 35. 您是否使用過 ViewStub?如何使用它來優化使用者介面效能?
- Q) 36. 如何實現自定義視圖?
- Q) 37. 什麼是 Canvas(畫布)以及如何使用它?
- 問題)38. 什麼是視圖系統中的無效化?
- Q) 39. 什麼是 ConstraintLayout?
- Q) 40. 什麼時候應該使用 SurfaceView 而不是 TextureView?
- Q) 41. RecyclerView 內部是如何運作的?
- Q) 42. Dp 和 Sp 有什麼區別?
- 問題)43. 九宮格圖片(Nine-Patch image)的用途是什麼?
- Q)44. 什麼是 Drawable,它在使用者介面開發中如何使用?
- 問題)45. 什麼是 Android 中的 Bitmap,如何有效地處理大型點陣圖?
- Q) 46. 如何實現動畫?
- Q) 47. 什麼是視窗(Window)?
- Q) 48. 如何渲染網頁?
- 第二類:Jetpack 函式庫
- 問題 49. 什麼是 AppCompat 函式庫?
- 問)50. 什麼是 Material Design Components (MDC)?
- 問題)51. 使用 ViewBinding 有什麼優點?
- Q) 52. DataBinding 如何運作?
- Q) 53. 什麼是 LiveData?
- Q) 54. 什麼是 Jetpack ViewModel?
- Q) 55. 什麼是 Jetpack 導航庫?
- Q) 56:什麼是 Dagger 2 和 Hilt?
- Q) 57. 什麼是 Jetpack Paging 函式庫?
- 問題)58. 什麼是基準設定檔?
- 類別 3:業務邏輯
- Q) 59. 你會如何管理長時間執行的背景任務?
- 問題)60. 如何將 Json 格式序列化為物件
- Q) 61. 你如何處理網路請求來獲取資料,以及你使用哪些函式庫或技術來確保效率和可靠性?
- Q) 62. 為什麼分頁系統對於加載大型數據集至關重要,以及如何在 RecyclerView 中實現它?
- 問)63. 如何從網路獲取和渲染圖片?
- 問題)64. 如何在本地儲存和保存資料?
- 問)65. 如何處理離線優先功能?
- Q) 66. 在哪裡啟動初始數據加載任務?LaunchedEffect 與 ViewModel.init() 的選擇
- 類別 0:Android 框架
- 1. Jetpack Compose 面試題
- 類別 0:Compose 基礎
- Q) 0. Jetpack Compose 的結構是什麼?
- Q)1. Compose 的階段是什麼?
- Q) 2. 為什麼Jetpack Compose是一個宣告式UI框架?
- 問)3. 什麼是重組,它在什麼時候發生?另外,它與應用程式效能有什麼關係?
- Q) 4. 可組合函數內部是如何運作的?
- Q) 5. 什麼是 Jetpack Compose 中的穩定性,它與效能有什麼關係?
- Q) 6. 您是否有通過改善穩定性來最佳化 Compose 效能的經驗?
- Q) 7. 什麼是組合以及如何創建它?
- 問)8. 將基於 XML 的專案遷移到 Jetpack Compose 有哪些策略?
- Q) 9. 為什麼應該始終在發布模式下測試 Compose 性能?
- Q) 10. Jetpack Compose 中常用的 Kotlin 慣用語法有哪些?
- 類別 1:Compose Runtime
- Q) 11. 什麼是狀態(State)?使用哪些 API 來管理它?
- Q)12. 使用狀態提升可以帶來哪些優勢?
- Q) 13. remember 和 rememberSaveable 有什麼區別?
- Q) 14. 如何在可組合函數中安全地創建協程作用域?
- Q) 15. 如何在可組合函數中處理副作用?
- 問)16. rememberUpdatedState 的目的是什麼,它是如何工作的?
- Q) 17. produceState 的目的是什麼,它是如何運作的?
- Q) 18. 什麼是 snapshotFlow,它是如何運作的?
- 問題)19. derivedStateOf 的目的是什麼,它如何幫助優化重組?
- 問題)20. 可組合函數或組合的生命週期是什麼?
- 問題)21. 什麼是 SaveableStateHolder?
- 問題)22. 快照系統的目的是什麼?
- Q) 23. 什麼是 mutableStateListOf 和 mutableStateMapOf
- 問)24. 如何在可組合函數中安全地收集 Kotlin 的 Flow,同時防止記憶體洩漏?
- 問)25. CompositionLocals 的角色是什麼?
- 類別 2:Compose UI
- Q) 26. 什麼是 Modifier?
- Q) 27. 什麼是 Layout?
- Q) 28. 什麼是 Box?
- Q) 29. Arrangement 和 Alignment 有什麼區別?
- 問)30. 什麼是 Painter?
- 問)31. 如何從網路載入圖像?
- 問題)32. 如何有效地渲染數百個項目的列表,同時避免使用者介面卡頓?
- 問)33. 如何在懶加載列表中實現分頁?
- 問)34. 什麼是 Canvas?
- 問)35. 您是否曾經使用過 graphicsLayer 修飾符?
- 問)36. 如何在 Jetpack Compose 中實現視覺動畫?
- 問)37. 如何在畫面間進行導航?
- 問)38. 預覽功能如何運作以及你如何處理它們?
- 問題)39. 如何為 Compose UI 元件或畫面編寫單元測試?
- 問)40. 什麼是截圖測試,它如何幫助確保開發過程中的UI一致性?
- 問題)41. 如何確保 Jetpack Compose 中的無障礙功能?
- 類別 0:Compose 基礎
Manifest Android Interview (繁體中文版)
Android 技術面試終極攻略指南
The authors are letting you choose the price you pay for this book!
About
About the Book
Manifest Android Interview 是一本全面性的指南,透過108個詳細解答的面試問題、162個額外的實務問題,以及50多個「精通專業技巧」部分來提升您的 Android 開發專業知識。這些面試問題主要聚焦於 Android 開發—包括框架、使用者介面、Jetpack 函式庫和商業邏輯—以及 Jetpack Compose,涵蓋基礎知識、執行時期和使用者介面。
每個問題都提供深入的解釋,在引導您學習 Android 和 Jetpack Compose 的同時,加強您對關鍵概念的理解。在每個問題的結尾,您都能找到設計用來模擬真實面試情境的實務問題,讓您能夠磨練解決問題的能力,並為技術討論做好充分準備。
本書包含相關資源和額外參考資料,供那些想要進一步深入學習的讀者使用。我們盡可能為可能陌生或複雜的關鍵術語提供註腳說明,確保初學者能夠輕鬆掌握具有挑戰性的概念,同時加深理解。
「精通專業技巧」部分深入探討進階主題,揭露內部 API 結構並提供專家見解,讓資深開發人員保持興趣。對於中級開發人員來說,這個部分是強化 Android 專業知識和培養更具分析性技術挑戰方法的寶貴資源。
我希望這本書能幫助您獲得新的視角、提升解決問題的能力,並建立對 Android 開發與生態系統的全面理解。無論您是在準備下一次重要面試,還是單純想要精進 Android 開發技能,我都鼓勵您思考超越實作的層面—理解背後的原因,嘗試不同的方法,並保持好奇心和熱情持續學習。
想了解有趣的事實、適合對象、涵蓋內容以及未包含的內容,請查看Manifest Android Interview:破解 Android 技術面試的終極指南部落格文章。
Categories
Feedback
Price
Pick Your Price...
Minimum price
$42.99
$52.99
You pay
$52.99Authors earn
$42.39Author
About the Authors
Jaewoong
The author of this book, Jaewoong Eum (known as skydoves), is a Google Developer Expert (GDE) for Android, Kotlin, and Firebase, an open-source developer created over 80+ open-source libraries and projects, collectively amassing 15+ million downloads annually. The author is also the founder of Dove Letter—a subscription-based repository dedicated to sharing, learning, and discussing Android and Kotlin development.
TranslateAI
Leanpub now has a TranslateAI service which uses AI to translate their book from English into up to 31 languages, or from one of those 31 languages into English. We also have a GlobalAuthor bundle which uses TranslateAI to translate English-language books into either 8 or 31 languages.
Leanpub exists to serve our authors. We want to help you reach as many readers as possible, in their preferred language. So, just as Leanpub automates the process of publishing a PDF and EPUB ebook, we've now automated the process of translating those books!
Contents
Table of Contents
The Leanpub 60 Day 100% Happiness Guarantee
Within 60 days of purchase you can get a 100% refund on any Leanpub purchase, in two clicks.
Now, this is technically risky for us, since you'll have the book or course files either way. But we're so confident in our products and services, and in our authors and readers, that we're happy to offer a full money back guarantee for everything we sell.
You can only find out how good something is by trying it, and because of our 100% money back guarantee there's literally no risk to do so!
So, there's no reason not to click the Add to Cart button, is there?
See full terms...
Earn $8 on a $10 Purchase, and $16 on a $20 Purchase
We pay 80% royalties on purchases of $7.99 or more, and 80% royalties minus a 50 cent flat fee on purchases between $0.99 and $7.98. You earn $8 on a $10 sale, and $16 on a $20 sale. So, if we sell 5000 non-refunded copies of your book for $20, you'll earn $80,000.
(Yes, some authors have already earned much more than that on Leanpub.)
In fact, authors have earned over $14 million writing, publishing and selling on Leanpub.
Learn more about writing on Leanpub
Free Updates. DRM Free.
If you buy a Leanpub book, you get free updates for as long as the author updates the book! Many authors use Leanpub to publish their books in-progress, while they are writing them. All readers get free updates, regardless of when they bought the book or how much they paid (including free).
Most Leanpub books are available in PDF (for computers) and EPUB (for phones, tablets and Kindle). The formats that a book includes are shown at the top right corner of this page.
Finally, Leanpub books don't have any DRM copy-protection nonsense, so you can easily read them on any supported device.
Learn more about Leanpub's ebook formats and where to read them
Write and Publish on Leanpub
You can use Leanpub to easily write, publish and sell in-progress and completed ebooks and online courses!
Leanpub is a powerful platform for serious authors, combining a simple, elegant writing and publishing workflow with a store focused on selling in-progress ebooks.
Leanpub is a magical typewriter for authors: just write in plain text, and to publish your ebook, just click a button. (Or, if you are producing your ebook your own way, you can even upload your own PDF and/or EPUB files and then publish with one click!) It really is that easy.