版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/z2464342708m/article/details/77585268
前段时间有相当一部分博友反馈,按照上一篇关于RePlugin插件化集成的方式并不能成功集成插件化,当时没有怎么留意,后来经王玉鹏Roc提醒,才知道插件升级了,集成的方式有些变化。前段时间一直很忙,才没有及时更新博客,今日正好补上最新的RePlugin集成方案。
与RePlugin 2.1.X版本集成的集成方式有几点不同:
1、之前的集成需要在AndroidManifest.xml文件中配置插件相关信息:
RePlugin 2.1.X的配置方式:
<meta-data
android:name="com.qihoo360.plugin.name"
android:value="androidhelper" />
<meta-data
android:name="com.qihoo360.plugin.version.ver"
android:value="100" />
RePlugin升级之后,这一步不需要配置;
2、在安装、检测、启动插件的时候传入的阐述发送了改变:
RePlugin 2.1.X版本的检查方式:
//检测插件是否安装
PluginInfo info = MP.getPlugin("androidhelper", true);
//未安装插件
if (null == info) {
//检测插件是否下载
File file = new File("/sdcard/dht", "androidhelper.apk");
if (!file.exists()) {
//下载插件
Toast.makeText(MainActivity.this, "插件不存在", Toast.LENGTH_SHORT).show();
} else {
//安装插件
PluginInfo in = RePlugin.install("/sdcard/dht/androidhelper.apk");
if (null == in) {
Toast.makeText(MainActivity.this, "安装插件失败", Toast.LENGTH_SHORT).show();
}
}
return;
}
//启动插件
RePlugin.startActivity(MainActivity.this, RePlugin.createIntent("androidhelper", "com.morse.replugin.MainActivity"));
RePlugin 2.2.X的检测方式:
public static void startPlugin(Context context) {
//检测插件是否安装
//检测是否安装插件时,传入的是包名
PluginInfo info = MP.getPlugin("com.morse.plugin", true);
//未安装插件
if (null == info) {
//检测插件是否下载
File file = new File("/sdcard", "plugin.apk");
if (!file.exists()) {
//下载插件
Toast.makeText(context, "插件不存在", Toast.LENGTH_SHORT).show();
} else {
//安装插件
PluginInfo in = install("/sdcard/plugin.apk");
if (null == in) {
Toast.makeText(context, "安装插件失败", Toast.LENGTH_SHORT).show();
}
}
return;
} else {
RePlugin.preload(info);
}
//启动插件
RePlugin.startActivity(context, RePlugin.createIntent("com.morse.plugin", "com.morse.plugin.MainActivity"));
}
主要的区别在于:MP.getPlugin(“com.morse.plugin”, true)方法的使用,前者传入的是插件的名字,后者传入的时候插件的包名;RePlugin.createIntent(“com.morse.plugin”, “com.morse.plugin.MainActivity”)启动是传入的参数不一样:前者的第一个参数是插件名,后者的第一个参数是插件包名。
RePlugin2.1.X版本与2.2.X版本集成时的区别就这么多,如果博友们还是不能成功集成,欢迎私信我,希望本文对各位博友能够带来点帮助。