概述
原文地址:https://www.jianshu.com/p/7dd23d39d11d
1. 360的DroidPlugin插件化架构使用步骤
详见360的github具体demo:
https://github.com/Qihoo360/DroidPlugin
1>:打开上边网址,下载源码;
2>:使用AS导入DroidPlugin的lib库,添加依赖;
3>:让BaseApplication继承 PluginApplication,如果自己还写了数据库、Mutidux等的话,就可以不继承,可以使用下边的方式去写;
@Override
public void onCreate() {
super.onCreate();
//must behind super.onCreate()
PluginHelper.getInstance().applicationOnCreate(getBaseContext());
}
@Override
protected void attachBaseContext(Context base) {
PluginHelper.getInstance().applicationAttachBaseContext(base);
super.attachBaseContext(base);
}
4>:安装从服务器下载下来的插件,比如摇一摇、漂流瓶、附近的人等等这些功能,它们都是一个单独的 apk,而我们为了演示,是直接打包一个 摇一摇功能的 apk,把该apk复制到 手机存储目录中,就表示已经从服务器下载了 插件:
// 一定要这样
PackageManager pm = getPackageManager();
// 有了apk路径是可以获取apk的包名
PackageInfo info = pm.getPackageArchiveInfo(apkPath, PackageManager.GET_ACTIVITIES);
String packageName = info.packageName;
Intent intent = pm.getLaunchIntentForPackage(packageName);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.putExtra("user_name","Novate");
startActivity(intent);
5>:安装
/**
* 点击安装apk
*/
public void install(View view){
// PluginManager.install(this , apkPath);
// 下边是调用 360的DroidPlugin的 installPackage()方法
try {
int result = com.morgoo.droidplugin.pm.PluginManager.getInstance().installPackage(apkPath, 0);
Log.e("TAG","result = "+result);
} catch (RemoteException e) {
e.printStackTrace();
}
}
6>:这个时候有可能安装不上,比如说你手机上边安装了 360的一些apk,比如360卫士、360杀毒、360手机助手,可能会起冲突,解决方式如下:
找到DroidPlugin的AndroidManifest.xml文件,Ctrl+F搜索authorities,全部修改为自己 启动、安装类中的包名,类似下边:
图片.png
这个时候就可以实现类似微信中 朋友圈列表中摇一摇、漂流瓶、附近的人等等这样的功能,如果有新功能增加,只需要服务器给我们一个url地址、插件名称等,我们直接使用360的 DroidPlugin直接下载并且安装插件就ok,如果不需要了,就直接调用卸载该 apk的方法即可实现,就不需要用户总是去更新app,如果一直让用户去下载更新的话,会造成用户体验不是特别好。
2. 使用DroidPlugin好处
1>:你的插件apk不需要做特殊的处理,不像自己写的那个摇一摇功能,还需要自己去处理摇一摇内部的一些功能
具体代码已上传至github:
https://github.com/shuai999/AndroidPluginDemo.git
最后
以上就是哭泣时光为你收集整理的【Android动态加载】Android 动态加载(六) - 360开源框架DroidPlugin的使用介绍1. 360的DroidPlugin插件化架构使用步骤2. 使用DroidPlugin好处的全部内容,希望文章能够帮你解决【Android动态加载】Android 动态加载(六) - 360开源框架DroidPlugin的使用介绍1. 360的DroidPlugin插件化架构使用步骤2. 使用DroidPlugin好处所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复