原创 Android進階知識樹——應用安全基礎篇

1、Smile語法入門 Smali是Java虛擬機中的一種.dex格式文件彙編器,它採用一種寬鬆式的Jasmin/dedexer的語法,表達了.dex格式所有功能和信息,如果瞭解Smali語言基礎,在我們反編譯程序時就可以看出程序

原创 Android進階知識樹——必須會的組件化技術

1、概述 筆者從事智能傢俱行業的開發工作,也是從公司創業團隊工作到現在,對於公司的項目從1.0版本開始接手一直到現在,雖說項目不是很大但麻雀雖小五臟俱全,在項目和團隊的不斷擴大、暴露出的問題也不段增多,組件化勢在必行,本文就根據整

原创 深入PMS源碼(二)—— APK的安裝和卸載源碼分析

1、應用程序安裝基礎 單個APK程序安裝的過程 把原始的APk文件複製到程序相應的目錄文件下,對於第三方app複製到/data/app/目錄下 爲程序創建相應的數據目錄、提取dex文件、修改系統包管理信息 程序安裝過程

原创 深入PMS源碼(一)—— PMS的啓動過程和執行流程

1、PMS簡介 作爲Android開發者,或多或少的都接觸過Android的framework層架構,這也是開發者從使用Android到了解安卓的過程,framework層的核心功能有AMS、PMS、WMS等,這三個也是系統中最基

原创 深入AMS源碼(二)—— ActivityManagerService對Activity的調度管理

1、概述 在上一篇深入AMS源碼(一)——ActivityManagerService的基礎知識文章介紹了AMS的基礎信息,主要包括AMS中主要的數據結構、主要功能類和屬性以及AMS中對生命週期的調度方式,本篇主要從源碼的角度分析

原创 Android熱修復之路——ClassLoader詳解

1、ClassLoader簡介 在應用程序打包成APK時,程序中所創建的類、導入和引用的類都會被編譯打包成一個或多個的dex文件中,打包成的dex文件在使用中如何加載類?答案就在本篇主題ClassLoader中,ClassLoad

原创 Androdi熱修復之路 —— 理解Multidex 分包原理

在早起的Android開發過程中,隨着項目的增加開發者可能會遇到65535的問題,也就是程序中的方法達到上限,針對此問題官方給出的解決方案是Multidex,使用Multidex將程序中的代碼打包成多個dex文件,從而讓系統的避免

原创 Android框架源碼分析——EventBus

1、介紹篇 關於EventBus的介紹和使用,此處只做基本介紹,很多開發者都很熟悉其使用方法,也嚐到了EventBus在開發中的便捷之處,關於EventBus的使用和源碼筆者也是早有接處,本文主要是針對其源碼進行分析,帶你一起探索

原创 Android Jetpack架構組件之 LiveData(使用、源碼篇)

1、前言 最近簡單看了下google推出的框架Jetpack,感覺此框架的內容可以對平時的開發有很大的幫助,也可以解決很多開發中的問題,對代碼的邏輯和UI界面實現深層解耦,打造數據驅動型UI界面。 Android Architecture

原创 Android Jetpack架構組件之 Room(使用、源碼篇)

1、前言 最近簡單看了下google推出的框架Jetpack,感覺此框架的內容可以對平時的開發有很大的幫助,也可以解決很多開發中的問題,對代碼的邏輯和UI界面實現深層解耦,打造數據驅動型UI界面。 Android Architecture

原创 Android Jetpack架構組件之 Lifecycles(使用篇)

一、概述 最近簡單看了下google推出的框架Jetpack,感覺此框架的內容可以對平時的開發有很大的幫助,也可以解決很多開發中的問題,對代碼的邏輯和UI界面實現深層解耦,打造數據驅動型UI界面。 Android Architecture

原创 Android Jetpack架構組件之 ViewModel (源碼篇)

1、前言 最近簡單看了下google推出的框架Jetpack,感覺此框架的內容可以對平時的開發有很大的幫助,也可以解決很多開發中的問題,對代碼的邏輯和UI界面實現深層解耦,打造數據驅動型UI界面。 Android Architecture

原创 Android Jetpack架構組件之 Lifecycle(源碼篇)

一、前言 最近簡單看了下google推出的框架Jetpack,感覺此框架的內容可以對平時的開發有很大的幫助,也可以解決很多開發中的問題,對代碼的邏輯和UI界面實現深層解耦,打造數據驅動型UI界面。 Android Architecture

原创 Android進階知識樹——23種設計模式詳解

關於設計模式很對開發者都知道很重要,但陸陸續續學習過很多次,但學過的設計模式也基本忘了差不多,能記住的還是之前使用的幾個基本的,現在藉此機會將23 中設計模式完整的梳理學習下,Java設計模式分類: 創建型模式,共五種:工廠方

原创 Android進階知識樹——應用進程的啓動過程

程序的啓動是從進程啓動開始的,換句話說只有程序進程啓動後,程序纔會加載和執行,在AMS啓動程序時首先會判斷當前進程是否啓動,對未啓動的進程會發送請求,Zygote在收到請求後創建新的進程; 1、Zygote監聽客戶端請求 由And