本发明涉及android应用更新方法,特别是一种基于插件的android应用新功能发布方法。
背景技术:
随着app的广泛使用,app的功能也是日益丰富,于此同时,app安装包的大小也是在不断变大,动不动就是几十mb,常规的更新方法,主要是用新的安装包覆盖旧的安装,这样对用户来说,每次都需要花费几十mb的流量下载,操作也很费时间。
现有常规android更新的主要问题有,第一,对用户而言,每次都要下载完成的更新包,哪怕只是一点点更新,浪费用户流量和时间,第二,对于应用开发者来说,由于每次都是更新整个应用,发布新功能时必须执行完整的测试,避免新功能影响现有功能引入bug。
技术实现要素:
为解决上述技术问题,本发明的目的是提供一种基于插件的android应用新功能发布方法,以降低系统之间的依赖性。
本发明采用的技术方案是:
一种基于插件的android应用新功能发布方法,包括以下步骤:
(a)将插件功能模块和插件元数据清单打包成apk插件;
(b)发布apk插件;
(c)app下载apk插件;
(d)app解析执行apk插件。
所述步骤(d)app通过插件运行器来解析执行apk插件。
所述步骤(c)app下载apk插件至插件容器,插件运行器从插件容器获取并解析执行apk插件。
所述插件运行器工作时,对于apk插件的android应用资源、文件和图片采用直接解析,对于apk插件的字节码采用反射加载执行。
所述android应用资源包括布局、尺寸和颜色。
本发明的有益效果:本发明将应用按照功能模块划分为一个个小的插件,新功能发布,只需发布一个新的插件,用户也只需要下载一个小的插件,不需要完整更新,这样更新的好处是,第一,更新包变小啦,第二,新功能在独立插件中,即时新功能出问题不会影响原来的功能运行,程序更健壮。
附图说明
下面结合附图对本发明的具体实施方式做进一步的说明。
图1是本发明的关系框架图。
具体实施方式
针对现有方案存在的弊端,本发明设计了一种基于插件的android应用新功能发布方法,本方法最核心的部分是两块,一是插件的管理,而是插件运行原理。
插件的管理主要是插件的下载、存储、删除等等,和常规文件下载、保存、存储没什么不同,不加详细论述。
插件下载之后如何运行是本发明的技术核心,首先,回顾一下正常情况下,传统app下载安装后如何运行的,app安装后把自身的元信息向安卓系统注册(名称,标示,需要的权限等等),启动应用后,系统直接把相关调用文件dex码文件提交android系统本身来解析。
当我们把应用当做插件后,插件不再作为apk安装到系统里面,系统无法调用。所以我们需要一个插件运行器来协助系统执行插件,大家知道apk本身是一个应用相关资源以及字节码文件的压缩包。我们可以直接解析访问里面的文件。
如图1所示,本发明的一种基于插件的android应用新功能发布方法,包括以下步骤:
(a)将插件功能模块和插件元数据清单打包成apk插件;
(b)发布apk插件;
(c)app下载apk插件;
(d)app解析执行apk插件。
其中,步骤(d)app通过插件运行器来解析执行apk插件,步骤(c)app下载apk插件至插件容器,插件运行器从插件容器获取并解析执行apk插件。
所述插件运行器工作时,对于apk插件的android应用资源、文件和图片采用直接解析,对于apk插件的字节码采用反射加载执行。
具体的,所述android应用资源包括布局、尺寸和颜色等等。
针对上述插件元数据清单,是为了更高效的的解析插件,我们要求每个插件必须包含自身的元数据清单,元数据清单就是插件里面有哪些activity(活动),相当于页面,提供清单,就可以直接查找activity,而不需要利用低效率的反射技术遍历。
以上所述仅为本发明的优先实施方式,本发明并不限定于上述实施方式,只要以基本相同手段实现本发明目的的技术方案都属于本发明的保护范围之内。