一种基于安卓系统的插件资源包加载方法

文档序号:6634682阅读:171来源:国知局
一种基于安卓系统的插件资源包加载方法
【专利摘要】本发明提供了一种基于安卓系统的插件资源包加载方法,所述方法包括:插件资源包独立打包成apk包后压缩为zip,并存放于远端服务器中;主工程需要加载插件资源包时,需要获取下载插件资源包的服务器地址;再根据服务器地址下载插件资源包于指定目录的储存卡中并进行解析;主工程动态加载插件资源包中的资源对象,资源对象包括:定义的资源名称、资源类型及自定义的资源包名;通过资源对象获取插件资源包中的资源;插件资源包直接从服务器下载后加载便可使用,免于安装且大大减少主包的体积;另外,由于主包不受限于包体的大小,可以通过此插件资源包加载方式大大扩展插件功能。
【专利说明】
一种基于安卓系统的插件资源包加载方法

【技术领域】
[0001]本发明涉及安卓系统插件领域,尤其涉及一种基于安卓系统的插件资源包加载方法。

【背景技术】
[0002]现有安卓系统的应用主包由于含有较多的应用插件功能,因此包体的体积比较大,在下载安装时既耗时又占用手机内存空间,而且受限于包体的体积,不能在主包中扩展其它多余的插件功能,限制了主包的插件功能的扩展性,不能满足用户个性化的需求。


【发明内容】

[0003]针对现有技术的不足,本发明的目的在于提供一种免安装,既可减小主包体积,又可以大大扩展插件功能的基于安卓系统的资源包加载方法。
[0004]为实现上述目的,本发明采用的技术方案如下:一种基于安卓系统的插件资源包加载方法,所述方法包括以下步骤:
[0005]插件资源包独立打包成apk包后压缩为zip,并存放于远端服务器中;
[0006]主工程需要加载插件资源包时,需要获取下载插件资源包的服务器地址;
[0007]再根据服务器地址下载插件资源包于指定目录的储存卡中并进行解析;
[0008]主工程动态加载插件资源包中的资源对象,资源对象包括:定义的资源名称、资源类型及自定义的资源包名;
[0009]通过资源对象获取插件资源包中的资源。
[0010]进一步,所述插件资源包括图片、字符串、颜色值、尺寸、XML ;
[0011]获取图片资源,通过图片名称、图片类型和对应的自定义图片压缩包名获取;
[0012]获取字符串资源,通过字符串名称、字符串类型和对应的自定义字符串压缩包名获取;
[0013]获取颜色值资源,通过颜色名称、颜色类型和对应的颜色压缩包名获取;
[0014]获取尺寸资源,通过尺寸名称、尺寸类型和对应的尺寸压缩包名获取;
[0015]获取XML资源,通过XML压缩包名或按钮选择设置获取。
[0016]进一步,所述资源为布局文件时,布局文件中所有显示加载资源均在代码中设置,资源包中的布局文件去掉所有显示加载资源。
[0017]进一步,所述方法包括以下步骤为:
[0018]主工程获取下载插件dex文件的服务器地址;
[0019]根据服务器地址下载插件dex文件于指定目录的储存卡中并进行解析;
[0020]主工程中自定义一个加载插件dex文件的类加载器,支持以资源方式加载插件dex文件中的类;
[0021]将自定义的类加载器通过反射方式替换系统分配给主工程的类加载器,使得插件dex文件中的类和主工程本身的类处于同一类空间中;
[0022]主工程通过反射技术调用插件dex文件中的代码。
[0023]相对于现有技术,本发明所述的技术方案通过将插件资源包独立打包成apk包后压缩为zip,并存放于远端服务器中;主工程需要加载插件资源包时,需要获取下载插件资源包的服务器地址;再根据服务器地址下载插件资源包于指定目录的储存卡中并进行解析;主工程动态加载插件资源包中的资源对象,资源对象包括:定义的资源名称、资源类型及自定义的资源包名;通过资源对象获取插件资源包中的资源;插件资源包直接从服务器下载后加载便可使用,免于安装且大大减少主包的体积;另外,由于主包不受限于包体的大小,可以通过此插件资源包加载方式大大扩展插件功能。
[0024]为了充分地了解本发明的目的、特征和效果,以下将结合附图对本发明的构思、具体结构及产生的技术效果作进一步说明。

【专利附图】

【附图说明】
[0025]图1是本发明实施例一基于安卓系统的插件资源包加载方法的流程图;
[0026]图2是本发明实施例二基于安卓系统的插件资源包加载方法的dex文件加载方法流程图。

【具体实施方式】
[0027]下面将结合附图以及具体实施方法来详细说明本发明,在本发明的示意性实施及说明用来解释本发明,但并不作为对本发明的限定。
[0028]实施例一
[0029]如图1所示,一种基于安卓系统的插件资源包加载方法,所述方法包括以下步骤:
[0030]SlOl:插件资源包独立打包成apk包后压缩为zip,并存放于远端服务器中;
[0031]S102:主工程加载插件资源包,获取下载插件资源包的服务器地址;
[0032]S103:根据服务器地址下载插件资源包于指定目录的储存卡中并进行解析;
[0033]S104:主工程动态加载插件资源包中的资源对象,资源对象包括:定义的资源名称、资源类型及自定义的资源包名;
[0034]S105:通过资源对象获取插件资源包中的资源。
[0035]实施例二
[0036]一种基于安卓系统的插件资源包加载方法,所述方法包括以下步骤:
[0037]S201:插件资源包独立打包成apk包后压缩为zip,并存放于远端服务器中;
[0038]S202:主工程加载插件资源包,获取下载插件资源包的服务器地址;
[0039]S203:根据服务器地址下载插件资源包于指定目录的储存卡中并进行解析;
[0040]S204:主工程动态加载插件资源包中的资源对象,资源对象包括:定义的资源名称、资源类型及自定义的资源包名;
[0041]所述插件资源包括图片、字符串、颜色值、尺寸、XML ;
[0042]获取资源分为3个参数,第一个参数为:定义的资源名称,第二个参数为:资源类型(安卓系统识别的),第三个参数为:加载压缩包的包名,打包的时候自定义;
[0043]获取图片资源,通过图片名称、图片类型和对应的自定义图片压缩包名获取;
[0044]获取字符串资源,通过字符串名称、字符串类型和对应的自定义字符串压缩包名获取;
[0045]获取颜色值资源,通过颜色名称、颜色类型和对应的颜色压缩包名获取;
[0046]获取尺寸资源,通过尺寸名称、尺寸类型和对应的尺寸压缩包名获取;
[0047]获取XML资源,通过XML压缩包名或按钮选择设置获取;
[0048]S205:通过资源对象获取插件资源包中的资源。
[0049]当所述资源为布局文件时,布局文件中所有显示加载资源均在代码中设置,包括布局文件的图片(drawable)、字符串(string)、颜色(color)、尺寸(dimen)、风格(style)等,资源包中的布局文件去掉所有显示加载资源。
[0050]如图2所示,所述方法还包括加载插件dex文件的方法,具体步骤如下:
[0051]S301:主工程获取下载插件dex文件的服务器地址;
[0052]S302:根据服务器地址下载插件dex文件于指定目录的储存卡中并进行解析;
[0053]S303:主工程中自定义一个加载插件dex文件的类加载器,支持以资源方式加载插件dex文件中的类;
[0054]S304:将自定义的类加载器通过反射方式替换系统分配给主工程的类加载器,使得插件dex文件中的类和主工程本身的类处于同一类空间中;
[0055]S305:主工程通过反射技术调用插件dex文件中的代码。
[0056]本发明所述的技术方案通过将插件资源包独立打包成apk包后压缩为zip,并存放于远端服务器中;主工程需要加载插件资源包时,需要获取下载插件资源包的服务器地址;再根据服务器地址下载插件资源包于指定目录的储存卡中并进行解析;主工程动态加载插件资源包中的资源对象,资源对象包括:定义的资源名称、资源类型及自定义的资源包名;通过资源对象获取插件资源包中的资源;插件资源包直接从服务器下载后加载便可使用,免于安装且大大减少主包的体积;另外,由于主包不受限于包体的大小,可以通过此插件资源包加载方式大大扩展插件功能。
[0057]本实施例所述的功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算设备可读取存储介质中。基于这样的理解,本发明实施例对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一台计算设备(可以是个人计算机,服务器,移动计算设备或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM, Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。
[0058]对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
【权利要求】
1.一种基于安卓系统的插件资源包加载方法,其特征在于,所述方法包括以下步骤: 插件资源包独立打包成apk包后压缩为zip,并存放于远端服务器中; 主工程需要加载插件资源包时,需要获取下载插件资源包的服务器地址; 再根据服务器地址下载插件资源包于指定目录的储存卡中并进行解析; 主工程动态加载插件资源包中的资源对象,资源对象包括:定义的资源名称、资源类型及自定义的资源包名; 通过资源对象获取插件资源包中的资源。
2.如权利要求1所述的插件资源包加载方法,其特征在于,所述插件资源包括图片、字符串、颜色值、尺寸、XML; 获取图片资源,通过图片名称、图片类型和对应的自定义图片压缩包名获取; 获取字符串资源,通过字符串名称、字符串类型和对应的自定义字符串压缩包名获取; 获取颜色值资源,通过颜色名称、颜色类型和对应的颜色压缩包名获取; 获取尺寸资源,通过尺寸名称、尺寸类型和对应的尺寸压缩包名获取; 获取XML资源,通过XML压缩包名或按钮选择设置获取。
3.如权利要求1所述的插件资源包加载方法,其特征在于,所述资源为布局文件时,布局文件中所有显示加载资源均在代码中设置,资源包中的布局文件去掉所有显示加载资源。
4.如权利要求1所述的插件资源包加载方法,其特征在于,所述方法包括以下步骤为: 主工程获取下载插件dex文件的服务器地址; 根据服务器地址下载插件dex文件于指定目录的储存卡中并进行解析; 主工程中自定义一个加载插件dex文件的类加载器,支持以资源方式加载插件dex文件中的类; 将自定义的类加载器通过反射方式替换系统分配给主工程的类加载器,使得插件dex文件中的类和主工程本身的类处于同一类空间中; 主工程通过反射技术调用插件dex文件中的代码。
【文档编号】G06F9/445GK104360884SQ201410658981
【公开日】2015年2月18日 申请日期:2014年11月18日 优先权日:2014年11月18日
【发明者】邓裕强, 黄爱华, 邹品元, 巢子良 申请人:久邦计算机技术(广州)有限公司, 广州市久邦数码科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1