Android外掛化框架--360RePlugin基本使用
360RePlugin是360公司推出的外掛化框架
一、先看效果圖:
二、程式碼實現:
1.主程式開發:專案的Gradle的dependencies中新增:
classpath 'com.qihoo360.replugin:replugin-host-gradle:2.2.4'
2.app模組下的build.gradle中的dependencies中新增:
implementation 'com.qihoo360.replugin:replugin-host-lib:2.2.4'
3.app模組下的build.gradle中的android{}之後新增:
apply plugin: 'replugin-host-gradle' repluginHostConfig { useAppCompat = true }
useAppCompat = true表示應用需要支援AppCompat
4.自己的Application類中新增:
@Override
protected void attachBaseContext(Context base) {
super.attachBaseContext(base);
RePlugin.App.attachBaseContext(this);
}
@Override
public void onCreate() {
super.onCreate();
RePlugin.App.onCreate();
}
如果app模組下的build.gradle中的minSdkVersion <= 14還需要新增以下幾行,minSdkVersion > 14的就不用添加了:
@Override public void onLowMemory() { super.onLowMemory(); RePlugin.App.onLowMemory(); } @Override public void onTrimMemory(int level) { super.onTrimMemory(level); RePlugin.App.onTrimMemory(level); } @Override public void onConfigurationChanged(Configuration config) { super.onConfigurationChanged(config); RePlugin.App.onConfigurationChanged(config); }
如果是新建的MyApplication,不要忘了在Manifest中配置Application
<application
android:name=".MyApplication"
...>
5.外掛開發:新建一個專案,5.1步、5.2步和前面的1、2步類似,只是host換成了plugin:
5.1.專案的Gradle的dependencies中新增:
classpath 'com.qihoo360.replugin:replugin-plugin-gradle:2.2.4'
5.2.app模組下的build.gradle中的dependencies中新增:
implementation 'com.qihoo360.replugin:replugin-plugin-lib:2.2.4'
5.3第3步.app模組下的build.gradle中的android{}之後新增:
apply plugin: 'replugin-plugin-gradle'
這樣就可以像開發普通app一樣開發外掛了。
6.主程式和外掛互相呼叫Activity
6.1主程式呼叫外掛中的Activity:
Intent intent = RePlugin.createIntent("host", "com.sample.testhost.MainActivity");
RePlugin.startActivity(MainActivity.this,intent);
finish();
RePlugin.createIntent(String pluginName , String cls)中的第一個引數是外掛名字,第二個引數是外掛的Activity,這個Activity需要帶上外掛的完整包名
6.2外掛呼叫主程式中的Activity:
Intent intent = new Intent();
intent.setComponent(new ComponentName("com.sample.test360replugin", "com.sample.test360replugin.MainActivity"));
startActivity(intent);
finish();
ComponentName(String pkg , String cls)中的第一個引數是主程式的包名,第二個引數是主程式的Activity,這個Activity需要帶上主程式的完整包名
7.將外掛程式生成jar並加入主程式:
在Android Studio中點選build -> Build APK(s),將外掛程式打包出來
將生成的app-debug.apk重新命名為host.jar,這個host就是外掛名字,6.1中用的就是這個名字,可以自己命名,只要保證使用的時候與之對應即可。將此jar放在主程式的assets/plugins資料夾中
大功告成,原始碼已上傳: