Android应用插件化开发系统和方法技术方案

技术编号:15301669 阅读:68 留言:0更新日期:2017-05-12 19:04
一种Android应用插件化开发系统和方法,系统包括:与主应用绑定的一个插件框架和至少一个插件apk;所述插件apk包括一描述文件,所述描述文件内记录有所述插件apk的程序入口代码;每个所述插件apk在安装时被解析且解析信息保存在插件框架的特定目录下,所述插件框架用于根据所述特定目录下的所述解析信息中的描述文件运行插件apk。由于插件框架可根据描述文件直接运行插件apk,功能代码独立存在不相互依赖,使得应用源码的复杂度大大下降;插件可以以更新资源(如更新特定目录下的解析信息)的方式更新,不需要经过系统安装新的apk来更新应用;主应用相当于一个统一的应用入口,减少用户手机桌面上安装的app数量,方便管理一个系列的app。

Android application plug-in development system and method

A plug-in Android application development system and method, the system includes: a plug-in framework and the main application bound and at least one plug-in APK; the plug-in APK includes a description of the file, the program code of the entrance description file recorded in the APK plugin; each of the plug-in APK is parsed and analytic information stored in a specific directory under the plug-in framework when installing the plug-in framework for the analysis of APK plug-ins according to the operation information of the specific directory in the description file. Because the plug-in framework can be run directly according to the description file plug-in APK function code does not exist independently depend on the complexity of the application source code plug-ins can be decreased greatly; to update the resources (such as updating information analytic specific directory) method to update, do not need to go through the system to install the new APK to update the application; the main application is equivalent to the application of a unified entrance, reduce the number of mobile phone users to install app on the desktop, to facilitate the management of a series of app.

【技术实现步骤摘要】

本专利技术涉及Android应用平台开发领域,尤其涉及一种Android应用插件化开发系统以及Android应用插件化开发方法。
技术介绍
插件化开发通常是指将复杂应用的功能分解成一个个独立的模块,并打包成独立的可运行文件,由插件框架调用启动不同的模块可运行文件,将原来的大系统大应用进行分割,不同模块可以独立更新、插拔而不需要影响到整个应用或其他模块,可保证系统的可扩展性、灵活性。随着移动互联网的发展,目前市面上单个移动应用的功能越来越多,越来越复杂,对应用本身的架构及扩展性造成很大的挑战,原来小团队规模开发的应用随着市场需求的增加不得不面对功能爆炸式的增长,如何有序地驾驭应用复杂度的增长成为近年来移动端架构的主题。当前,Android应用开发市面上主要使用的是插件化开发,以此来实现应用功能模块化、独立化的运作。比如大家熟知的淘宝、支付宝、微信都具备插件化开发的能力。当需要增加应用新功能时,只需要在服务端发布该新功能的插件模块,前台应用就能更新新的功能到本地客户端,为应用的更新、规划提供更便捷的解决方案。一个典型的例子就是微信中打飞机游戏的插件化发布。在微信发布打飞机游戏的时候,大部分客户端是不具备该游戏功能模块的,而是使用下载更新插件的方法动态下载游戏到本地并运行,为微信提供强大的终端运营能力。目前,Android市面上仅有阿里巴巴公司开源的Atlas应用框架可供实现插件化开发。Atlas框架支持对Android工程单独打包成框架可运行文件,并由框架调用启动,但是Atlas需要对Androidsdk中apptool打包工具进行改写,打包出的可运行文件不能再被Android系统运行,并且开发时需要为eclipseide打上开发插件,不能像开发普通应用一样开发插件,对应用的开发调试有一定限制,不够便捷、高效。因此,总的来说,现有技术存在如下问题:应用功能模块随着需求增加复杂度、耦合度增加,易造成应用不稳定风险;微小的模块变动就必须对应用进行全量升级,造成用户流量的浪费以及不好的用户体验;相关功能app越来越多,用户手机上的应用繁多,不方便统一管理,对用户桌面体验影响很大。
技术实现思路
本专利技术要解决的技术问题在于,针对现有技术的上述缺陷,提供一种Android应用插件化开发系统和方法。本专利技术解决其技术问题所采用的技术方案是:构造一种Android应用插件化开发系统,包括:与主应用绑定的一个插件框架和至少一个插件apk;所述插件apk包括一描述文件,所述描述文件内记录有所述插件apk的程序入口代码;每个所述插件apk在安装时被解析且解析信息保存在插件框架的特定目录下,所述插件框架用于根据所述特定目录下的所述解析信息中的描述文件运行插件apk。在本专利技术所述的Android应用插件化开发系统中,所述的运行插件apk包括:插件框架基于特定目录下的解析信息,通过hook技术构造出插件apk的运行环境,并读取描述文件内记录的程序入口代码,利用读取的程序入口代码替代主应用的程序入口代码进而启动相应的插件apk。在本专利技术所述的Android应用插件化开发系统中,还包括一个library模块,任意的两个插件apk之间以及主应用与插件apk之间通过所述library模块通信,所述library模块用于任意的两个插件apk之间以及主应用与插件apk之间的数据统一管理和事件分发管理。在本专利技术所述的Android应用插件化开发系统中,所述插件框架和所述插件apk均遵循OSGi规范。本专利技术还公开了一种Android应用插件化开发方法,所述方法包括:S1、将主应用和一个插件框架绑定;增设一描述文件到插件apk中,所述描述文件内记录有所述插件apk的程序入口代码;S2、对插件apk进行解析,将解析信息保存在插件框架的特定目录下;S3、插件框架根据所述特定目录下的所述解析信息中的描述文件运行插件apk。在本专利技术所述的Android应用插件化开发方法中,所述步骤S3包括:S31、插件框架基于特定目录下的解析信息,通过hook技术构造出插件apk的运行环境;S32、插件框架读取描述文件内记录的程序入口代码,利用读取的程序入口代码替代主应用的程序入口代码进而启动相应的插件apk。在本专利技术所述的Android应用插件化开发方法中,所述方法还包括:增设一个用于数据统一管理和事件分发管理的library模块,任意的两个插件apk之间以及主应用与插件apk之间通过所述library模块通信。在本专利技术所述的Android应用插件化开发方法中,所述插件框架和所述插件apk均遵循OSGi规范。实施本专利技术的Android应用插件化开发系统和方法,具有以下有益效果:本专利技术中插件框架可根据描述文件直接运行插件apk,因此用户可以将应用功能的业务分成不同的工程做成单独的插件apk,最终集成到主应用中即可,分解了原先代码耦合在一起的弊端,由于功能代码独立存在不相互依赖,使得应用源码的复杂度大大下降;其次,应用模块以插件形式存在后,被当做资源集成到主应用中,插件可以以更新资源(如更新特定目录下的解析信息)的方式更新,而不需要经过系统安装新的apk来更新应用;而且不仅仅可以将应用的功能模块以插件的方式改造,对于其他的应用可以通过增设描述文件后集成进来,主应用相当于一个统一的应用入口,以减少用户手机桌面上安装的app数量,方便用户统一管理一个系列的app,提升手机桌面的用户体验。附图说明下面将结合附图及实施例对本专利技术作进一步说明,附图中:图1是本专利技术Android应用插件化开发系统的结构示意图;图2是本专利技术Android应用插件化开发方法的流程图。具体实施方式为了对本专利技术的技术特征、目的和效果有更加清楚的理解,现对照附图详细说明本专利技术的具体实施方式。如图1所示,是本专利技术Android应用插件化开发系统的结构示意图。本专利技术的Android应用插件化开发系统,包括:与主应用绑定的一个插件框架、library模块和至少一个插件apk。所述插件apk包括一描述文件,所述描述文件内记录有所述插件apk的程序入口代码activity。其中,增加了描述文件的插件apk的创建过程如下:首先,在普通的android工程的asset文件夹下增加插件描述文件,例如在asset文件夹下增加名称为plugin.properties;然后,对描述文件进行编辑,设定插件入口描述,例如plugin.properties文件中写入:Bundle-MainActivity=某个插件apk的入口activity;最后,将工程编译并打包成apk文件,即可完成插件创建。插件框架在安装插件apk时,会把打包好的apk包解压到特定目录下,启动时从特定目录下的asset文件夹下读取描述文件,并加载插件apk的代码和资源,由描述文件指定的入口activity启动插件。其中,所述插件框架和所述插件apk均遵循OSGi规范。OSGi(OpenServiceGatewayInitiative)是面向Java的动态模型系统。每一个apk插件被映射到插件框架中就是一个Bundle对象,完整路径为:org.OSGi.framework.Bundle。通过这个Bundle能获取到本文档来自技高网
...
Android应用插件化开发系统和方法

【技术保护点】
一种Android应用插件化开发系统,其特征在于,包括:与主应用绑定的一个插件框架和至少一个插件apk;所述插件apk包括一描述文件,所述描述文件内记录有所述插件apk的程序入口代码;每个所述插件apk在安装时被解析且解析信息保存在插件框架的特定目录下,所述插件框架用于根据所述特定目录下的所述解析信息中的描述文件运行插件apk。

【技术特征摘要】
1.一种Android应用插件化开发系统,其特征在于,包括:与主应用绑定的一个插件框架和至少一个插件apk;所述插件apk包括一描述文件,所述描述文件内记录有所述插件apk的程序入口代码;每个所述插件apk在安装时被解析且解析信息保存在插件框架的特定目录下,所述插件框架用于根据所述特定目录下的所述解析信息中的描述文件运行插件apk。2.根据权利要求1所述的Android应用插件化开发系统,其特征在于,所述的运行插件apk包括:插件框架基于特定目录下的解析信息,通过hook技术构造出插件apk的运行环境,并读取描述文件内记录的程序入口代码,利用读取的程序入口代码替代即将加载的主应用的程序入口代码进而启动相应的插件apk。3.根据权利要求1所述的Android应用插件化开发系统,其特征在于,还包括一个library模块,任意的两个插件apk之间以及主应用与插件apk之间通过所述library模块通信,所述library模块用于任意的两个插件apk之间以及主应用与插件apk之间的数据统一管理和事件分发管理。4.根据权利要求1所述的Android应用插件化开发系统,其特征在于,所述插件框架和所述插件a...

【专利技术属性】
技术研发人员:肖招娣陈轶斌皇甫汉聪余永忠庞维欣杨飞黄海清
申请(专利权)人:广东电网有限责任公司佛山供电局
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1