原创 6.內部類(Thinking in java學習六)

內部類是一種非常有用的特性,它允許你把一些邏輯相關的類組織在一起,並控制位於內部的類的可視性。 內部類定義:將一個類的定義放在另一個類的定義內部。 創建內部類 想從外部類的非靜態方法之外的任意位置創建某個內部類對象,則具體指明這個對象的類

原创 11.併發(Thinking in java學習11)

多線程編程 從根本上來看,所謂的多線程編程,不過是JVM或者說當前的計算機體系結構無法處理好多線程下資源競爭的情況而人爲加上的一些處理方法。 多線程編程是爲了更好的使用CPU的性能,人爲設計出來的補償機制。 併發三個特性: 原子性:原子性

原创 RecycleView緩存

RecycleView內存泄漏 RecycleView緩存、回收機制 RecyclerView是以ViewHolder作爲單位進行回收。Recycler是RecyclerView回收機制的實現類,他實現了四級緩存: mAttachedSc

原创 性能優化-存儲優化

存儲優化 存儲方式 Android系統提供4中基本的數據存儲方式,分別是SharedPreference、文件存儲、SQLite數據庫、ContentProvider。 SharedPreference SharedPreference是

原创 9.泛型(Thinking in java 學習九)

多態算是一種泛化機制,但是拘泥於單繼承體系,也會使程序受限太多。JavaSE5中提出了泛型的概念。 泛型概念:泛型實現了參數化類型的概念,使代碼可以應用於多種類型。 簡單泛型(泛型類) 爲了創造容器類,是促成了泛型出現的主要原因。泛型的主

原创 Android的Handler消息機制

Handler消息機制 Android消息循環流程圖 image.png 每個 Handler 都會跟一個線程綁定,並與該線程的 MessageQueue 關聯在一起,從而實現消息的管理以及線程間通信。 主要涉及的角色如下所示

原创 4.多態(Thinking in java學習四)

多態 通過分離做什麼和怎麼做,從另一角度將接口和實現分離開來。多態不但能夠改善代碼的組織結構和可讀性,還能夠創建可擴展的程序。 ==多態存在的三個必要條件==: 要有繼承 要有重寫 父類引用指向子類對象 轉機 方法調用綁定 綁定:將一個方

原创 性能優化-耗電優化

耗電優化 耗電檢測工具 Battery Historian是一款Google提供的Android系統電量分析工具,能直觀顯示手機的電量消耗過程。 Battery Historian使用步驟 初始化Battery Historian,使用a

原创 性能優化-穩定性優化

穩定性優化 穩定性中兩個常見場景:Crash和ANR 提高代碼質量 代碼審查 何時審查 分兩個方面:一是這個模塊是否需要審查,明確代碼審查的必要性,二是在開發階段的哪個時間點代碼審查,確定審查合理時間點。 一般審查:底層公共模塊、重大特

原创 2.訪問控制權限(Thinnking in java學習二)

包:庫單元 包內包含有一組類,它們在單一的名字空間之下被組織在了一起。 注意:當編寫一個Java源代碼時,此文件通常被稱爲編譯單元。每個編譯單元都必須有個後綴名.java,而在編譯單元內有個一public類,該類的名稱必須與文件的名稱相同

原创 8.類型信息和反射(Thinking in java學習八)

運行時類型信息 運行時類信息使得你可以在程序運行時發現和使用類信息。 在運行時識別對象和類的信息的方式: 傳統的RTTI:它假定我們在編譯時已經知道了所有的類型; 反射機制,它允許我們在運行時發現和使用類的信息。 爲什麼需要RTTI 使用

原创 View的工作原理和自定義

初識ViewRoot和DecorView ViewRoot對應於ViewRootImpl類,,它是連接WindowManager和DecorView的紐帶,view的三大流程均是通過ViewRoot來完成的。在ActivityThrea

原创 7.異常處理(Thinking in java學習七)

編譯器並不能找出所有的錯誤,那麼剩下的問題必須在運行期解決了。Java使用異常來提供一致的錯誤報告模型,使得構件 能夠與客戶端代碼可靠地溝通問題。 概念 使用異常的好處: 往往能夠降低處理代碼的複雜度; 異常機制使代碼的閱讀、編寫和調試工

原创 1.初始化與清理(Thinking in java學習一)

1. 用構造器來確保初始化 創建對象時,如果該類具有可用的構造器,java就會在用戶有能力操作對象之前自動調用相應的構造器,從而保證了初始化的進行。 Java中“初始化”與“創建”捆綁在一起的兩者不能分離。 問題1:構造器是一類特殊的方法

原创 Android線程相關

==進程和線程== 進程:進程是資源分配的基本單位。進程控制塊 (Process Control Block, PCB) 描述進程的基本信息和運行狀態,所謂的創建進程和撤銷進程,都是指對 PCB 的操作。 線程:線程是獨立調度的基本單位。