Manifest Android Interview (繁體中文版)
$42.99
最低價格
$52.99
建議價格

Manifest Android Interview (繁體中文版)

Android 技術面試終極攻略指南

關於本書

Manifest Android Interview 是一本全面性的指南,透過108個詳細解答的面試問題、162個額外的實務問題,以及50多個「精通專業技巧」部分來提升您的 Android 開發專業知識。這些面試問題主要聚焦於 Android 開發—包括框架、使用者介面、Jetpack 函式庫和商業邏輯—以及 Jetpack Compose,涵蓋基礎知識、執行時期和使用者介面。

每個問題都提供深入的解釋,在引導您學習 Android 和 Jetpack Compose 的同時,加強您對關鍵概念的理解。在每個問題的結尾,您都能找到設計用來模擬真實面試情境的實務問題,讓您能夠磨練解決問題的能力,並為技術討論做好充分準備。

本書包含相關資源和額外參考資料,供那些想要進一步深入學習的讀者使用。我們盡可能為可能陌生或複雜的關鍵術語提供註腳說明,確保初學者能夠輕鬆掌握具有挑戰性的概念,同時加深理解。

「精通專業技巧」部分深入探討進階主題,揭露內部 API 結構並提供專家見解,讓資深開發人員保持興趣。對於中級開發人員來說,這個部分是強化 Android 專業知識和培養更具分析性技術挑戰方法的寶貴資源。

我希望這本書能幫助您獲得新的視角、提升解決問題的能力,並建立對 Android 開發與生態系統的全面理解。無論您是在準備下一次重要面試,還是單純想要精進 Android 開發技能,我都鼓勵您思考超越實作的層面—理解背後的原因,嘗試不同的方法,並保持好奇心和熱情持續學習。

Jaewoong Eum (skydoves)

想了解有趣的事實、適合對象、涵蓋內容以及未包含的內容,請查看Manifest Android Interview:破解 Android 技術面試的終極指南部落格文章。

  • 分享此書

  • 分類

    • Computers and Programming
    • Android
    • Kotlin
    • Engineering
    • Software
    • Software Engineering
    • Software Architecture
  • 意見回饋

    發送電子郵件給作者們

本書是原本以英語撰寫的Manifest Android Interview之中文(繁體)譯本。

關於作者群

Jaewoong
Jaewoong

本書作者 Jaewoong Eum(在 GitHub 上以 skydoves 為名)是 Android、Kotlin 和 Firebase 領域的 Google 開發者專家(Google Developer Expert,GDE),同時也是一位開源開發者,開發了超過 80 個開源程式庫和專案,年度總下載次數超過 1,500 萬次。作者也是 Dove Letter 的創辦人,這是一個專注於分享、學習和討論 Android 與 Kotlin 開發的訂閱制程式碼儲存庫。

TranslateAI
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!

目錄

    • 前言
    • 推薦詞
        • 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() 的選擇
    • 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 中的無障礙功能?

Leanpub 60天 100% 滿意保證

在購買後的 60 天內,您可以透過 兩次點擊 獲得任何 Leanpub 購買項目的 100% 退款

技術上來說,這對我們是有風險的,因為無論如何您都會擁有書籍或課程檔案。但我們對我們的產品和服務,以及我們的作者和讀者都充滿信心,因此我們很樂意為所有銷售的內容提供全額退款保證。

只有親自嘗試才能知道某樣東西是否真的好,而且因為我們提供 100% 退款保證,所以這完全沒有風險!

所以,還有什麼理由不點擊「加入購物車」按鈕呢?

查看完整條款...

在10美元的購買中賺取8美元,在20美元的購買中賺取16美元

對於7.99美元或以上的購買,我們支付80%版稅,對於0.99至7.98美元之間的購買,我們支付80%版稅減去0.50美元固定費用在10美元的銷售中您可賺取8美元,在20美元的銷售中可賺取16美元。因此,如果我們以20美元售出5000本不退款的圖書,您將賺取80,000美元

(是的,一些作者在Leanpub上已經賺取了遠超過這個數額的收入。)

事實上,作者們通過在Leanpub上寫作、出版和銷售已經賺取了超過1400萬美元

了解更多關於在Leanpub上寫作的信息

免費更新。無 DRM 限制。

當您購買 Leanpub 的書籍時,只要作者更新書籍內容,您就能永久免費獲得更新!許多作者在寫作過程中會使用 Leanpub 發布他們的在製書籍。所有讀者都能獲得免費更新,無論他們何時購買書籍或支付多少金額(包括免費)。

大多數 Leanpub 書籍提供 PDF(適用於電腦)和 EPUB(適用於手機、平板電腦和 Kindle)格式。在本頁面右上角會顯示該書提供的格式。

最後,Leanpub 的書籍沒有任何 DRM 複製保護機制,因此您可以在任何支援的設備上輕鬆閱讀。

了解更多關於 Leanpub 的電子書格式及其閱讀方式

在 Leanpub 上寫作和出版

您可以使用 Leanpub 輕鬆地撰寫、出版和銷售進行中的或已完成的電子書和線上課程!

Leanpub 是面向認真作者的強大平台,將簡單優雅的寫作和出版工作流程與專注於銷售進行中電子書的商店相結合。

對作者而言,Leanpub 就像是一台神奇的打字機:只需用純文本寫作,點擊一個按鈕即可出版您的電子書。(如果您以自己的方式製作電子書,您甚至可以上傳自己的 PDF 和/或 EPUB 文件,然後一鍵發布!)確實就是這麼簡單。

了解更多關於在 Leanpub 上寫作的信息