CN105630518A - Android应用软件资源更新的方法和装置 - Google Patents

Android应用软件资源更新的方法和装置 Download PDF

Info

Publication number
CN105630518A
CN105630518A CN201410589908.0A CN201410589908A CN105630518A CN 105630518 A CN105630518 A CN 105630518A CN 201410589908 A CN201410589908 A CN 201410589908A CN 105630518 A CN105630518 A CN 105630518A
Authority
CN
China
Prior art keywords
resource
apk
activity
updated
application software
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
CN201410589908.0A
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.)
Beijing Na Jia Development Of Information Science And Technology Co Ltd
Original Assignee
Beijing Na Jia Development Of Information Science And 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 Beijing Na Jia Development Of Information Science And Technology Co Ltd filed Critical Beijing Na Jia Development Of Information Science And Technology Co Ltd
Priority to CN201410589908.0A priority Critical patent/CN105630518A/zh
Publication of CN105630518A publication Critical patent/CN105630518A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Stored Programmes (AREA)

Abstract

本申请公开了一种Android应用程序资源更新的方法和装置。所述方法的一具体实施方式包括:构建包含待更新资源的Android软件安装包APK;创建代理Activity并加载所述APK的Activity;通过所述代理Activity对所述待更新资源重定向;根据所述重定向调用所述APK中的待更新资源。该实施方式无需重新打包应用软件的安装包即可实现应用软件资源的动态更新。

Description

Android应用软件资源更新的方法和装置
技术领域
本申请涉及计算机技术领域,具体涉及终端技术领域,尤其涉及Android应用软件资源更新的方法和装置。
背景技术
在Android平台上,应用软件安装完成后,如果要更新安装文件(APK)安装目录下的文件需要超级管理员权限才可以更改,但是如果用户开启超级管理员权限,则有可能受到恶意软件的侵扰。
一般情况下,应用程序开发完成后,如果资源文件更新,比如加入界面、修改界面、功能优化等,则需要重新对应用软件的安装包进行打包才能正常完成更新并运行。例如,目前大量的支付应用都需要将第三方的软件开发工具包(SDK,SoftwareDevelopmentKit)打包到自身的安装包中,如果支付SDK更新,则应用厂商需要重新打包发布自己的新的应用软件安装包,更新周期频繁,应用厂商就需要频繁地重新打包应用软件安装包,带来很多不便。如何在不重新打包编译应用软件安装包的情况下实现应用软件的资源更新,是当前面临的问题。
发明内容
有鉴于此,本申请提供了一种Android应用软件资源更新的方法和装置。
一方面,本申请提供了一种Android应用软件资源更新的方法,所述方法包括:
构建包含待更新资源的Android软件安装包APK;
创建代理Activity并加载所述APK的Activity;
通过所述代理Activity对所述待更新资源重定向;
根据所述重定向调用所述APK中的待更新资源。
在一些可选的实现方式中,所述创建代理Activity并加载所述APK的Activity包括:
为所述APK的Activity定义一个基类Activity;
所述基类Activity对所述代理Activity进行配置;
所述代理Activity执行所述APK的Activity。
在一些可选的实现方式中,所述构建包含待更新资源的Android软件安装包APK包括:通过将待更新的资源文件打包或编译,生成Android软件安装包。
在一些可选的实现方式中,通过所述代理Activity对所述待更新资源重定向包括所述代理Activity重载所述资源的访问方法和路径。
在一些可选的实现方式中,通过所述代理Activity对所述待更新资源重定向还包括:所述APK设置调用者的权限。
在一些可选的实现方式中,所述通过所述代理Activity对所述待更新资源重定向还包括:所述APK根据自身上下文环境对当前的调用者进行判断,若判断为应用软件调用,则将程序运行的上下文环境切换为应用软件的上下文环境。
在一些可选的实现方式中,在构建包含待更新资源的Android软件安装包APK之前,还包括:
检测有无待更新资源,若检测到有,则执行包含所述待更新资源的APK的构建。
在一些可选的实现方式中,在根据所述重定向调用所述APK中的待更新资源之前,还包括:
所述应用软件访问资源时,判断自身有无所需资源,若判断结果为没有,则根据重定向在所述APK中查找资源。
另一方面,本申请还提供了一种Android应用软件资源更新的装置,所述装置包括:
构建模块,用于构建包含待更新资源的Android软件安装包APK;
加载模块,用于创建代理Activity并加载所述APK的Activity;
重定向模块,通过所述代理Activity对所述待更新资源重定向;
调用模块,根据所述重定向调用所述APK中的待更新资源。
在一些可选的实现方式中,所述装置还包括:
检测模块,用于检测有无未安装的资源,若检测到有,则执行包含待更新资源的APK的构建;
判断模块,用于在应用软件访问资源时,判断自身有无所需资源,若判断结果为没有,则根据重定向在所述APK中查找并访问资源。
本申请提供的Android应用软件资源更新的方法和装置,通过构建包含待更新资源的Android软件安装包APK,随后创建代理Activity并加载所述APK的Activity,之后通过所述代理Activity对所述待更新资源重定向,最后根据所述重定向调用所述APK中的待更新资源,无需对应用软件的安装包重新打包编译即可实现应用程序资源的动态更新,节约了***资源。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1是本申请Android应用软件资源更新的方法的一个实施例的流程图;
图2是本申请Android应用软件资源更新的方法的另一个实施例的流程图;
图3是本申请Android应用软件资源更新的方法的再一个实施例的流程图;
图4是本申请Android应用软件资源更新的装置的一个实施例的功能模块示意图。
具体实施方式
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
请参考图1,其示出了本申请一种Android应用软件资源更新方法的一个实施例的流程100。本实施例主要以该方法应用于智能终端中来举例说明,该终端可以包括智能手机、平板电脑、电子书阅读器、MP3播放器(MovingPictureExpertsGroupAudioLayerIII,动态影像专家压缩标准音频层面3)、MP4播放器(MovingPictureExpertsGroupAudioLayerIV,动态影像专家压缩标准音频层面4)、膝上型便携计算机和台式计算机等等。
所述Android应用程序资源更新的方法,包括以下步骤:
步骤101,构建包含待更新资源的Android软件安装包APK。
Android软件安装包文件(AndroidPackage,APK)是一种Android操作***上的应用程序安装文件格式。一个Android应用程序的代码想要在Android设备上运行,必须先进行编译,然后被打包成为一个被Android***所能识别的文件才可以被运行,而这种能被Android***识别并运行的文件格式便是“APK”。一个APK文件内包含被编译的代码文件(.dex文件),文件资源(resources),资源目录(assets),证书(certificates),和清单文件(manifestfile)。通常一个APK包含以下文件:
META-INF文件夹;
res:APK所需要的资源文件夹;
AndroidManifest.xml:一个传统的Android清单文件,用于描述该应用程序的名字、版本号、所需权限、注册的服务、链接的其他应用程序。该文件使用XML文件格式,可以编译为二进制的XML,使用的工具为AXMLPrinter2或apktool;
classes.dex:classes文件通过DEX编译后的文件格式,用于在Dalvik虚拟机上运行的主要代码部分;
resources.arsc:编译后的二进制资源文件。
软件赖以生存的软件环境被称作是宿主环境,也就是宿主程序。Android应用软件启动后,其运行环境即为软件及程序的宿主。在一些可选的实现方式中,构建包含待更新的资源的Android软件安装包APK包括:通过将待更新的资源文件打包或编译,生成Android软件安装包。其中,资源文件可以为二进制文件,包含对应用软件的界面、字串、图片、菜单等更新的数据,可存储在例如SD卡用户设定的下载目录的指定目录下。将上述资源文件通过打包编译等方式放入一个新的APK中,生成包含待更新资源的APK文件。APK的资源文件一般具有.res文件扩展名,存放在上述res文件夹中,包含着无需重新编辑代码便可以改变的字串、图片、布局等数据。
上述资源文件的编译过程可以通过以下步骤来实现:首先解析AndroidManifest.xml,然后添加被引用的资源包,收集资源文件,并将收集到的资源添加到资源表(收集到的资源中不包括values类),之后编译类型为values的资源(values类的资源一般描述的是一些如颜色、尺寸、字符串、样式等简单的值)和Xml资源文件,将Xml文件编译为二进制格式之后,根据资源的名称和地址生成资源符号,然后生成资源索引表,编译AndroidManifest.xml文件,最后生成R.java文件,并打包APK文件。
宿主程序中的resource.arsc文件为APK文件中的待更新资源分配地址,使得资源管理器可以根据分配到的地址查找到资源。其中,resource.arsc文件用来描述资源的配置信息,其内容相当于一个资源索引表。包含待更新资源的APK可以通过安装实现资源更新;也可以不安装,由宿主程序提取其中资源来完成资源的更新。
在一些可选的实现方式中,上述待更新的资源包括加密资源文件和明文资源文件。通过签名文件对上述资源文件进行加密,应用软件加载加密的资源文件时需通过签名认证,防止其他插件的恶意篡改。
步骤102,创建代理Activity并加载所述APK的Activity。
活动对象Activity是Android中基本的四大组件之一,它是一个应用程序组件,负责与用户交互。在应用程序中,Activity被实现为一个独立的类,活动的类会显示一个由视图控件组成的用户接口,并对事件做出响应。
在本实施例中,宿主程序调用包含待更新资源的APK时,首先通过应用程序编程接口(ApplicationProgrammingInterface,API)启动APK,启动后由宿主程序创建代理Activity,为使代理Activity执行包含待更新资源的APK的Activity中的所有逻辑,需定义一个基类Activity,在基类Activity中通过SetProxy方法对代理Activity进行配置,然后将包含待更新资源的APK的Activity的执行交由宿主中创建的代理Activity。这样,包含待更新资源的APK的Activity都继承自代理Activity。上述API对调用条件有限制,在宿主程序启动包含待更新资源的APK时,即调用代理Activity。
步骤103,通过所述代理Activity对所述待更新资源重定向。
在一些可选的实现方式中,通过所述代理Activity对所述待更新资源重定向包括构建一个新的资源管理器或重载所述资源的获取方法和路径,使得宿主程序在调用资源时,根据新的资源管理器或重载的资源获取方法和路径调用APK中的资源。
在一些可选的实现方式中,通过所述代理Activity对所述待更新资源重定向还包括:所述APK根据自身上下文环境对当前的调用者进行判断,若判断为应用软件调用,则将程序运行的上下文环境切换为应用软件的上下文环境。
在一些可选的实现方式中,通过所述代理Activity对所述待更新资源重定向还可包括所述APK设置调用者的权限,对调用者是否有权限调用该资源进行设置,在资源被调用时,判断调用者是否有调用该资源的权限,如果调用者鉴别结果为自身或宿主程序,则允许资源被调用;如果鉴别结果为其他插件,则拒绝调用资源,防止其他无权限的插件对APK的调用或篡改,保证安全性。
当包含待更新资源的APK自身调用其中的资源时,权限鉴别通过后,根据自身的资源获取方法和路径调用资源。
步骤104,根据所述重定向调用所述APK中的待更新资源。
当宿主调用APK文件中的资源时,首先进行权限鉴别,鉴别通过后依据代理Activity对资源的重定向访问获取APK中的资源,完成资源的更新。宿主可以根据自身需要调用资源,动态加载APK中的资源。
当APK被宿主调用时,由于代理Activity中通过构建新的资源管理器或重载资源获取方法和路径实现了资源重定向,APK的路径被传入了宿主程序中,宿主的资源管理对象AssetManager通过创建一个新的资源对象,即可加载APK中的资源,达到资源更新目的。在此过程中,无需对整个应用软件重新打包编译,只对APK中的资源选择性加载,就能实现资源的更新。
对于本申请的上述实施例,应用的场景可以为,当应用软件有更新时,例如界面修改、功能优化等,无需重新打包编译,只构建包含待更新资源的未安装APK文件,并由代理Activity对其中的资源重定向,之后根据重定向调用资源即可实现资源的动态更新。
本申请的上述实施例提供的方法通过构建包含待更新资源的Android软件安装包APK,随后创建代理Activity并加载所述APK的Activity,之后通过所述代理Activity对所述待更新资源重定向,最后根据所述重定向调用所述APK中的待更新资源,无需对应用软件的安装包重新打包编译即可实现应用程序资源的动态更新,节约了***资源。
进一步参考图2,其示出了Android应用软件资源更新的方法的另一个实施例的流程200。该Android应用软件资源更新方法的流程200,包括以下步骤:
步骤201,检测有无待更新资源,若检测到有,则执行步骤202。
在一些可选的实现方式中,可以设定检测周期,应用软件定期对资源更新进行检测。当检测到有更新时,自动加载新的资源。
在另一些可选的方式中,应用软件检测到资源有更新时,由***发出加载新资源的指令,或者由用户选择是否加载新的资源。
步骤202,构建包含待更新资源的Android软件安装包APK。
在一些可选的实现方式中,构建包含待更新的资源的Android软件安装包APK包括:通过将待更新的资源文件打包或编译,生成Android软件安装包。将上述资源文件通过打包编译等方式放入一个新的APK中,生成包含待更新资源的APK文件。
宿主程序中的resource.arsc文件为未安装的APK文件中的资源分配地址,使得资源管理器可以根据分配到的地址查找到资源。其中,resource.arsc文件用来描述资源的配置信息,其内容相当于一个资源索引表。包含待更新资源的APK可以通过安装实现资源更新;也可以不安装,由宿主程序提取其中资源来完成资源的更新。
在一些可选的实现方式中,上述待更新的资源包括加密资源文件和明文资源文件。通过签名文件对上述资源文件进行加密,宿主加载加密的资源文件时需通过签名认证,防止其他插件的恶意篡改。
步骤203,创建代理Activity并加载所述APK的Activity。
在本实施例中,宿主程序调用包含待更新资源的APK时,首先通过应用程序编程接口(ApplicationProgrammingInterface,API)启动APK,启动后由宿主程序创建代理Activity,为使代理Activity执行包含待更新资源的APK的Activity中的所有逻辑,需定义一个基类Activity,在基类Activity中通过SetProxy对代理Activity进行配置,将包含待更新资源的APK的Activity的执行交由宿主中创建的代理Activity。这样,包含待更新资源的APK的Activity都继承自代理Activity。上述API对调用条件有限制,在宿主程序启动包含待更新资源的APK时,即调用代理Activity。
步骤204,通过所述代理Activity对所述待更新资源重定向。
在一些可选的实现方式中,通过所述代理Activity对所述待更新资源重定向包括构建一个新的资源管理器或重载所述资源的获取方法和路径,使得宿主程序在调用资源时,根据新的资源管理器或重载的资源获取方法和路径调用APK中的资源。
在一些可选的实现方式中,通过所述代理Activity对所述待更新资源重定向还包括:所述APK根据自身上下文环境对当前的调用者进行判断,若判断为应用软件调用,则将程序运行的上下文环境切换为应用软件的上下文环境。
在一些可选的实现方式中,通过所述代理Activity对所述待更新资源重定向还可包括所述APK设置调用者的权限,对调用者是否有权限调用该资源进行设置,在资源被调用时,判断调用者是否有调用该资源的权限,如果调用者鉴别结果为自身或宿主程序,则允许资源被调用;如果鉴别结果为其他插件,则拒绝调用资源,防止其他无权限的插件对APK的调用或篡改,保证安全性。
当包含待更新资源的APK自身调用其中的资源时,权限鉴别通过后,根据自身的资源获取方法和路径调用资源。
步骤205,根据所述重定向调用所述APK中的待更新资源。
当宿主调用APK文件中的资源时,首先进行权限鉴别,鉴别通过后依据代理Activity对资源的重定向访问获取APK中的资源,完成资源的更新。宿主可以根据自身需要调用资源,动态加载APK中的资源。
当APK被宿主调用时,由于代理Activity中通过构建新的资源管理器或重载资源获取方法和路径实现了资源重定向,APK的路径被传入了宿主程序中,宿主的资源管理对象AssetManager通过创建一个新的资源对象,即可加载APK中的资源,达到资源更新目的。在此过程中,无需对整个应用软件重新打包编译,只对APK中的资源选择性加载,就能实现资源的更新。
从图2中可以看出,与图1对应的实施例不同的是,本实施例中的Android应用软件资源更新的方法的流程200多出了检测有无待更新资源的步骤201。通过增加的步骤201,本实施例描述的方案有助于实现资源的自动检测和选择性更新,提升了应用软件资源更新的实时性和安全性。
进一步参考图3,其示出了Android应用软件资源更新的方法的再一个实施例的流程300。该Android应用软件资源更新的方法,包括以下步骤:
步骤301,构建包含待更新资源的Android软件安装包APK。
在一些可选的实现方式中,构建包含待更新的资源的Android软件安装包APK包括:通过将待更新的资源文件打包或编译,生成Android软件安装包。将上述资源文件通过打包编译等方式放入一个新的APK中,生成包含待更新资源的APK文件。
宿主程序中的resource.arsc文件为未安装的APK文件中的资源分配地址,使得资源管理器可以根据分配到的地址查找到资源。其中,resource.arsc文件用来描述资源的配置信息,其内容相当于一个资源索引表。包含待更新资源的APK可以通过安装实现资源更新;也可以不安装,由宿主程序提取其中资源来完成资源的更新。
在一些可选的实现方式中,上述待更新的资源包括加密资源文件和明文资源文件。通过签名文件对上述资源文件进行加密,宿主加载加密的资源文件时需通过签名认证,防止其他插件的恶意篡改。
步骤302,创建代理Activity并加载所述APK的Activity。
在本实施例中,宿主程序调用包含待更新资源的APK时,首先通过应用程序编程接口(ApplicationProgrammingInterface,API)启动APK,启动后由宿主程序创建代理Activity,为使代理Activity执行包含待更新资源的APK的Activity中的所有逻辑,需定义一个基类Activity,在基类Activity中通过SetProxy方法对代理Activity进行配置,将包含待更新资源的APK的Activity的执行交由宿主中创建的代理Activity。这样,包含待更新资源的APK的Activity都继承自代理Activity。上述API对调用条件有限制,在宿主程序启动包含待更新资源的APK时,即调用代理Activity。
步骤303,通过所述代理Activity对所述待更新资源重定向。
在一些可选的实现方式中,通过所述代理Activity对所述待更新资源重定向包括构建一个新的资源管理器或重载所述资源的获取方法和路径,使得宿主程序在调用资源时,根据新的资源管理器或重载的资源获取方法和路径调用APK中的资源。
在一些可选的实现方式中,通过所述代理Activity对所述待更新资源重定向还包括:所述APK根据自身上下文环境对当前的调用者进行判断,若判断为应用软件调用,则将程序运行的上下文环境切换为应用软件的上下文环境。
在一些可选的实现方式中,通过所述代理Activity对所述待更新资源重定向还可包括所述APK设置调用者的权限,对调用者是否有权限调用该资源进行设置,在资源被调用时,判断调用者是否有调用该资源的权限,如果调用者鉴别结果为自身或宿主程序,则允许资源被调用;如果鉴别结果为其他插件,则拒绝调用资源,防止其他无权限的插件对APK的调用或篡改,保证安全性。
当包含待更新资源的APK自身调用其中的资源时,权限鉴别通过后,根据自身的资源获取方法和路径调用资源。
步骤304,所述应用软件访问资源时,判断自身有无所需资源,若判断结果为没有,则执行步骤305。
在一些可选的实现方式中,应用软件访问资源时,若自身没有该资源,则在包含待更新资源的APK中查找,由于该资源获取方法和路径被重载,所要访问的资源被重定向的上述APK中。
步骤305,根据所述重定向调用所述APK中的待更新资源。
当宿主调用APK文件中的资源时,首先进行权限鉴别,鉴别通过后依据代理Activity对资源的重定向访问获取APK中的资源,完成资源的更新。宿主可以根据自身需要调用资源,动态加载APK中的资源。
当APK被宿主调用时,由于代理Activity中通过构建新的资源管理器或重载资源获取方法和路径实现了资源重定向,APK的路径被传入了宿主程序中,宿主的资源管理对象AssetManager通过创建一个新的资源对象,即可加载APK中的资源,达到资源更新目的。在此过程中,无需对整个应用软件重新打包编译,只对APK中的资源选择性加载,就能实现资源的更新。
从图3中可以看出,与图1对应的实施例不同的是,本实施例中的Android应用程序资源更新的方法的流程300多出了所述应用软件访问资源时,判断自身有无所需资源的步骤304。通过增加的步骤304,本实施例表述的方案实现了宿主根据需要更新资源,当包含待更新资源的APK文件中包含应用软件已有的资源文件时,避免重复调用和更新资源,节约了***资源。
进一步参考图4,其示出了Android应用软件资源更新的装置的一个实施例的结构示意图。
如图4所示,本实施例所述的Android应用软件资源更新装置400包括:构建模块401,加载模块402,重定向模块403,调用模块404。其中,构建模块401用于构建包含待更新资源的Android软件安装包APK;加载模块402用于创建代理Activity并加载所述APK的Activity;重定向模块403通过所述代理Activity对所述待更新资源重定向;调用模块404根据所述重定向调用所述APK中的待更新资源。
在本实施例中,应用软件后,构建模块401将待更新的资源构建为APK文件,之后由加载模块402创建代理Activity并加载构建模块401构建的APK的Activity,重定向模块403对APK中待更新的资源进行重定向,最后由调用模块404控制应用程序根据所述重定向调用并加载资源,完成资源的更新。
在一些可选实施方式中,所述装置400还包括检测模块(未示出),所述检测模块用于检测有待更新的APK资源,若检测到有,则将待更新的资源构建为APK;以及判断模块(未示出),所述判断模块用于在所述应用软件访问资源时,判断自身有无所需资源,若判断结果为没有,则根据重定向在所述APK中查找并访问资源。
描述于本申请实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包括构建模块,加载模块,重定向模块和调用模块。其中,这些模块的名称在某种情况下并不构成对该模块本身的限定,例如,构建模块还可以被描述为“用于构建的模块”。
作为另一方面,本申请还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中所述装置中所包含的计算机可读存储介质;也可以是单独存在,未装配入终端中的计算机可读存储介质。所述计算机可读存储介质存储有一个或者一个以上程序,所述程序被一个或者一个以上的处理器用来执行描述于本申请的Android应用软件资源更新的方法。
以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离所述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。

Claims (10)

1.一种Android应用软件资源更新的方法,其特征在于,所述方法包括:
构建包含待更新资源的Android软件安装包APK;
创建代理Activity并加载所述APK的Activity;
通过所述代理Activity对所述待更新资源重定向;
根据所述重定向调用所述APK中的待更新资源。
2.根据权利要求1所述的Android应用软件资源更新的方法,其特征在于,所述创建代理Activity并加载所述APK的Activity包括:
为所述APK的Activity定义一个基类Activity;
所述基类Activity对所述代理Activity进行配置;
所述代理Activity执行所述APK的Activity。
3.根据权利要求1所述的Android应用软件资源更新的方法,其特征在于,所述构建包含待更新资源的Android软件安装包APK包括:通过将待更新的资源文件打包或编译,生成Android软件安装包。
4.根据权利要求1所述的Android应用软件资源更新的方法,其特征在于,所述通过所述代理Activity对所述待更新资源重定向包括所述代理Activity重载所述资源的访问方法和路径。
5.根据权利要求4所述的Android应用软件资源更新的方法,其特征在于,所述通过所述代理Activity对所述待更新资源重定向还包括:所述APK设置调用者的权限。
6.根据权利要求4或5所述的Android应用软件资源更新的方法,其特征在于,所述通过所述代理Activity对所述待更新资源重定向还包括:所述APK根据自身上下文环境对当前的调用者进行判断,若判断为应用软件调用,则将程序运行的上下文环境切换为应用软件的上下文环境。
7.根据权利要求1所述的Android应用软件资源更新的方法,其特征在于,在构建包含待更新资源的Android软件安装包APK之前,还包括:
检测有无待更新资源,若检测到有,则执行包含所述待更新资源的APK的构建。
8.根据权利要求1所述的Android应用软件资源更新的方法,其特征在于,在根据所述重定向调用所述APK中的待更新资源之前,还包括:
所述应用软件访问资源时,判断自身有无所需资源,若判断结果为没有,则根据重定向在所述APK中查找资源。
9.一种Android应用软件资源更新的装置,其特征在于,所述装置包括:
构建模块,用于构建包含待更新资源的Android软件安装包APK;
加载模块,用于创建代理Activity并加载所述APK的Activity;
重定向模块,通过所述代理Activity对所述待更新资源重定向;
调用模块,根据所述重定向调用所述APK中的待更新资源。
10.根据权利要求10所述的Android应用软件资源更新的装置,其特征在于,所述装置还包括:
检测模块,用于检测有无未安装的资源,若检测到有,则执行包含待更新资源的APK的构建;
判断模块,用于在应用软件访问资源时,判断自身有无所需资源,若判断结果为没有,则根据重定向在所述APK中查找并访问资源。
CN201410589908.0A 2014-10-28 2014-10-28 Android应用软件资源更新的方法和装置 Pending CN105630518A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410589908.0A CN105630518A (zh) 2014-10-28 2014-10-28 Android应用软件资源更新的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410589908.0A CN105630518A (zh) 2014-10-28 2014-10-28 Android应用软件资源更新的方法和装置

Publications (1)

Publication Number Publication Date
CN105630518A true CN105630518A (zh) 2016-06-01

Family

ID=56045508

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410589908.0A Pending CN105630518A (zh) 2014-10-28 2014-10-28 Android应用软件资源更新的方法和装置

Country Status (1)

Country Link
CN (1) CN105630518A (zh)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107168719A (zh) * 2017-06-02 2017-09-15 广州视源电子科技股份有限公司 应用程序运行方法、装置、终端及计算机可读存储介质
CN107193580A (zh) * 2017-03-31 2017-09-22 北京元心科技有限公司 ***更新方法及非短暂计算机可读介质
CN107436781A (zh) * 2017-06-28 2017-12-05 北京五八信息技术有限公司 Apk文件处理方法和装置
CN107678789A (zh) * 2016-07-27 2018-02-09 平安科技(深圳)有限公司 Ui界面的更新方法及装置
CN107885540A (zh) * 2016-09-28 2018-04-06 腾讯科技(深圳)有限公司 一种加载应用程序静态资源的方法、装置及终端
CN108228264A (zh) * 2016-12-12 2018-06-29 北京国双科技有限公司 插件资源加载方法和装置
CN109076126A (zh) * 2017-03-21 2018-12-21 华为技术有限公司 权限更新方法和终端设备
CN110399196A (zh) * 2019-07-30 2019-11-01 努比亚技术有限公司 可穿戴设备及其界面切换实现方法和计算机可读存储介质
CN110673827A (zh) * 2019-08-27 2020-01-10 广州视源电子科技股份有限公司 基于安卓***的资源调用方法及装置、电子设备
CN110837378A (zh) * 2018-08-16 2020-02-25 腾讯科技(深圳)有限公司 软件开发工具包sdk功能的调用方法及装置
WO2020063008A1 (zh) * 2018-09-26 2020-04-02 Oppo广东移动通信有限公司 资源配置方法、装置、终端及存储介质
CN113312073A (zh) * 2021-06-15 2021-08-27 上海益世界信息技术集团有限公司广州分公司 一种安装包文件处理方法和相关装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120144379A1 (en) * 2010-12-07 2012-06-07 Hon Hai Precision Industry Co., Ltd. System and method for updadting software
US20130139139A1 (en) * 2011-11-28 2013-05-30 Wyse Technology Inc. Automatic updating of an application or a driver on a client device using a deployment configuration file
CN103176810A (zh) * 2011-12-26 2013-06-26 北京神州泰岳软件股份有限公司 一种安卓操作***的终端换肤的方法和***
CN103530156A (zh) * 2013-10-17 2014-01-22 北京奇虎科技有限公司 动态加载和调用程序的方法及装置
CN103677877A (zh) * 2012-09-12 2014-03-26 腾讯科技(深圳)有限公司 一种本地广告软件开发包升级的方法及装置
CN103744669A (zh) * 2013-12-26 2014-04-23 世纪龙信息网络有限责任公司 安卓***Activity插件的创建、调用方法及***

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120144379A1 (en) * 2010-12-07 2012-06-07 Hon Hai Precision Industry Co., Ltd. System and method for updadting software
US20130139139A1 (en) * 2011-11-28 2013-05-30 Wyse Technology Inc. Automatic updating of an application or a driver on a client device using a deployment configuration file
CN103176810A (zh) * 2011-12-26 2013-06-26 北京神州泰岳软件股份有限公司 一种安卓操作***的终端换肤的方法和***
CN103677877A (zh) * 2012-09-12 2014-03-26 腾讯科技(深圳)有限公司 一种本地广告软件开发包升级的方法及装置
CN103530156A (zh) * 2013-10-17 2014-01-22 北京奇虎科技有限公司 动态加载和调用程序的方法及装置
CN103744669A (zh) * 2013-12-26 2014-04-23 世纪龙信息网络有限责任公司 安卓***Activity插件的创建、调用方法及***

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
SINGWHATIWANNA: ""Android apk动态加载机制的研究(二):资源加载和activity生命周期管理"", 《HTTP://BLOG.CSDN.NET/SINGWHATIWANNA/ARTICLE/DETAILS/23387079》 *
SINGWHATIWANNA: ""Android apk动态加载机制的研究"", 《HTTP://BLOG.CSDN.NET/ SINGWHATIWANNA/ARTICLE/DETAILS/22597587》 *
TRINEA: ""Android插件化动态升级"", 《HTTPS://WWW.CNBLOGS.COM/TRINEA/P/3980597.HTML》 *
YUANZEYAO: ""实现Android动态加载APK(Fragment or Activity实现)"", 《HTTP://BLOG.CSDN.NET/YUANZEYAO/ARTICLE/DETAILS/38565345》 *
邱彦林: "《AIR Android应用开发实践》", 31 August 2012, 北京:机械工业出版社 *

Cited By (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107678789A (zh) * 2016-07-27 2018-02-09 平安科技(深圳)有限公司 Ui界面的更新方法及装置
CN107885540A (zh) * 2016-09-28 2018-04-06 腾讯科技(深圳)有限公司 一种加载应用程序静态资源的方法、装置及终端
CN108228264A (zh) * 2016-12-12 2018-06-29 北京国双科技有限公司 插件资源加载方法和装置
CN108228264B (zh) * 2016-12-12 2021-07-30 北京国双科技有限公司 插件资源加载方法和装置
CN109076126B (zh) * 2017-03-21 2020-09-18 华为技术有限公司 权限更新方法和终端设备
CN109076126A (zh) * 2017-03-21 2018-12-21 华为技术有限公司 权限更新方法和终端设备
CN107193580A (zh) * 2017-03-31 2017-09-22 北京元心科技有限公司 ***更新方法及非短暂计算机可读介质
CN107168719A (zh) * 2017-06-02 2017-09-15 广州视源电子科技股份有限公司 应用程序运行方法、装置、终端及计算机可读存储介质
CN107436781A (zh) * 2017-06-28 2017-12-05 北京五八信息技术有限公司 Apk文件处理方法和装置
CN110837378B (zh) * 2018-08-16 2021-07-02 腾讯科技(深圳)有限公司 软件开发工具包sdk功能的调用方法及装置
CN110837378A (zh) * 2018-08-16 2020-02-25 腾讯科技(深圳)有限公司 软件开发工具包sdk功能的调用方法及装置
WO2020063008A1 (zh) * 2018-09-26 2020-04-02 Oppo广东移动通信有限公司 资源配置方法、装置、终端及存储介质
CN110399196A (zh) * 2019-07-30 2019-11-01 努比亚技术有限公司 可穿戴设备及其界面切换实现方法和计算机可读存储介质
CN110399196B (zh) * 2019-07-30 2024-04-23 努比亚技术有限公司 可穿戴设备及其界面切换实现方法和计算机可读存储介质
CN110673827A (zh) * 2019-08-27 2020-01-10 广州视源电子科技股份有限公司 基于安卓***的资源调用方法及装置、电子设备
CN110673827B (zh) * 2019-08-27 2022-12-20 广州视源电子科技股份有限公司 基于安卓***的资源调用方法及装置、电子设备
CN113312073A (zh) * 2021-06-15 2021-08-27 上海益世界信息技术集团有限公司广州分公司 一种安装包文件处理方法和相关装置
CN113312073B (zh) * 2021-06-15 2022-05-27 上海益世界信息技术集团有限公司广州分公司 一种安装包文件处理方法和相关装置

Similar Documents

Publication Publication Date Title
CN105630518A (zh) Android应用软件资源更新的方法和装置
CN103049692B (zh) 一种应用安装方法、装置和设备
Batyuk et al. Using static analysis for automatic assessment and mitigation of unwanted and malicious activities within Android applications
KR101456489B1 (ko) CLDC OSGi 환경에서 어플리케이션의 접속 권한을관리하는 방법 및 장치
CN108536451B (zh) 应用程序的埋点注入方法和装置
KR101518420B1 (ko) 안드로이드 플랫폼에서의 apk 파일 관리 장치 및 방법
CN103970563B (zh) 动态加载安卓类的方法
US20180129794A1 (en) Method for Protecting Dex File from Decompilation in Android System
CN104424423B (zh) 应用程序的权限确定方法和装置
CN103365644A (zh) 一种扩展软件功能的方法及装置
CN103778373A (zh) 病毒检测方法及装置
CN103902265A (zh) 一种应用实现方法及相关装置
WO2015050588A2 (en) Method and system for combining multiple applications into a single binary file while maintaining per process sandboxing
US9280674B2 (en) Information processing apparatus and method of controlling same
CN105159788A (zh) 一种Android应用间动态共享资源的方法及***
US20180285426A1 (en) Systems and methods for package component visualizations
CN103544434A (zh) 用于确保应用程序安全运行的方法和终端
Alepis et al. Hey doc, is this normal?: Exploring android permissions in the post marshmallow era
CN105516154A (zh) 应用于SEAndroid***的安全策略配置方法及装置
CN106897607A (zh) 一种应用程序监控方法及装置
CN106569880A (zh) 一种Android应用间动态共享资源的方法及***
CN106055375A (zh) 应用程序安装方法及装置
CN110333872B (zh) 一种应用的处理方法、装置、设备和介质
CN103885784A (zh) 具有安全模块可插拔功能的Android平台构建方法
CN105550573A (zh) 拦截捆绑软件的方法和装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20160601