1. 程式人生 > >Android中外掛開發篇總結和概述

Android中外掛開發篇總結和概述

               

剛剛終於寫完了外掛開發的最後一篇文章,下面就來總結一下,關於Android中外掛篇從去年的11月份就開始規劃了,主要從三個方面去解讀Android中外掛開發原理。說白了,外掛開發的原理就是:動態載入技術。但是我們在開發外掛的過程中可能會遇到很多問題,所以這裡就分為三篇文章進行解讀的,而且也是循序漸進,解決了外掛開發過程中可能會遇到的問題,不過這三篇的基礎還是動態載入技術。

第一、外掛開發基礎篇:動態載入技術解讀

這篇文章主要介紹了Android中的DexClassLoader類的功能,以及我們如何使用動態載入技術,為何要使用動態載入技術等問題的解釋,最開始的時候,我們就是使用這個類進行功能模組的剝離,讓一些模組放到指定的jar/dex/apk中,然後去動態載入,這樣做的好處是,減小包的大小,功能會更加靈活。

技術點:DexClassLoader的原始碼解讀,使用

第二、外掛開發開篇:類載入器分析

這篇文章主要介紹了Android中主要的兩個類載入器:PathClassLoader和DexClassLoader,他們的區別,聯絡,用法等問題,以及我們在製作外掛的過程中會遇到哪些常見的問題。這篇文章也是後續兩篇文章的基礎,因為如果不瞭解這兩個類的話,我們將無法進行後續的操作。

技術點:PathClassLoader類和DexClassLoader類的原始碼解讀,他們之間的卻別和聯絡

第三、外掛開發中篇:資源載入問題(換膚原理解析)

這篇文章主要通過現在一些應用自帶的換膚技術的解讀來看看,在開發外掛的過程中如何解決一些資源載入上的問題,這個問題為何要單獨拿出來解釋,就是因為他涉及的知識很多,也是後面一篇文章的基礎,我們在需要載入外掛中的資原始檔的時候。改如何處理。這裡都做了詳細的解釋。同時有了這個技術之後,我們就可以實現應用的換膚開發了。

技術點:動態載入資源,AssetManager類的原始碼解讀

第四、外掛開發終極篇:動態載入Activity(免安裝執行程式)

這篇文章主要是講解了如何載入外掛中的Activity。從而實現免安裝執行程式,同時這篇文章也是對前三篇文章知識的綜合使用。下載很多應用都會使用到外掛技術,因為包的大小和一些功能的優先順序來決定哪些模組可以製作成外掛。這篇文章還介紹了兩種方式去動態載入Activity.這兩種方式各有各的好處和壞處。

技術點:兩種方式載入Activity,LoadedApk類和ActivityThread類的原始碼解讀

總結

本身Android中的動態載入技術就很吃香,我剛剛接觸到這個技術的時候,正好是我大學畢業那年2013年。當時我們需要做聚合廣告SDK,所以需要對各家廣告做處理,使用動態載入的技術來載入各家廣告的SDK。第一次接觸到動態載入的時候,還是很興奮的,因為感覺。程式碼還可以這麼寫。功能的剝離那麼好。所以很是痴迷這個技術。後來只是因為個人興趣,就開始深入研究一下外掛開發的技術,當然本質還是動態載入,只是需要解決一個特定的問題。現在也有很多大牛寫了一些框架,個人感覺最好的還是這個哥們寫的框架:

哈哈,看名字就知道是360的,哎,不得不佩服國內技術研究啥的360公司可以算是比較牛逼的。

當然我相信,隨著時間的推移,肯定還會有更多的牛人研究這個技術,開發出更加完善的框架,我就很期待呀。

《Android應用安全防護和逆向分析》

點選立即購買:京東  天貓

更多內容:點選這裡

關注微信公眾號,最新Android技術實時推送