android使用apkplug实现插件化开发
2017-12-22 14:38
375 查看
步骤一:
注册apkplug官网账号:
官网地址:http://www.apkplug.com/
注册成功之后,我们就可以进行插件开发了。
步骤2:开发插件
Apkplug中的插件也是一个完整的apk,它与普通应用的区别有以下3点:
1、插件assets目录下有一个plugin.xml文档,通过它可判断一个工程是主应用还是插件。
2、插件有一个入口类BundleActivator
3、插件会外部引用一个osgi.jar文件
开发插件有一下4步:
1、引入osgi.jar库文件,导入osgi.jar库文件需要注意一下
osgi.jar文件只能引用不能编译到apk文件中,否则会出现类冲突的情况异常代码:
目前AS没有碰到这种情况
2、这文件在Apkplug SDK中可以找到。
Apkplug SDK下载地址:http://apkplugdemo.oss-cn-qingdao.aliyuncs.com/ApkplugSDK2.7.0.zip
3、编写插件入口类BundleActivator
插件启动时首先调用BundleActivator,其功能类似android中的application类。
4、编写plugin.xml配置文件
plugin.xml 是一个配置表,它跟AndroidManifest.xml作用类似。 plugin.xml文档放置在assets中即可重要属性说明: Bundle-Name 插件名称 Bundle-SymbolicName 插件包名-与应用packagename可一一对应 Bundle-Version 插件版本 -1.0.0 Bundle-Activator插件入口 -与Appliction 类似 Bundle-Activity 插件界面 -多个Activity可用 , 分割Bundle-Service 插件Service -多个Service可用 , 分割 (v2.0.0新增)Bundle-Receiver 插件广播 -多个广播类可用 ,分割 (v2.0.0新增)
5、编译生成插件apk文件,最后编译运行插件工程,生成的apk文件即为插件文件
步骤3:开发主应用
Apkplug 主应用开发分两步集成:
1. 获取主应用授权AppAuth。
登录账号进入Apkplug后台后,切换到“应用授权页面”,按要求填写好应用信息,然后确定,你就拥有了一个等待开发的应用授权AppAuth。应用授权界面如下:
进入“授权列表”页面,点击“查看详情”链接,进入“应用详情界面”,就可以看到已申请的AppAuth,点击其后面的“复制”,即可直接复制AppAuth,如下图所示
2. 对接Apkplug SDK 导入相关库文件。
①配置应用权限
主应用需要几个基础
aa9f
的权限配置,请将以下的几个权限加入到主应用的AndroidManifest.xml中。
最后将我们从Apkplug管理后台申请到的AppAuth加入到配置文件中。
注:由于3.2.2节中我们直接复制了AppAuth,此处直接粘贴到AndroidManifest文档中。
②导入SDK库文件
主应用需要导入两个文件,将其放入libs目录中即可。
1、 libndkfoo.so
2、Bundle2.0.0.jar
这两个库文件在Apkplug SDK中可以找到。
Apkplug SDK下载地址:http://apkplugdemo.oss-cn-qingdao.aliyuncs.com/ApkplugSDK2.7.0.zip
然后:
主应用启动Apkplug最简只需要一段代码即可,建议在Application中启动框架。
FrameworkInstanceframe=FrameworkFactory.getInstance().start(List,Context);
将上一步骤开发好的插件apk,放置在主应用工程里的assets路径下。
步骤4:启动主应用
最后启动主应用即可。简单的插件化apk的方法就讲完了,有兴趣的关注我,下次讲云端托管插件实现应用内更新。
注意事项
申请appauth,是以包名为唯一参数的。申请之后后天不可修改。
此方法只适用于本地插件apk文件,如果需要云端托管插件,还需为插件申请appid.
相关文章地址:
http://blog.csdn.net/xianvlovebeibei/article/details/45602991
http://blog.csdn.net/zhangxp_xml/article/details/52945706
注册apkplug官网账号:
官网地址:http://www.apkplug.com/
注册成功之后,我们就可以进行插件开发了。
步骤2:开发插件
Apkplug中的插件也是一个完整的apk,它与普通应用的区别有以下3点:
1、插件assets目录下有一个plugin.xml文档,通过它可判断一个工程是主应用还是插件。
2、插件有一个入口类BundleActivator
3、插件会外部引用一个osgi.jar文件
开发插件有一下4步:
1、引入osgi.jar库文件,导入osgi.jar库文件需要注意一下
osgi.jar文件只能引用不能编译到apk文件中,否则会出现类冲突的情况异常代码:
had used adifferentLorg/osgi/framework/BundleActivator; during pre-verification。
目前AS没有碰到这种情况
2、这文件在Apkplug SDK中可以找到。
Apkplug SDK下载地址:http://apkplugdemo.oss-cn-qingdao.aliyuncs.com/ApkplugSDK2.7.0.zip
3、编写插件入口类BundleActivator
插件启动时首先调用BundleActivator,其功能类似android中的application类。
public class SimpleBundle implements BundleActivator { private BundleContext mcontext = null; public void start(BundleContext context)throws Exception { System.err.println("你好我是插件,我将为你展示启动acitivty我已经启动了我的BundleId为:"+context.getBundle().getBundleId()); } public void stop(BundleContext context) { System.err.println("你好我是插件,我被停止了 我的BundleId为:"+context.getBundle().getBundleId()); } }
4、编写plugin.xml配置文件
plugin.xml 是一个配置表,它跟AndroidManifest.xml作用类似。 plugin.xml文档放置在assets中即可重要属性说明: Bundle-Name 插件名称 Bundle-SymbolicName 插件包名-与应用packagename可一一对应 Bundle-Version 插件版本 -1.0.0 Bundle-Activator插件入口 -与Appliction 类似 Bundle-Activity 插件界面 -多个Activity可用 , 分割Bundle-Service 插件Service -多个Service可用 , 分割 (v2.0.0新增)Bundle-Receiver 插件广播 -多个广播类可用 ,分割 (v2.0.0新增)
5、编译生成插件apk文件,最后编译运行插件工程,生成的apk文件即为插件文件
步骤3:开发主应用
Apkplug 主应用开发分两步集成:
1. 获取主应用授权AppAuth。
登录账号进入Apkplug后台后,切换到“应用授权页面”,按要求填写好应用信息,然后确定,你就拥有了一个等待开发的应用授权AppAuth。应用授权界面如下:
进入“授权列表”页面,点击“查看详情”链接,进入“应用详情界面”,就可以看到已申请的AppAuth,点击其后面的“复制”,即可直接复制AppAuth,如下图所示
2. 对接Apkplug SDK 导入相关库文件。
①配置应用权限
主应用需要几个基础
aa9f
的权限配置,请将以下的几个权限加入到主应用的AndroidManifest.xml中。
<!-- 插件平台需要的权限! --> <uses-permissionandroid:nameuses-permissionandroid:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission> <uses-permissionandroid:nameuses-permissionandroid:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/> <uses-permissionandroid:nameuses-permissionandroid:name="android.permission.INTERNET"/> <uses-permissionandroid:nameuses-permissionandroid:name="android.permission.READ_PHONE_STATE"> </uses-permission> 另外将一下加入到<application></application>节点中 <!-- 插件平台需要的配置! --> <activity android:name="org.apkplug.app.apkplugActivity" android:theme="@style/android:Theme.Light" android:configChanges="orientation|keyboardHidden" />
最后将我们从Apkplug管理后台申请到的AppAuth加入到配置文件中。
<meta-dataandroid:name="apkplug-auth"android:value="xxxxxxxx"></meta-data>
注:由于3.2.2节中我们直接复制了AppAuth,此处直接粘贴到AndroidManifest文档中。
②导入SDK库文件
主应用需要导入两个文件,将其放入libs目录中即可。
1、 libndkfoo.so
2、Bundle2.0.0.jar
这两个库文件在Apkplug SDK中可以找到。
Apkplug SDK下载地址:http://apkplugdemo.oss-cn-qingdao.aliyuncs.com/ApkplugSDK2.7.0.zip
然后:
主应用启动Apkplug最简只需要一段代码即可,建议在Application中启动框架。
FrameworkInstanceframe=FrameworkFactory.getInstance().start(List,Context);
将上一步骤开发好的插件apk,放置在主应用工程里的assets路径下。
步骤4:启动主应用
最后启动主应用即可。简单的插件化apk的方法就讲完了,有兴趣的关注我,下次讲云端托管插件实现应用内更新。
注意事项
申请appauth,是以包名为唯一参数的。申请之后后天不可修改。
此方法只适用于本地插件apk文件,如果需要云端托管插件,还需为插件申请appid.
相关文章地址:
http://blog.csdn.net/xianvlovebeibei/article/details/45602991
http://blog.csdn.net/zhangxp_xml/article/details/52945706
相关文章推荐
- 使用apkplug实现Android客户端插件化
- 使用apkplug实现Android客户端插件化
- Android插件化开发之用DexClassLoader加载未安装的APK资源文件来实现app切换背景皮肤
- android 插件化 模块化开发(apkplug)
- android 插件化 模块化开发(apkplug)
- android插件化-apkplug插件开发-07
- 关于Android apk 插件化开发
- Android开发:使用序列化接口Parcelable、Serializable实现Activity间传递复杂数据类型参数
- android 开发之 使用Android系统隐藏api 读取*.apk 程序安装包信息
- 使用Mina框架开发 QQ Android 客户端(3) 登陆功能的实现
- Android开发(10)使用SQLiteDatabase操作SQLite数据库实现增删改查(源码)
- 【Android UI设计与开发】第06期:底部菜单栏(一)使用TabActivity实现底部菜单栏
- 【Android UI设计与开发】第06期:底部菜单栏(一)使用TabActivity实现底部菜单栏
- 【Android UI设计与开发】第02期:引导界面(二)使用ViewPager实现欢迎引导页面
- 【Android UI设计与开发】第02期:引导界面(二)使用ViewPager实现欢迎引导页面
- Android 号码, 来电归属地 Jni 使用C++对二进制文件查询(三) APK 实现篇
- android游戏开发框架libgdx的使用(二十三)—使用Universal Tween Engine实现动画效果
- android游戏开发框架libgdx的使用(十八)—简单的AVG游戏效果实现
- 【android开发】使用PopupWindow实现页面点击顶部弹出下拉菜单
- 【Android应用开发】-(11)使用JPCT-AE 3D框架实现旋转的立方体(附效果图及源码)