如何接入 virtualapk 插件框架

話不多說驱负,先上我的 Demo 地址:https://github.com/yangxiaoge/VirtualAPKDemo

本文轉(zhuǎn)載:原文鏈接https://blog.csdn.net/lovelixue/article/details/81141213

文中圖片無法顯示,可以直接看原文

最近都在搞插件框架采缚,為項目搭建用,之前集成了下阿里的 atlas尘执,現(xiàn)在送上一篇滴滴的 virtualapk醒陆,就個人而言饶碘,滴滴的集成過程比阿里簡單些笨腥,有興趣的可以看看我 atlas 的:https://blog.csdn.net/lovelixue/article/details/81141213

   廢話不多說拓哺,上過程

1. 環(huán)境配置,很重要脖母,官方有規(guī)定 gradle 使用哪個之類的士鸥,我用的不同,我就基于我的來寫

1.1 新建一個工程谆级,根目錄的 build.gradle 里面

classpath 'com.android.tools.build:gradle:3.0.0'
classpath 'com.didi.virtualapk:gradle:0.9.8.4'

[圖片上傳失敗...(image-4eb668-1532574880188)]
根目錄 就配置這兩個

1.2 在 app(宿主)目錄下的 build.gradle 文件下添加

apply plugin: 'com.didi.virtualapk.host'
image.gif

在 dependencies 里面添加

implementation 'com.didi.virtualapk:core:0.9.6'
image.gif

1.3 重點來了烤礁,通過 file,new module 的形式新建一個 module肥照,然后我命名為 plugindemo鸽凶,然后在 nodule.gradle 里面添加

implementation 'com.didi.virtualapk:core:0.9.6'
image.gif

接著在末端添加

apply plugin: 'com.didi.virtualapk.plugin'
virtualApk {
    // 插件資源表中的packageId,需要確保不同插件有不同的packageId.
    packageId = 0x6f             // The package id of Resources.
    // 宿主工程application模塊的路徑建峭,插件的構(gòu)建需要依賴這個路徑
    targetHost='../app' // The path of application module in host project.
    //默認(rèn)為true,如果插件有引用宿主的類决摧,那么這個選項可以使得插件和宿主保持混淆一致
    applyHostMapping = true      // [Optional] Default value is true.
}
image.gif

截圖

[圖片上傳失敗...(image-1cb4d5-1532574761971)]

基本 環(huán)境就到此為止了亿蒸,接下來代碼部分

  1. 代碼添加并驗證

在 app 的 mainactivity 里面添加兩個按鈕,一個是跳轉(zhuǎn)到 module 去的掌桩,一個是加載插件的

public void loadPlugin() {
    PluginManager pluginManager = PluginManager.getInstance(this);
    //此處是當(dāng)查看插件apk是否存在,如果存在就去加載(比如修改線上的bug,把插件apk下載到sdcard的根目錄下取名為plugin-release.apk)
    File apk = new File(Environment.getExternalStorageDirectory(), "plugin-release.apk");
    if (apk.exists()) {
        try {
            pluginManager.loadPlugin(apk);
            Toast.makeText(this, "插件加載成功", Toast.LENGTH_SHORT).show();
        } catch (Exception e) {
            e.printStackTrace();
            Toast.makeText(this, "插件加載異常边锁!", Toast.LENGTH_SHORT).show();
        }
    }
}
image.gif

截圖

[圖片上傳失敗...(image-a55765-1532574645092)]

image.gif

?

這個時候跳轉(zhuǎn)是不行的,接下來就需要加載插件了 波岛,首先需要生成插件 apk

官方文檔是通過命令

gradle clean assemblePlugin來構(gòu)建插件

如果不想這樣茅坛,也可以通過直接 gradle 的來,具體如下

[圖片上傳失敗...(image-43cdaa-1532574645092)]

image.gif

?

這樣 就生成插件 apk 了则拷,同時官方文檔介紹了下這個贡蓖,就是只能生成 release 版本的,插件包位于 build 目錄下

[圖片上傳失敗...(image-93c746-1532574645092)]

image.gif

?

到這里 就可以結(jié)束驗證了煌茬,點擊加載插件斥铺,然后再點擊跳轉(zhuǎn),你會發(fā)現(xiàn)可以跳轉(zhuǎn)了坛善,如果如果有幫助可以幫我點個贊或者 githup 上面 star 一下晾蜘,謝謝,如果有問題眠屎,可以下面評論回復(fù)剔交,一起學(xué)習(xí)探討。下面貼上注意點

1. 集成環(huán)境一定要配置好

2. 生成的插件包和加載的時候名字一定要一樣

3. 注意 SD 卡的權(quán)限

貼上相關(guān)參考文檔和我的 githup 代碼

https://github.com/didi/VirtualAPK

https://github.com/didi/VirtualAPK/wiki/VirtualAPK-%E6%9E%84%E5%BB%BA%E5%99%A8-API-%E6%A6%82%E8%A7%88

githup:https://github.com/sdgSnow/VirtualAPK

希望對大家有幫助改衩。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末岖常,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子燎字,更是在濱河造成了極大的恐慌腥椒,老刑警劉巖阿宅,帶你破解...
    沈念sama閱讀 212,718評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異笼蛛,居然都是意外死亡洒放,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,683評論 3 385
  • 文/潘曉璐 我一進店門滨砍,熙熙樓的掌柜王于貴愁眉苦臉地迎上來往湿,“玉大人,你說我怎么就攤上這事惋戏×熳罚” “怎么了?”我有些...
    開封第一講書人閱讀 158,207評論 0 348
  • 文/不壞的土叔 我叫張陵响逢,是天一觀的道長绒窑。 經(jīng)常有香客問我,道長舔亭,這世上最難降的妖魔是什么些膨? 我笑而不...
    開封第一講書人閱讀 56,755評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮钦铺,結(jié)果婚禮上订雾,老公的妹妹穿的比我還像新娘。我一直安慰自己矛洞,他們只是感情好洼哎,可當(dāng)我...
    茶點故事閱讀 65,862評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著沼本,像睡著了一般噩峦。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上擅威,一...
    開封第一講書人閱讀 50,050評論 1 291
  • 那天壕探,我揣著相機與錄音,去河邊找鬼郊丛。 笑死李请,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的厉熟。 我是一名探鬼主播导盅,決...
    沈念sama閱讀 39,136評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼揍瑟!你這毒婦竟也來了白翻?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,882評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎滤馍,沒想到半個月后岛琼,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,330評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡巢株,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,651評論 2 327
  • 正文 我和宋清朗相戀三年槐瑞,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片阁苞。...
    茶點故事閱讀 38,789評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡困檩,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出那槽,到底是詐尸還是另有隱情悼沿,我是刑警寧澤,帶...
    沈念sama閱讀 34,477評論 4 333
  • 正文 年R本政府宣布骚灸,位于F島的核電站糟趾,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏甚牲。R本人自食惡果不足惜拉讯,卻給世界環(huán)境...
    茶點故事閱讀 40,135評論 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望鳖藕。 院中可真熱鬧,春花似錦只锭、人聲如沸著恩。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,864評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽喉誊。三九已至,卻和暖如春纵顾,著一層夾襖步出監(jiān)牢的瞬間伍茄,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,099評論 1 267
  • 我被黑心中介騙來泰國打工施逾, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留敷矫,地道東北人。 一個月前我還...
    沈念sama閱讀 46,598評論 2 362
  • 正文 我出身青樓汉额,卻偏偏與公主長得像曹仗,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子蠕搜,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,697評論 2 351

推薦閱讀更多精彩內(nèi)容