原创 Activity啓動基本流程分析

1.概述 基於Android9.0(SDK 28)源碼。 關鍵類: ActivityThred ApplicationThread ActivityManagerService ProcessRecord 進程信息 Activit

原创 java的異常處理機制要點總結

   一,異常類的繼承層次結構  所有的異常都是由Throwable繼承而來,在下一層立即被分解被兩個分支:Error和Exception  Error類層次結構描述了Java運行時系統的內部錯誤和資源耗盡錯誤,應用程序不能

原创 Java多線程工作原型的理解(一)

Java多線程:內存模型 1.引言     在Java中,因爲有jdk的封裝,線程使用起來很方便,可以不用關注很多實現上的細節問題。但是由於存在共享變量(方法區,堆區),在實際的開發中需要規避多線程數據不一致問題。  要規避多線程

原创 java內存分配和區域劃分

一.C/C++和Java的內存管理方式差異比較 說明:內存管理即內存的分配和釋放 C/C++的編譯運行環境: Java的編譯運行環境: 三.兩種內存分配方式的優缺點比較? Java的內存管理機制—-java內存模型  Jav

原创 從源碼角度學習EventBus

引言: 最近看了EventBus的源碼,看完後分享下自己的理解 寫法約定: 文件的eventTypeClass 對應事件的Class對象,ObjectClass對應Object類的Class對象 EventBus簡介:以觀察者模

原创 Android的BaseActivity的

寫過一些小Android應用的開發者在創建框架時,爲了提高代碼複用率而設計一些基類和接口,同時也在一定程度上降低耦合度。那麼在設計BaseActivity的時就需要其足夠的抽象(通用),以便減少後面的重複代碼。  其中一個常用的就

原创 Android事件分發機制實例分析

最近在做東西的時候發現自己對事件的分發(傳遞)機制理解的並不清楚,可以說是錯誤的理解了事件分發機制。對此,自己找了一些實例的例子,來加深對Android的時間分發機制的理解。廢話不多說,直入主題。  下圖是這個案例的實現界面:  

原创 從源碼角度學習ThreadLocal原理

1.ThreadLocal基本介紹 相信使用java語言做開發的同學,肯定多或多或少了解過ThreadLocal,簡單來說就是一個“以當前Thread對象作爲key的key-value存儲結構,能實現多線程的讀寫安全”。那麼他究竟