DroidPlugin初体验及相关问题

因为项目需要使用到了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 onCreateattachBaseContext方法中添加如下代码:

@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,这样也能实现目的。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
DroidPlugin是一个基于Android的插件化框架,32指的是它适用于Android 4.4及以下版本的系统。DroidPlugin的主要作用是实现动态加载插件,使得在不需要重新安装或者更新主程序的情况下,能够实现对插件模块的增删改查。 使用DroidPlugin可以实现灵活的插件开发,主程序与插件之间可以实现解耦,降低了开发和维护的难度。同时,在Android 4.4及以下的系统中,插件化方案也是一种绕过系统安全限制的方法,可以在插件中使用一些系统API,而主程序无法直接访问或使用的。 DroidPlugin的核心原理是通过ClassLoader的动态加载机制,将插件的代码和资源加载到主程序的进程中,使得插件能够在主程序的环境中运行。在DroidPlugin中,主程序作为宿主程序,负责管理插件的生命周期、加载插件的资源、处理插件的事件等等。插件需要在宿主程序中提供一个独立的插件框架,包含插件的入口Activity、Service、Provider等组件,并且通过插件框架与宿主程序进行通信交互。 使用DroidPlugin可以实现一些常见的插件化需求,例如动态更新插件、增加新的功能模块、实现多版本的功能适配等。但同时也需要注意,插件化开发可能会涉及到一些安全性问题,例如插件对主程序的权限依赖、插件中的恶意代码等。因此,在使用DroidPlugin时,需要谨慎处理插件的来源、权限限制、插件与主程序的通信等方面的安全性问题

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值