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公司可以算是比較牛逼的。

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


更多內容:點擊這里

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



轉載于:https://www.cnblogs.com/roccheung/p/5797274.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/397588.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/397588.shtml
英文地址,請注明出處:http://en.pswp.cn/news/397588.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

java反射機制 路徑_Java 反射機制詳解

引言本文主要介紹Java中,有關反射機制、類的加載過程、以及控制反轉方面的內容。Java 反射機制Java創建對象的方式有哪些:new、反射、反序列化、克隆class對象獲取的方法有哪些:類名.class、getClass、forName、classLoader.loadClass(‘包類…

prop和attr在 jquery的

https://www.cnblogs.com/Showshare/p/different-between-attr-and-prop.html轉載于:https://www.cnblogs.com/beimingbingpo/p/9254680.html

java傳入數據庫生成柱狀圖_Java讀取數據庫數據生成柱狀圖

此案例是用swing顯示數據的。須要引入jfreechart相關包。不同版本號可能包不同樣。本人用的是此案例在ssi框架下會報錯,不用框架就沒問題。Java后臺邏輯代碼:public class BarChart {ChartPanel frame1;public BarChart() {CategoryDataset dataset get…

SVN系列操作(一)

SVN是什么? SVN是Subversion的簡稱,是一個開放源代碼的版本控制系統,常用于軟件開發項目中,實現代碼、文檔等的歷史版本保存、共享和權限管理。 進入SVN本地目錄,第一步操作就是update。 為什么呢?因為SVN是…

ubuntu-14.04.2-desktop使用方法

一、安裝VMware Tools 1. 在VMware Workstation11.1.0下安裝Ubuntu鏡像:ubuntukylin-14.04.2-desktop-amd64.iso 2. 點擊虛擬機菜單欄-安裝VMware Tools。 3. 在Ubuntu系統光盤中找到VMwareTools-9.9.2-2496486.tar.gz,右鍵復制到“桌面”,然…

ubuntu 跟xshell的問題

有2個分析: 1:是windos的防火墻沒有關閉 2:是虛擬機沒有安裝sshd服務器 ubuntu在CLI界面下輸入:dpkg -l |grep ssh 因為是我安裝過的sshd server 要是沒有sshd server 就要輸入 安裝。 三:要是安裝完之后 鏈接顯示說…

java gdal postgresql_使用GDAL/OGR操作Postgresql數據庫

GDAL(Geospatial Data AbstractionLibrary)是一個在X/MIT許可協議下的開源柵格空間數據轉換庫。它利用抽象數據模型來表達所支持的各種文件格式。它還有一系列命令行工具來進行數據轉換和處理。本文將使用GDAL/OGR庫讀寫Postgresql數據庫中的表&#x…

Go語言基礎之1--標識符、關鍵字、變量和常量、數據類型、Go的基本程序結構、Golang的特性...

一、前言 當我們項目較為簡單時,我們在src目錄下新建一個該項目目錄,里面存放源碼文件即可,見下圖: 當我們一個項目較為復雜時,我們可以在src目錄下新建一個該項目目錄,在針對該項目不同模塊創建不同目錄&a…

java參數轉換匹配規律_隱式轉換規則

隱式轉換在如下三種不同的情況會被考慮:1、當對象A調用某個方法時,這個方法不存在例如在前一節介紹的1 to 10。會將Int轉換為RichInt,然后再調用to方法。在這種情況下,會將對象A(方法的調用者)隱式轉換為另一個對象。2、當對象A調…

Semantic-UI的React實現(二):CSS類構造模塊

更簡單的類名標簽 Semantic-UI使用了更簡單的類名聲明。用過Bootstrap的同學都會被其復雜的類名標簽折磨過&#xff0c;例如一個簡單的按鍵樣式&#xff0c;不論顏色或是大小&#xff0c;都需要btn-前綴聲明&#xff1a; <button type"button" class"btn btn…

T-SQL LIKE子句 模糊查詢

MS SQL Server LIKE子句用于使用通配符運算符將值與類似值進行比較。 有兩個通配符與LIKE運算符結合使用: 百分號&#xff08;&#xff05;&#xff09;下劃線&#xff08;_&#xff09;百分號表示零個&#xff0c;一個或多個字符。 下劃線表示單個數字或字符。 符號可以組合使…

ext springmvc mysql_基于ExtJs6前臺,SpringMVC-Spring-Mybatis,resteasy,mysql無限極表設計,實現樹狀展示數據(treepanel)...

先從后臺講起1.表的設計2.mysql查詢很容易&#xff0c;關鍵是要把id,text,parentId查出來/p>"http://mybatis.org/dtd/mybatis-3-mapper.dtd">SELECTbp.id,bb.name brandName,bp.name text,bp.photo_url photoUrl,bp.number,bp.add_time addTime,bp.modify_tim…

C# 之 Int16 Int32 Int64 的區別

Int16 值類型表示值介于 -32768 到 32767 之間的有符號整數。 Int32 值類型表示值介于 -2,147,483,648 到 2,147,483,647 之間的有符號整數。 Int64 值類型表示值介于 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 之間的整數。 --------------------------------…

php說明代碼怎么寫,代碼怎么寫 - 起步 - PHP基礎 - KK的小故事

起步 - 代碼怎么寫 作者&#xff1a;KK發表日期&#xff1a;2016.3.9要寫PHP代碼就需要建立.php后綴的文件,并且在文件里要以<?php 具體代碼 ?>這樣的形式來書寫PHP代碼我們在網站目錄下新建一個叫index.php的文件,并在里面編寫這樣的代碼:echo Hello World!;?>然后…

python中的計算符號

1、算數計算符號&#xff1a; - * /   //&#xff08;取整&#xff09;  %&#xff08;取余&#xff09;  **&#xff08;次方&#xff09; 1 >>> 682 143 >>> 9-34 65 >>> 3*46 127 >>> 16/28 8.09 >>> 9/2 10 4.5 11 >…

MySQL 索引優化全攻略

2019獨角獸企業重金招聘Python工程師標準>>> 所謂索引就是為特定的mysql字段進行一些特定的算法排序,比如二叉樹的算法和哈希算法,哈希算法是通過建立特征值,然后根據特征值來快速查找。而用的最多,并且是mysql默認的就是二叉樹算法 BTREE,通過BTREE算法建立索引的字…

織夢DedeCMS實現 三級欄目_二級欄目_一級欄目_網站名稱 的效果代碼

1.將官方原來的排列方式反過來&#xff0c;找到include/typelink.class.php第164行 $this->valuePositionName $tinfos[typename].$this->SplitSymbol.$this->valuePositionName; 修改為&#xff1a; $this->valuePositionName $this->valuePositionName.$…

MyEclipse 14 設置文件特定的打開方式

2019獨角獸企業重金招聘Python工程師標準>>> 打開windows -> preferences&#xff1b; 轉載于:https://my.oschina.net/AaronDMC/blog/755481

安裝安全狗后php5.5無法訪問,關于安全狗的詳細介紹

這篇文章主要介紹了win2008 R2安裝網站安全狗提示HTTP 錯誤 500.21的解決方法,需要的朋友可以參考下WINDOWS 2008 R2系統IIS7.5&#xff0c;在沒安裝網站安全狗前一切正常&#xff0c;安裝網站安全狗3.3版后&#xff0c;有部分php網站無法訪問。提示如下錯誤&#xff1a;HTTP 錯…

Android 里的數據儲存

數據持久化關于數據儲存,這個話題已經被反復討論過很多次了,我是不建議把網絡存儲這種方式納入到數據儲存的范圍的,因為這個和Android沒多少關系,因此就有如下的分類: 本地儲存(也稱之為數據持久化,包含文件儲存,SharedPreferences,SQLite儲存和ContentProvider(內容提供者)) 內…