专利名称:Apk的开发方法和装置的制作方法
技术领域:
本发明涉及软件开发领域,具体而言,涉及一种APK (Android PacKage,安卓包)的开发方法和装置。
背景技术:
APK的源代码可以分为三部分:Java源代码、AndroidMainfest.xml文件、资源文件。AndroidMainfest.xml文件是APK的全局配置文件,位于APK的根目录下,描述了 APK中的全局数据,包括APK中暴露的组件(activities、services等),以及他们各自的实现类,各种能被处理的数据和启动位置等重要信息。图1示出了 APK的常规编译过程,包括以下步骤:1、通过Java编译器将Java源代码编译成Class字节码,然后再通过Android自带的DX工具,将Class字节码处理为Dex字节码。最后,使用aapt工具将Dex字节码放到APK的根目录;2、使用Android自带的aapt工具将AndroidMainfest.xml文件进行处理,并且放到APK的根目录;3、使用Android自带的aapt工具将资源文件进行处理,并且放到APK的根目录;4、以上三个步骤形成的文件打包得到一个完整的APK。5、对上一步得到的APK进行签名。
发明内容
本发明旨在提供一种APK的开发方法和装置,以重用源代码来开发不同版本的APK。在本发明的实施例中,提供了一种APK的开发方法,包括:替换源工程目录中的资源文件、以及修改源工程目录中的AndroidMainfest.xml文件和Java源代码中记载的通用信息;将资源文件和AndroidMainfest.xml文件放到APK的根目录下、以及将源工程目录中的Java源代码编译成Class字节码,然后将Class字节码处理为Dex字节码,并放到APK的根目录下;将根目录中的Dex字节码、AndroidMainfest.xml文件和资源文件打包得到APK。在本发明的实施例中,提供了一种APK的开发装置,包括:修改模块,用于替换源工程目录中的资源文件、以及修改源工程目录中的AndroidMainfest.xml文件和Java源代码中记载的通用信息;编译模块,用于将资源文件和AndroidMainfest.xml文件放到APK的根目录下、以及将源工程目录中的Java源代码编译成Class字节码,然后将Class字节码处理为Dex字节码,并放到APK的根目录下;打包模块,用于将根目录中的Dex字节码、AndroidMainfest.xml文件和资源文件打包得到APK。本发明上述实施例的APK的开发方法和装置可重用源代码来开发不同版本的APK。
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:图1示出了 APK的常规编译过程;图2示出了根据本发明实施例的APK的开发方法的流程图;图3示出了根据本发明实施例的APK的编译过程;图4示出了根据本发明实施例的APK的开发装置的示意图。
具体实施例方式下面将参考附图并结合实施例,来详细说明本发明。图2示出了根据本发明实施例的APK的开发方法的流程图,包括:步骤S10,替换源工程目录中的资源文件、以及修改源工程目录中的AndroidMainfest.xml文件和Java源代码中记载的通用信息;步骤S20,将资源文件和AndroidMainfest.xm I文件放到APK的根目录下、以及将源工程目录中的Java源代码编译成Class字节码,然后将Class字节码处理为Dex字节码,并放到APK的根目录下;步骤S30,将根目录中的Dex字节码、AndroidMainfest.xml文件和资源文件打包得到APK。本方法通过替换资源文件和修改通用信息,避免了需要全部地重新编写源代码,从而实现了重用源代码来开发不同版本的APK,以满足各种个性化的用户需求。另外,本方法可以很容易地通过计算机编程来实现,从而可以自动地实现各种版本的APK的编译,以减少重复繁琐劳动,方便开发者对编译记录进行查询和统计。优选地,资源文件包括图片资源如LOGO等。图片资源是比较典型的个性化需求。优选地,步骤S20包括:根据用户的要求,设置通用信息中的服务器地址、APK名称和package name。修改服务器地址、APK名称和package name是比较典型的个性化需求。优选地,本方法还包括:对APK进行签名。这可以增强APK的安全性。优选地,本方法还包括:对签名的APK检查完整性。这可以增强APK的安全性。图3示出了根据本发明实施例的APK的编译过程,与图1相比较,本方法增加了替换图片资源和配置信息的步骤、以及替换Java源代码中的APK名称和AndroidMainfest.xml文件中的APK名称的步骤。图4示出了根据本发明实施例的APK的开发装置的示意图,包括:修改模块10,用于替换源工程目录中的资源文件、以及修改源工程目录中的AndroidMainfest.xml文件和Java源代码中记载的通用信息;编译模块20,用于将资源文件和AndroidMainfest.xml文件放到APK的根目录下、以及将源工程目录中的Java源代码编译成Class字节码,然后将Class字节码处理为Dex字节码,并放到APK的根目录下;打包模块30,用于将根目录中的Dex字节码、AndroidMainfest.xml文件和资源文件打包得到APK。本装置可重用源代码来开发不同版本的APK。
优选地,资源文件包括图片资源。图片资源是比较典型的个性化需求。优选地,修改模块用于根据用户的要求,设置通用信息中的服务器地址、APK名称和Package name。修改服务器地址、APK名称和package name是比较典型的个性化需求。优选地,本装置还包括:签名模块,用于对APK进行签名。这可以增强APK的安全性。优选地,本装置还包括:检查模块,用于对签名的APK检查完整性。这可以增强APK的安全性。从以上的描述中可以看出,本发明可以为重用源代码以开发不同版本的APK节约时间,提高了编译个性化APK的效率。显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种APK的开发方法,其特征在于,包括: 替换源工程目录中的资源文件、以及修改所述源工程目录中的AndroidMainfest.xml文件和Java源代码中记载的通用信息; 将所述资源文件和所述AndroidMainfest.xml文件放到所述APK的根目录下、以及将所述源工程目录中的Java源代码编译成Class字节码,然后将所述Class字节码处理为Dex字节码,并放到所述APK的根目录下; 将所述根目录中的所述Dex字节码、所述AndroidMainfest.xml文件和所述资源文件打包得到APK。
2.根据权利要求1所述的方法,其特征在于,所述资源文件包括图片资源。
3.根据权利要求1所述的方法,其特征在于,修改所述源工程目录中的AndroidMainfest.xml文件和Java源代码中记载的通用信息包括: 根据用户的要求,设置所述通用信息中的服务器地址、APK名称和package name。
4.根据权利要求1所述的方法,其特征在于,还包括: 对所述APK进行签名。
5.根据权利要求4所述的方法,其特征在于,还包括: 对所述签名的APK检查完整性。
6.一种APK的开发装置,其特征在于,包括: 修改模块,用于替换源工程目录中的资源文件、以及修改所述源工程目录中的AndroidMainfest.xml文件和Java源代码中记载的通用信息; 编译模块,用于将所述资源文件和所述AndroidMainfest.xml文件放到所述APK的根目录下、以及将所述源工程目录中的Java源代码编译成Class字节码,然后将所述Class字节码处理为Dex字节码,并放到所述APK的根目录下; 打包模块,用于将所述根目录中的所述Dex字节码、所述AndroidMainfest.xml文件和所述资源文件打包得到APK。
7.根据权利要求6所述的装置,其特征在于,所述资源文件包括图片资源。
8.根据权利要求6所述的装置,其特征在于,所述修改模块用于根据用户的要求,设置所述通用信息中的服务器地址、APK名称和package name。
9.根据权利要求6所述的装置,其特征在于,还包括: 签名模块,用于对所述APK进行签名。
10.根据权利要求9所述的装置,其特征在于,还包括: 检查模块,用于对所述签名的APK检查完整性。
全文摘要
本发明提供了一种APK的开发方法和装置,方法包括替换源工程目录中的资源文件、以及修改源工程目录中的AndroidMainfest.xml文件和Java源代码中记载的通用信息;将资源文件和AndroidMainfest.xml文件放到APK的根目录下、以及将源工程目录中的Java源代码编译成Class字节码,然后将Class字节码处理为Dex字节码,并放到APK的根目录下;将根目录中的Dex字节码、AndroidMainfest.xml文件和资源文件打包得到APK。本发明可以重用源代码来开发不同版本的APK。
文档编号G06F9/45GK103186380SQ20111046166
公开日2013年7月3日 申请日期2011年12月31日 优先权日2011年12月31日
发明者刘存栋, 纪永凤, 王玮 申请人:北大方正集团有限公司, 北京北大方正电子有限公司