我是靠谱客的博主 哭泣时光,最近开发中收集的这篇文章主要介绍【Android动态加载】Android 动态加载(六) - 360开源框架DroidPlugin的使用介绍1. 360的DroidPlugin插件化架构使用步骤2. 使用DroidPlugin好处,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

原文地址: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好处所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(45)

评论列表共有 0 条评论

立即
投稿
返回
顶部