动态加载语言资源的方法和装置的制造方法

文档序号:9375296阅读:143来源:国知局
动态加载语言资源的方法和装置的制造方法
【技术领域】
[0001]本发明涉及应用开发技术领域,尤其涉及一种动态加载语言资源的方法和装置。
【背景技术】
[0002]随着安卓(Android)系统的不断普及,应用(Applicat1n ;以下简称:APP)越来越多,功能越来越丰富,软件复杂度也越来越高。
[0003]APP的功能增多,使用的资源增多,一般都会导致Android安装包(AndroidPackage ;以下简称:APK)体积的增长,很多APK的体积已经增长到几十兆,甚至几百兆,APK体积变大后,会导致用户流量的消耗增多,影响用户下载。同时APK体积变大后,也会导致APP的性能下降。
[0004]现有技术中,通常采用删除不必要的资源和代码,或使用混淆器(proguard)等方法来减小APK的体积,但是这种方法对APK的体积减小的效果很有限,并不能大规模减小APK的体积。

【发明内容】

[0005]本发明的目的旨在至少在一定程度上解决相关技术中的技术问题之一。
[0006]为此,本发明的第一个目的在于提出一种动态加载语言资源的方法。该方法在确定移动终端上启动的应用程序需要加载语言资源包时,才向服务器发送获取上述语言资源包的请求并接收服务器返回的语言资源包,然后加载所接收到的语言资源包,从而有效减少了本地APK包含的资源,进而有效减小了 APK的体积。
[0007]本发明的第二个目的在于提出一种动态加载语言资源的装置。
[0008]为了实现上述目的,本发明第一方面实施例的动态加载语言资源的方法,包括:启动移动终端中的应用程序,确定所述应用程序需要加载语言资源包时,如果所述移动终端中不存在可用语言资源包,则向服务器发送获取所述语言资源包的请求并接收服务器返回的语言资源包;加载所接收到的语言资源包。
[0009]本发明实施例的动态加载语言资源的方法,在确定移动终端上启动的应用程序需要加载语言资源包时,才向服务器发送获取上述语言资源包的请求并接收服务器返回的语言资源包,然后加载所接收到的语言资源包,从而有效减少了本地APK包含的资源,进而有效减小了 APK的体积。
[0010]为了实现上述目的,本发明第二方面实施例的动态加载语言资源的装置,设置在移动终端上,包括:启动模块,用于启动移动终端中的应用程序;确定模块,用于确定所述启动模块启动的应用程序需要加载语言资源包;发送模块,用于当所述确定模块确定需要加载语言资源包时,如果所述移动终端中不存在可用语言资源包,则向服务器发送获取所述语言资源包的请求;接收模块,用于接收服务器返回的语言资源包;加载模块,用于加载所述接收模块所接收到的语言资源包。
[0011]本发明实施例的动态加载语言资源的装置,在确定模块确定移动终端上启动的应用程序需要加载语言资源包时,发送模块才向服务器发送获取上述语言资源包的请求并由接收模块接收服务器返回的语言资源包,然后加载模块加载接收模块接收到的语言资源包,从而有效减少了本地APK包含的资源,进而有效减小了 APK的体积。
[0012]本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
【附图说明】
[0013]本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
[0014]图1为本发明动态加载语言资源的方法一个实施例的流程图;
[0015]图2为本发明动态加载语言资源的方法另一个实施例的流程图;
[0016]图3为本发明动态加载语言资源的方法中的APK生成过程示意图;
[0017]图4为本发明动态加载语言资源的装置一个实施例的结构示意图;
[0018]图5为本发明移动终端一个实施例的结构示意图。
【具体实施方式】
[0019]下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。相反,本发明的实施例包括落入所附加权利要求书的精神和内涵范围内的所有变化、修改和等同物。
[0020]图1为本发明动态加载语言资源的方法一个实施例的流程图,如图1所示,该动态加载语言资源的方法可以包括:
[0021]步骤101,启动移动终端中的应用程序。
[0022]步骤102,确定上述应用程序需要加载语言资源包。
[0023]具体地,确定上述应用程序需要加载语言资源包可以为:检测到上述应用程序需要加载语言资源,且上述应用程序中未包含所需要加载的语言的种类时,确定上述应用程序需要加载语言资源包。
[0024]步骤103,如果上述移动终端中不存在可用语言资源包,则向服务器发送获取上述语言资源包的请求并接收服务器返回的语言资源包。
[0025]其中,上述服务器可以为云端服务器。
[0026]其中,上述移动终端中不存在可用语言资源包包括:上述移动终端中不存在语言资源包,或者上述移动终端中的语言资源包的版本与上述应用程序的版本不一致。
[0027]具体地,向服务器发送获取所述资语言源包的请求并接收服务器返回的语言资源包可以为:根据上述应用程序的版本信息以及所需要加载的语言的种类生成下载请求,向上述服务器发送上述请求;然后接收上述服务器根据上述请求返回的语言资源包。
[0028]步骤104,加载所接收到的语言资源包。
[0029]具体地,加载语言资源包的步骤可以为:将上述语言资源包与上述应用程序中的资源进行合并加载在内存中。
[0030]更具体地,一种实现方式中,将上述语言资源包与上述应用程序中的资源进行合并加载在内存中可以为:根据上述语言资源包中的第一资源标识与上述应用程序中的第二资源标识的映射关系表,若上述语言资源包中的第一资源标识与上述应用程序中的第二资源标识匹配成功,则将上述语言资源包与上述应用程序中的资源进行合并加载在内存中。
[0031]另一种实现方式中,将上述语言资源包与上述应用程序中的资源进行合并加载在内存中可以为:若上述语言资源包中的第一资源标识与上述应用程序中的第二资源标识相同,则将上述语言资源包与上述应用程序中的资源进行合并加载在内存中。
[0032]在具体实现时,可以通过addAssetPath将语言资源包和原APK资源合并在一起,并加载到内存中。然后使用Java的反射机制,修改android, content, res.Resources类中的mAssets成员,将语言资源包合并到APP的资源中,这样APP就可以显示语言资源包中的字符串了。
[0033]图2为本发明动态加载语言资源的方法另一个实施例的流程图,如图2所示,步骤102之后,还可以包括:
[0034]步骤201,如果上述移动终端中存在可用语言资源包,则直接加载上述可用语言资源包。
[0035]其中,上述移动终端中存在可用语言资源包包括:上述移动终端中存在语言资源包,且上述移动终端中的语言资源包的版本与上述应用程序的版本一致。
[0036]步骤201中加载语言资源包的步骤与步骤104中加载语言资源包的步骤相同,在此不再赘述。
[0037]上述动态加载语言资源的方法中,在确定移动终端上启动的应用程序需要加载语言资源包时,才向服务器发送获取上述语言资源包的请求并接收服务器返回的语言资
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1