Android中外掛程式開發篇總結和概述,android外掛程式
剛剛終於寫完了外掛程式開發的最後一篇文章,下面就來總結一下,關於Android中外掛程式篇從去年的11月份就開始規划了,主要從三個方面去解讀Android中外掛程式開發原理。說白了,外掛程式開發的原理就是:動態載入技術。但是我們在開發外掛程式的過程中可能會遇到很多問題,所以這裡就分為三篇文章進行解讀的,而且也是循序漸進,解決了外掛程式開發過程中可能會遇到的問題,不過這三篇的基礎還是動態載入技術。
第一、外掛程式開發基礎篇:動態載入技術解讀
http://blog.csdn.net/jiangwei0910410003/article/details/17679823
這篇文章主要介紹了Android中的DexClassLoader類的功能,以及我們如何使用動態載入技術,為何要使用動態載入技術等問題的解釋,最開始的時候,我們就是使用這個類進行功能模組的剝離,讓一些模組放到指定的jar/dex/apk中,然後去動態載入,這樣做的好處是,減小包的大小,功能會更加靈活。
技術點:DexClassLoader的源碼解讀,使用
第二、外掛程式開發開篇:類載入器分析
http://blog.csdn.net/jiangwei0910410003/article/details/41384667
這篇文章主要介紹了Android中主要的兩個類載入器:PathClassLoader和DexClassLoader,他們的區別,聯絡,用法等問題,以及我們在製作外掛程式的過程中會遇到哪些常見的問題。這篇文章也是後續兩篇文章的基礎,因為如果不瞭解這兩個類的話,我們將無法進行後續的操作。
技術點:PathClassLoader類和DexClassLoader類的源碼解讀,他們之間的卻別和聯絡
第三、外掛程式開發中篇:資源載入問題(換膚原理解析)
http://blog.csdn.net/jiangwei0910410003/article/details/47679843
這篇文章主要通過現在一些應用內建的換膚技術的解讀來看看,在開發外掛程式的過程中如何解決一些資源載入上的問題,這個問題為何要單獨拿出來解釋,就是因為他涉及的知識很多,也是後面一篇文章的基礎,我們在需要載入外掛程式中的資源檔的時候。改如何處理。這裡都做了詳細的解釋。同時有了這個技術之後,我們就可以實現應用的換膚開發了。
技術點:動態載入資源,AssetManager類的源碼解讀
第四、外掛程式開發終極篇:動態載入Activity(免安裝運行程式)
http://blog.csdn.net/jiangwei0910410003/article/details/48104455
這篇文章主要是講解了如何載入外掛程式中的Activity。從而實現免安裝運行程式,同時這篇文章也是對前三篇文章知識的綜合使用。下載很多應用都會使用到外掛程式技術,因為包的大小和一些功能的優先順序來決定哪些模組可以製作成外掛程式。這篇文章還介紹了兩種方式去動態載入Activity.這兩種方式各有各的好處和壞處。
技術點:兩種方式載入Activity,LoadedApk類和ActivityThread類的源碼解讀
總結
本身Android中的動態載入技術就很吃香,我剛剛接觸到這個技術的時候,正好是我大學畢業那年2013年。當時我們需要做彙總廣告SDK,所以需要對各家廣告做處理,使用動態載入的技術來載入各家廣告的SDK。第一次接觸到動態載入的時候,還是很興奮的,因為感覺。代碼還可以這麼寫。功能的剝離那麼好。所以很是癡迷這個技術。後來只是因為個人興趣,就開始深入研究一下外掛程式開發的技術,當然本質還是動態載入,只是需要解決一個特定的問題。現在也有很多大牛寫了一些架構,個人感覺最好的還是這個哥們寫的架構:
https://github.com/Qihoo360/DroidPlugin
哈哈,看名字就知道是360的,哎,不得不佩服國內技術研究啥的360公司可以算是比較牛逼的。
當然我相信,隨著時間的推移,肯定還會有更多的牛人研究這個技術,開發出更加完善的架構,我就很期待呀。
著作權聲明:本文為博主原創文章,未經博主允許不得轉載。