先直接來干貨,等不及得直接去下載工程跑一下
為什么是用插件化或者組件化我就不逼逼了唾琼,你既然選擇了去查這個東西就已經(jīng)明白了
這幾個版本很重要兄春!
AndroidStudio 3.1.3
classpath 'com.android.tools.build:gradle:3.0.0' 對于0.9.8.4這個版本的VirtualApk來說 只能用3.0.0的
classpath 'com.didi.virtualapk:gradle:0.9.8.4'
implementation 'com.didi.virtualapk:core:0.9.6'
首先咱們新建一個工程
然后新建一個Application 重寫 attachBaseContext
@Override
protected void attachBaseContext(Context base) {
super.attachBaseContext(base);
PluginManager.getInstance(base).init();
}
別管為啥,Ctrl A C V 還不會么锡溯!
然后在你的主工程的MainActivity或者其他的適合的地方去加載你這個插件
private void loadPlugin(Context base) {
PluginManager pluginManager = PluginManager.getInstance(base);
File apk = new File(Environment.getExternalStorageDirectory(), "plugin.apk");
if (apk.exists()) {
try {
pluginManager.loadPlugin(apk);
} catch (Exception e) {
e.printStackTrace();
}
} else {
Toast.makeText(getApplicationContext(),
"SDcard根目錄未檢測到plugin.apk插件", Toast.LENGTH_SHORT).show();
}
}
然后來一手點擊事件去跳轉(zhuǎn)到你的插件工程
findViewById(R.id.btn_intent).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View mView) {
Intent intent = new Intent();
intent.setClassName("com.xiamuyao.sharemyapplication", "com.xiamuyao.sharemyapplication.Share_MainActivity");
startActivity(intent);
}
});
第一個參數(shù)是你插件工程的報名赶舆,第二個是他的引用地址(點一下class 然后 Ctrl+Alt+Shirt + C)
如果有心那就自己寫個讀取權(quán)限的申請肴裙!
插件工程就很簡單了。涌乳。
apply plugin: 'com.didi.virtualapk.plugin'
virtualApk {
packageId = 0x6f
targetHost = '../app'
applyHostMapping = true
}
完事 然后通過
去打包你的插件apk 放在手機(jī)的任意目錄下 但是你要能找得到 我就放在根目錄了蜻懦,至此集成結(jié)束! 工程我在最上面放了地址夕晓!