原创 【Android】Android 線程&進程模型

文章目錄1、Java線程1)線程與進程2)併發與並行3)線程同步4)線程狀態5)Thread2、runOnUiThread3、AsyncTask4、Handler5、進程6、Binder 1、Java線程 在介紹Android的線程、

原创 【Android】Android Dalvik&JVM

文章目錄1、JVM1)特點2)字節碼3)Java代碼運行流程4)類加載器分類5)類加載器特點6)類加載步驟7)運行時數據區8)執行引擎9)GC原理10)引用類型11)JVM結構2、Dalvik3、ART 1、JVM JVM,Java虛

原创 【Android】Android JNI

文章目錄1、簡介1)java調用native接口2)native調用java接口2、jni.h1)基本類型2)C++中的非基本類型3)C中的非基本類型4)變量field與函數method5)函數簽名6)引用類型7)一個很重要的函數結構

原创 【Android】圖文解密Android AIDL

文章目錄1、簡介2、用法1)創建.aidl文件。2)實現接口3)公開接口4)實現客戶端5)支持自定義類型6)服務端通知客戶端3、aidl自動生成的java代碼4、aidl流程 1、簡介 AIDL是一種接口描述語言,用於進程間通信,有如

原创 【Android】圖文解密Android WallpaperManagerService

文章目錄1、簡介2、壁紙相關類3、壁紙相關文件4、默認壁紙5、壁紙設置6、動態壁紙7、壁紙設置流程 1、簡介 WallpaperManagerService,下面簡稱WPMS,是Android中與壁紙相關的一個服務,下圖是WPMS的啓

原创 【Android】圖文解密Android Font

文章目錄1、TextView1.1 Font Family1.2 Text Style1.3 Typeface1.4 屬性解析過程1.5 Typeface1.6 Font Matrix1.7 style&theme2、Font配置3、

原创 【Android】圖文解密Android Resource&Asset

文章目錄1、簡介2、apk打包流程3、aapt4、jack5、資源加載流程6、AssetManager 1、簡介 Android支持各種各樣的資源,如何使用這些資源,官方開發者指南已給出了詳細的用法說明,可參考https://deve

原创 【Android】圖文解密Android OverlayManagerService

文章目錄1、簡介2、用法舉例3、相關代碼4、啓動流程5、使用一個overlay 1、簡介 Android OverlayManagerService(OMS)是一個有意思的模塊,可以在運行時動態替換res,如圖片。簡單來說就是一個普通

原创 【Android】圖文解密Android PackageManagerService

文章目錄1、簡介2、啓動3、apk打包4、apk安裝5、app啓動 1、簡介 PackageManagerService(PMS)的主要職責是apk管理,下圖列出了PMS大家族相關的成員有哪些。 2、啓動 PMS在SystemSer

原创 【Android】圖文解密Android InputManagerService

文章目錄1、簡介2、結構-Native3、結構Java4、啓動5、事件派發 1、簡介 下面是Android事件派發的一個簡圖,從Hardware開始,收到事件後,Linux Kernel將其記錄到相關的/dev/input/event

原创 【Android】圖文解密Android ActivityManagerService

文章目錄1、簡介2、啓動3、Lifecycle4、Task&Stack5、Recents6、多窗口7、Widget8、快捷方式9、鏈接10、startActivity 1、簡介 ActivityManagerService(AMS)是

原创 【Android】圖文解密Android WindowManagerService

文章目錄1、簡介2、啓動3、addView4、Layer5、WindowState6、WindowToken7、Session8、Surface 1、簡介 WindowManagerService(WMS)是Android中很重要的一

原创 【Android】圖文解密Android View

文章目錄1、簡介2、View與ViewGroup3、UiThread4、屬性5、focus6、Listener7、Visibility8、Geometry9、Measure、Layout、Draw10、Event11、Scroll12

原创 【Android】java動態庫、靜態庫的編譯與使用

在Android的makefile編譯系統中,編譯結果是多種多樣的,這個可以從build/make/core/config.mk中看出,部分代碼如下所示: BUILD_HOST_STATIC_LIBRARY:= $(BUILD_SYS