因为项目需要使用到了DroidPlugin,就简单记一下使用和遇到的问题。
一、DroidPlugin使用
Github网址:https://github.com/DroidPluginTeam/DroidPlugin
首先从GitHub上下载Droidplugin的工程。工程主要包括两部分:第一部分是DroidPlugin的类库,第二部分是框架的测试代码部分,测试部分又有两个主Activity,可以在AndroidManifest.xml文件中切换。
官方文档的使用方法:
1、 将DroidPlugin作为第三方库导入工程。
2、 AndroidManifest.xml
中使用插件的com.morgoo.droidplugin.PluginApplication
:
<applicationandroid:name="com.morgoo.droidplugin.PluginApplication"
android:label="@string/app_name"
android:icon="@drawable/ic_launcher"
3、 如果你使用自定义的Application
,那么你需要在自定义的Application class onCreate
和attachBaseContext
方法中添加如下代码:
@Override
public void onCreate() {
super.onCreate();
//
这里必须在
super.onCreate
方法之后,顺序不能变
PluginHelper.getInstance().applicationOnCreate(getBaseContext());
}
@Override
protected void attachBaseContext(Context base) {
PluginHelper.getInstance().applicationAttachBaseContext(base);
super.attachBaseContext(base);
}
4、 修改 Libraries\DroidPlugin\build.gradle
的 defaultConfig 配置中 authorityName
的值(建议改为自己的包名+标识,防止跟其它本插件使用者冲突)
然后调用DroidPlugin提供的安装函数就可以了。
二、遇到的问题和解决办法
1、 将DroidPlugin作为三方库导入的时候,由于三方库使用的SDK版本和Project相同,因此需要在Project的build.gradle文件中设置SDK版本。或者直接在DroidPlugin的build.gradle中设置。而我使用的方法是将自己的项目作为模块直接新建在Droid Plugin的工程中。
2、 使用自定义的Application加载第三方apk时,一直卡在正在加载中这个界面。然后使用他提供的PluginApplication时又加载成功。后面才发现是因为没有认真读官方文档,把那两个添加到了MainActivity中去了。后面添加到自己定义的Applicantion中就可以了。
3、 除了使用官方提供的那两种方法,也可以用自己自定义的Application去继承PluginApplication,这样也能实现目的。