1. 程式人生 > >Android 群英傳讀書筆記

Android 群英傳讀書筆記

偶然在知乎上看到了關於《Android 群英傳》的介紹,感覺還不錯,尤其是作者前言中寫的內容和我簡直心照不宣——Android 學習的瓶頸與進階,讀了快半本了,感覺非常不錯,不合適初學者,但絕對適合學習到了瓶頸期,想要突破自我的 Android 開發者,比如我。

  • View 通過重新整理來重繪檢視,系統通過發出 VSYNC 訊號來進行重繪,重新整理間隔為16ms。當如遊戲重新整理頻繁時,會頻繁阻塞主執行緒,導致畫面卡頓。此時可使用 SurfaceView 來解決這一問題。View 和 SurfaceView 區別如下3點:
    1、View 適用於主動重新整理,SurfaceView 適用於被動重新整理
    2、View 工作在主執行緒,SurfaceView 工作在子執行緒
    3、View 沒有使用雙緩衝機制,SurfaceView 使用了雙緩衝機制
    如果自定義 View 需要頻繁重新整理,或者重新整理時資料處理量比較大,那就需要考慮使用 SurfaceView 來代替 View。

  • onSaveInstanceState() 不是每次 Activity 離開前臺時都會呼叫的,比如使用者使用 finish() 結束 Activity,則不會呼叫。而且 Android 系統已經預設實現了控制元件的快取狀態,以此來減少開發者需要實現的快取邏輯。

  • 如果啟動模式為 singleTask 的 Activity 已經在後臺一個任務棧中了,那麼啟動後,後臺的這個任務棧將一起被切換到前臺。

  • 注意,如果在一個 singleTop 或者 singleInstance 的 ActivityA 中通過 startActivityForResult() 方法來啟動另一個 ActivityB,那麼系統將直接返回 Activity.RESUL_CANCELED 而不會再去等待返回。這是由於系統在 Framework 層做了對這兩種啟動模式的限制,因為 Android 開發者認為,不同 Task 之間,預設是不能傳遞資料的,如果一定要傳遞,那就只能通過 Intent 來繫結資料。

  • Android 安全機制五道防線:程式碼混淆 proguard + 許可權控制 + 數字證書 + Linux 核心層安全機制 + 虛擬機器沙箱隔離

  • Android 中的記憶體組成:暫存器 + 棧 + 堆 + 靜態儲存區域 + 常量池

  • 一旦使用完 Bitmap 後,一定要及時使用 bitmap.recycle() 方法釋放記憶體資源。Android 3.0 之後,Bitmap 被放置到了堆中,其記憶體由 GC 管理,就不需要進行釋放了。

  • 程序名以 “:” 開頭的程序屬於當前應用的私有程序,其它應用的元件不可以和它跑在同一個程序中,而程序名不以 “:” 開頭的程序屬於全域性程序,其它應用通過 ShareUID 方式可以和它跑在同一個程序中。

個人微訊號:qqwanghuan 技術交流

image