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

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

Info

Publication number
CN104360884A
CN104360884A CN201410658981.9A CN201410658981A CN104360884A CN 104360884 A CN104360884 A CN 104360884A CN 201410658981 A CN201410658981 A CN 201410658981A CN 104360884 A CN104360884 A CN 104360884A
Authority
CN
China
Prior art keywords
resource
plug
bag
name
packet
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201410658981.9A
Other languages
English (en)
Inventor
邓裕强
黄爱华
邹品元
巢子良
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangzhou jiubang century science and Technology Co Ltd
Original Assignee
JIUBANG COMPUTER TECHNOLOGY (GUANGZHOU) Co Ltd
Guangzhou Jiubang Digital Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by JIUBANG COMPUTER TECHNOLOGY (GUANGZHOU) Co Ltd, Guangzhou Jiubang Digital Technology Co Ltd filed Critical JIUBANG COMPUTER TECHNOLOGY (GUANGZHOU) Co Ltd
Priority to CN201410658981.9A priority Critical patent/CN104360884A/zh
Publication of CN104360884A publication Critical patent/CN104360884A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Information Transfer Between Computers (AREA)

Abstract

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

Description

一种基于安卓系统的插件资源包加载方法
技术领域
本发明涉及安卓系统插件领域,尤其涉及一种基于安卓系统的插件资源包加载方法。
背景技术
现有安卓系统的应用主包由于含有较多的应用插件功能,因此包体的体积比较大,在下载安装时既耗时又占用手机内存空间,而且受限于包体的体积,不能在主包中扩展其它多余的插件功能,限制了主包的插件功能的扩展性,不能满足用户个性化的需求。
发明内容
针对现有技术的不足,本发明的目的在于提供一种免安装,既可减小主包体积,又可以大大扩展插件功能的基于安卓系统的资源包加载方法。
为实现上述目的,本发明采用的技术方案如下:一种基于安卓系统的插件资源包加载方法,所述方法包括以下步骤:
插件资源包独立打包成apk包后压缩为zip,并存放于远端服务器中;
主工程需要加载插件资源包时,需要获取下载插件资源包的服务器地址;
再根据服务器地址下载插件资源包于指定目录的储存卡中并进行解析;
主工程动态加载插件资源包中的资源对象,资源对象包括:定义的资源名称、资源类型及自定义的资源包名;
通过资源对象获取插件资源包中的资源。
进一步,所述插件资源包括图片、字符串、颜色值、尺寸、XML;
获取图片资源,通过图片名称、图片类型和对应的自定义图片压缩包名获取;
获取字符串资源,通过字符串名称、字符串类型和对应的自定义字符串压缩包名获取;
获取颜色值资源,通过颜色名称、颜色类型和对应的颜色压缩包名获取;
获取尺寸资源,通过尺寸名称、尺寸类型和对应的尺寸压缩包名获取;
获取XML资源,通过XML压缩包名或按钮选择设置获取。
进一步,所述资源为布局文件时,布局文件中所有显示加载资源均在代码中设置,资源包中的布局文件去掉所有显示加载资源。
进一步,所述方法包括以下步骤为:
主工程获取下载插件dex文件的服务器地址;
根据服务器地址下载插件dex文件于指定目录的储存卡中并进行解析;
主工程中自定义一个加载插件dex文件的类加载器,支持以资源方式加载插件dex文件中的类;
将自定义的类加载器通过反射方式替换系统分配给主工程的类加载器,使得插件dex文件中的类和主工程本身的类处于同一类空间中;
主工程通过反射技术调用插件dex文件中的代码。
相对于现有技术,本发明所述的技术方案通过将插件资源包独立打包成apk包后压缩为zip,并存放于远端服务器中;主工程需要加载插件资源包时,需要获取下载插件资源包的服务器地址;再根据服务器地址下载插件资源包于指定目录的储存卡中并进行解析;主工程动态加载插件资源包中的资源对象,资源对象包括:定义的资源名称、资源类型及自定义的资源包名;通过资源对象获取插件资源包中的资源;插件资源包直接从服务器下载后加载便可使用,免于安装且大大减少主包的体积;另外,由于主包不受限于包体的大小,可以通过此插件资源包加载方式大大扩展插件功能。
为了充分地了解本发明的目的、特征和效果,以下将结合附图对本发明的构思、具体结构及产生的技术效果作进一步说明。
附图说明
图1是本发明实施例一基于安卓系统的插件资源包加载方法的流程图;
图2是本发明实施例二基于安卓系统的插件资源包加载方法的dex文件加载方法流程图。
具体实施方式
下面将结合附图以及具体实施方法来详细说明本发明,在本发明的示意性实施及说明用来解释本发明,但并不作为对本发明的限定。
实施例一
如图1所示,一种基于安卓系统的插件资源包加载方法,所述方法包括以下步骤:
S101:插件资源包独立打包成apk包后压缩为zip,并存放于远端服务器中;
S102:主工程加载插件资源包,获取下载插件资源包的服务器地址;
S103:根据服务器地址下载插件资源包于指定目录的储存卡中并进行解析;
S104:主工程动态加载插件资源包中的资源对象,资源对象包括:定义的资源名称、资源类型及自定义的资源包名;
S105:通过资源对象获取插件资源包中的资源。
实施例二
一种基于安卓系统的插件资源包加载方法,所述方法包括以下步骤:
S201:插件资源包独立打包成apk包后压缩为zip,并存放于远端服务器中;
S202:主工程加载插件资源包,获取下载插件资源包的服务器地址;
S203:根据服务器地址下载插件资源包于指定目录的储存卡中并进行解析;
S204:主工程动态加载插件资源包中的资源对象,资源对象包括:定义的资源名称、资源类型及自定义的资源包名;
所述插件资源包括图片、字符串、颜色值、尺寸、XML;
获取资源分为3个参数,第一个参数为:定义的资源名称,第二个参数为:资源类型(安卓系统识别的),第三个参数为:加载压缩包的包名,打包的时候自定义;
获取图片资源,通过图片名称、图片类型和对应的自定义图片压缩包名获取;
获取字符串资源,通过字符串名称、字符串类型和对应的自定义字符串压缩包名获取;
获取颜色值资源,通过颜色名称、颜色类型和对应的颜色压缩包名获取;
获取尺寸资源,通过尺寸名称、尺寸类型和对应的尺寸压缩包名获取;
获取XML资源,通过XML压缩包名或按钮选择设置获取;
S205:通过资源对象获取插件资源包中的资源。
当所述资源为布局文件时,布局文件中所有显示加载资源均在代码中设置,包括布局文件的图片(drawable)、字符串(string)、颜色(color)、尺寸(dimen)、风格(style)等,资源包中的布局文件去掉所有显示加载资源。
如图2所示,所述方法还包括加载插件dex文件的方法,具体步骤如下:
S301:主工程获取下载插件dex文件的服务器地址;
S302:根据服务器地址下载插件dex文件于指定目录的储存卡中并进行解析;
S303:主工程中自定义一个加载插件dex文件的类加载器,支持以资源方式加载插件dex文件中的类;
S304:将自定义的类加载器通过反射方式替换系统分配给主工程的类加载器,使得插件dex文件中的类和主工程本身的类处于同一类空间中;
S305:主工程通过反射技术调用插件dex文件中的代码。
本发明所述的技术方案通过将插件资源包独立打包成apk包后压缩为zip,并存放于远端服务器中;主工程需要加载插件资源包时,需要获取下载插件资源包的服务器地址;再根据服务器地址下载插件资源包于指定目录的储存卡中并进行解析;主工程动态加载插件资源包中的资源对象,资源对象包括:定义的资源名称、资源类型及自定义的资源包名;通过资源对象获取插件资源包中的资源;插件资源包直接从服务器下载后加载便可使用,免于安装且大大减少主包的体积;另外,由于主包不受限于包体的大小,可以通过此插件资源包加载方式大大扩展插件功能。
本实施例所述的功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算设备可读取存储介质中。基于这样的理解,本发明实施例对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一台计算设备(可以是个人计算机,服务器,移动计算设备或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (4)

1.一种基于安卓系统的插件资源包加载方法,其特征在于,所述方法包括以下步骤:
插件资源包独立打包成apk包后压缩为zip,并存放于远端服务器中;
主工程需要加载插件资源包时,需要获取下载插件资源包的服务器地址;
再根据服务器地址下载插件资源包于指定目录的储存卡中并进行解析;
主工程动态加载插件资源包中的资源对象,资源对象包括:定义的资源名称、资源类型及自定义的资源包名;
通过资源对象获取插件资源包中的资源。
2.如权利要求1所述的插件资源包加载方法,其特征在于,所述插件资源包括图片、字符串、颜色值、尺寸、XML;
获取图片资源,通过图片名称、图片类型和对应的自定义图片压缩包名获取;
获取字符串资源,通过字符串名称、字符串类型和对应的自定义字符串压缩包名获取;
获取颜色值资源,通过颜色名称、颜色类型和对应的颜色压缩包名获取;
获取尺寸资源,通过尺寸名称、尺寸类型和对应的尺寸压缩包名获取;
获取XML资源,通过XML压缩包名或按钮选择设置获取。
3.如权利要求1所述的插件资源包加载方法,其特征在于,所述资源为布局文件时,布局文件中所有显示加载资源均在代码中设置,资源包中的布局文件去掉所有显示加载资源。
4.如权利要求1所述的插件资源包加载方法,其特征在于,所述方法包括以下步骤为:
主工程获取下载插件dex文件的服务器地址;
根据服务器地址下载插件dex文件于指定目录的储存卡中并进行解析;
主工程中自定义一个加载插件dex文件的类加载器,支持以资源方式加载插件dex文件中的类;
将自定义的类加载器通过反射方式替换系统分配给主工程的类加载器,使得插件dex文件中的类和主工程本身的类处于同一类空间中;
主工程通过反射技术调用插件dex文件中的代码。
CN201410658981.9A 2014-11-18 2014-11-18 一种基于安卓系统的插件资源包加载方法 Pending CN104360884A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410658981.9A CN104360884A (zh) 2014-11-18 2014-11-18 一种基于安卓系统的插件资源包加载方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410658981.9A CN104360884A (zh) 2014-11-18 2014-11-18 一种基于安卓系统的插件资源包加载方法

Publications (1)

Publication Number Publication Date
CN104360884A true CN104360884A (zh) 2015-02-18

Family

ID=52528148

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410658981.9A Pending CN104360884A (zh) 2014-11-18 2014-11-18 一种基于安卓系统的插件资源包加载方法

Country Status (1)

Country Link
CN (1) CN104360884A (zh)

Cited By (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104679572A (zh) * 2015-03-26 2015-06-03 北京神舟航天软件技术有限公司 基于预加载机制的插件支持方法
CN104850440A (zh) * 2015-05-25 2015-08-19 广州市久邦数码科技有限公司 一种基于安卓系统的资源加载方法及其系统
CN105282238A (zh) * 2015-09-16 2016-01-27 深圳市茁壮网络股份有限公司 一种资源管理方法
CN106339237A (zh) * 2016-08-16 2017-01-18 税友软件集团股份有限公司 针对JavaEE领域WEB应用的插件加载框架及方法
CN106651992A (zh) * 2016-11-18 2017-05-10 武汉斗鱼网络科技有限公司 优化Android资源图片的方法及系统
CN106775916A (zh) * 2017-02-17 2017-05-31 北京金山安全软件有限公司 减小应用安装包的方法、装置及电子设备
CN106775879A (zh) * 2016-12-22 2017-05-31 福建天泉教育科技有限公司 基于安卓系统客户端的vr应用免安装方法及其系统
CN107092601A (zh) * 2016-02-17 2017-08-25 阿里巴巴集团控股有限公司 资源文件构建方法、资源文件应用方法及装置
CN107092494A (zh) * 2016-02-18 2017-08-25 腾讯科技(深圳)有限公司 访问apk资源的方法和装置
CN107977243A (zh) * 2017-11-27 2018-05-01 海尔优家智能科技(北京)有限公司 一种第三方接口调用方法及装置
CN108334364A (zh) * 2017-08-22 2018-07-27 广州久邦世纪科技有限公司 一种基于Lottie实现动态加载和更新动画的方法及其系统
CN109614158A (zh) * 2017-09-30 2019-04-12 北京国双科技有限公司 一种插件的调用方法、系统、存储介质和处理器
CN109670126A (zh) * 2018-11-27 2019-04-23 广东耐思智慧科技有限公司 一种跨境访问加速方法及装置
CN110399196A (zh) * 2019-07-30 2019-11-01 努比亚技术有限公司 可穿戴设备及其界面切换实现方法和计算机可读存储介质
CN111062638A (zh) * 2019-12-26 2020-04-24 珠海金山网络游戏科技有限公司 一种项目资源的处理方法及装置
CN111381741A (zh) * 2020-03-05 2020-07-07 山东浪潮通软信息科技有限公司 工具栏插件化方法、装置及系统
CN112052028A (zh) * 2020-08-20 2020-12-08 北京智游网安科技有限公司 一种安卓应用程序包的生成方法、终端及存储介质
CN112738274A (zh) * 2021-01-24 2021-04-30 南京金盾公共安全技术研究院有限公司 一种基于安卓应用的智能设备统一连接和控制方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103067392A (zh) * 2012-12-28 2013-04-24 中国人民解放军理工大学 一种基于Android终端的安全访问控制方法
CN103530156A (zh) * 2013-10-17 2014-01-22 北京奇虎科技有限公司 动态加载和调用程序的方法及装置
US20140057620A1 (en) * 2011-05-04 2014-02-27 Huawei Device Co., Ltd. Method, system, and terminal for performing system update between mobile communication terminals
CN103632096A (zh) * 2013-11-29 2014-03-12 北京奇虎科技有限公司 一种对设备进行安全检测方法和装置
US20140082729A1 (en) * 2012-09-19 2014-03-20 Estsecurity Co., Ltd. System and method for analyzing repackaged application through risk calculation

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140057620A1 (en) * 2011-05-04 2014-02-27 Huawei Device Co., Ltd. Method, system, and terminal for performing system update between mobile communication terminals
US20140082729A1 (en) * 2012-09-19 2014-03-20 Estsecurity Co., Ltd. System and method for analyzing repackaged application through risk calculation
CN103067392A (zh) * 2012-12-28 2013-04-24 中国人民解放军理工大学 一种基于Android终端的安全访问控制方法
CN103530156A (zh) * 2013-10-17 2014-01-22 北京奇虎科技有限公司 动态加载和调用程序的方法及装置
CN103632096A (zh) * 2013-11-29 2014-03-12 北京奇虎科技有限公司 一种对设备进行安全检测方法和装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
马小军 等: "基于Android平台的手机学吉他软件的开发", 《北京联合大学学报(自然科学版)》 *

Cited By (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104679572A (zh) * 2015-03-26 2015-06-03 北京神舟航天软件技术有限公司 基于预加载机制的插件支持方法
CN104679572B (zh) * 2015-03-26 2017-09-22 北京神舟航天软件技术有限公司 基于预加载机制的插件支持方法
CN104850440A (zh) * 2015-05-25 2015-08-19 广州市久邦数码科技有限公司 一种基于安卓系统的资源加载方法及其系统
CN105282238B (zh) * 2015-09-16 2018-11-13 深圳市茁壮网络股份有限公司 一种资源管理方法
CN105282238A (zh) * 2015-09-16 2016-01-27 深圳市茁壮网络股份有限公司 一种资源管理方法
CN107092601B (zh) * 2016-02-17 2021-03-23 创新先进技术有限公司 资源文件构建方法、资源文件应用方法及装置
CN107092601A (zh) * 2016-02-17 2017-08-25 阿里巴巴集团控股有限公司 资源文件构建方法、资源文件应用方法及装置
CN107092494A (zh) * 2016-02-18 2017-08-25 腾讯科技(深圳)有限公司 访问apk资源的方法和装置
CN106339237A (zh) * 2016-08-16 2017-01-18 税友软件集团股份有限公司 针对JavaEE领域WEB应用的插件加载框架及方法
CN106339237B (zh) * 2016-08-16 2019-11-12 税友软件集团股份有限公司 针对JavaEE领域WEB应用的插件加载框架及方法
CN106651992B (zh) * 2016-11-18 2021-01-01 武汉斗鱼网络科技有限公司 优化Android资源图片的方法及系统
CN106651992A (zh) * 2016-11-18 2017-05-10 武汉斗鱼网络科技有限公司 优化Android资源图片的方法及系统
CN106775879A (zh) * 2016-12-22 2017-05-31 福建天泉教育科技有限公司 基于安卓系统客户端的vr应用免安装方法及其系统
CN106775879B (zh) * 2016-12-22 2020-09-11 福建天泉教育科技有限公司 基于安卓系统客户端的vr应用免安装方法及其系统
CN106775916A (zh) * 2017-02-17 2017-05-31 北京金山安全软件有限公司 减小应用安装包的方法、装置及电子设备
CN108334364A (zh) * 2017-08-22 2018-07-27 广州久邦世纪科技有限公司 一种基于Lottie实现动态加载和更新动画的方法及其系统
CN109614158A (zh) * 2017-09-30 2019-04-12 北京国双科技有限公司 一种插件的调用方法、系统、存储介质和处理器
CN109614158B (zh) * 2017-09-30 2021-11-26 北京国双科技有限公司 一种插件的调用方法、系统、存储介质和处理器
CN107977243A (zh) * 2017-11-27 2018-05-01 海尔优家智能科技(北京)有限公司 一种第三方接口调用方法及装置
CN109670126A (zh) * 2018-11-27 2019-04-23 广东耐思智慧科技有限公司 一种跨境访问加速方法及装置
CN110399196A (zh) * 2019-07-30 2019-11-01 努比亚技术有限公司 可穿戴设备及其界面切换实现方法和计算机可读存储介质
CN110399196B (zh) * 2019-07-30 2024-04-23 努比亚技术有限公司 可穿戴设备及其界面切换实现方法和计算机可读存储介质
CN111062638A (zh) * 2019-12-26 2020-04-24 珠海金山网络游戏科技有限公司 一种项目资源的处理方法及装置
CN111062638B (zh) * 2019-12-26 2023-09-12 珠海金山数字网络科技有限公司 一种项目资源的处理方法及装置
CN111381741A (zh) * 2020-03-05 2020-07-07 山东浪潮通软信息科技有限公司 工具栏插件化方法、装置及系统
CN112052028A (zh) * 2020-08-20 2020-12-08 北京智游网安科技有限公司 一种安卓应用程序包的生成方法、终端及存储介质
CN112052028B (zh) * 2020-08-20 2024-05-14 北京智游网安科技有限公司 一种安卓应用程序包的生成方法、终端及存储介质
CN112738274A (zh) * 2021-01-24 2021-04-30 南京金盾公共安全技术研究院有限公司 一种基于安卓应用的智能设备统一连接和控制方法

Similar Documents

Publication Publication Date Title
CN104360884A (zh) 一种基于安卓系统的插件资源包加载方法
CN111176976B (zh) 测试数据的生成方法和装置、存储介质及电子装置
CN110019081A (zh) 数据持久化处理方法、装置、系统及可读存储介质
CN106874052B (zh) 一种应用程序的部署方法和装置
CN106610839B (zh) 发布升级包的方法、轻量升级方法、装置及系统
CN111249744B (zh) 资源加载方法和装置、存储介质及电子装置
CN103425491A (zh) 一种游戏引擎
CN104516738A (zh) 一种app应用的开发与发布一体化实现方法
CN104156225B (zh) 一种安装包的下载方法、系统及服务器
CN102520967A (zh) 一种创建与使用移动平台插件的方法、系统和移动终端
CN102591667A (zh) 一种远程发布应用的方法及装置
CN110389940B (zh) 一种数据均衡方法、装置和计算机可读存储介质
CN105068818A (zh) 生成渠道包的方法、装置与批量生成渠道包的方法、系统
CN112165482B (zh) 数据处理方法、装置、计算机设备及介质
CN105607901B (zh) 系统内存的优化方法、装置及终端设备
CN104267972A (zh) 浏览器本地接口扩展方法及装置
CN105094878A (zh) 一种集成系统库文件的方法和装置
CN103177077A (zh) 一种apk文件的存储及输出方法
CN112230857B (zh) 一种混合云系统、混合云盘申请方法和数据存储方法
CN104023087A (zh) 一种多个服务器之间的轮询方法和装置
CN113885935A (zh) 资源打包方法、装置、电子设备及计算机可读存储介质
CN102193806B (zh) 更新动画的方法和装置
CN104021024B (zh) 一种桌面系统功能屏幕的加载方法及其系统
KR102141749B1 (ko) App 프로그램 실행 방법 및 장치
CN108334364A (zh) 一种基于Lottie实现动态加载和更新动画的方法及其系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right

Effective date of registration: 20170911

Address after: 510055, tower 17, A tower, Zhonghua International Center, No. three, 33 Zhongshan Road, Yuexiu District, Guangdong, Guangzhou, China

Applicant after: Guangzhou jiubang century science and Technology Co Ltd

Address before: 510055 A, block 16-17, China International Center, No. three, Zhongshan Road, Guangzhou, Guangdong, China

Applicant before: Jiubang computer technology (Guangzhou) Co., Ltd.

Applicant before: Guangzhou Jiubang Digital Technology Co., Ltd.

TA01 Transfer of patent application right
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20150218

WD01 Invention patent application deemed withdrawn after publication