一种安卓开发包的打包系统和方法

文档序号:6525054阅读:226来源:国知局
一种安卓开发包的打包系统和方法
【专利摘要】本发明公开了一种安卓开发包的打包系统和方法,系统包括:代码库单元,用于构建数据包打包的编译运行环境;包名获取单元,用于获取用户输入的新包名和需要更改的jar包信息;源代码更改和打包单元,用于将SDK源代码中涉及原jar包的包名的关键字都更改为新包名,并根据新的源代码生成新的jar包并存储;调用命名空间变更单元,用于更改SDK本地C源代码文件中的JNI调用命名空间,将涉及到原jar包的包名关键词更换为新包名;本地代码库生成单元,用于根据更改后本地C源代码文件编译成新的本地代码库并进行存储,然后将新生成的本地代码库添加到所述新jar包中;混淆单元,用于根据所述新jar包和本地代码库混淆生成新的安卓开发包。其节省了开发者的重复劳动且能自动执行。
【专利说明】一种安卓开发包的打包系统和方法
【技术领域】
[0001]本发明属于计算机领域,涉及一种安卓SDK开发包的打包方法和系统。
【背景技术】
[0002]随着安卓手机的防病毒技术的发展,目前,如果在Android SDK的应用程序中嵌入特定的包名的jar包,很容易被防病毒软件检测出来有广告,其原理主要基于检测应用程序安装包的源代码中的包名是否有一些关键字而得出,此时,一般需要重新更改jar包的包名。
[0003]但是,目前重新更改jar包的包名,需要人工进行拆包和打包,其相对来说较为复杂。

【发明内容】

[0004]本发明所要解决的技术问题是提供能够自动进行更改包名的安卓开发包的打包方法,该方法节省了开发者的重复劳动,且能够自动执行,此外,还公开了一种安卓开发包的打包系统。
[0005]本发明解决上述技术问题所采取的技术方案如下:
[0006]—种安卓开发包的打包系统,包括:
[0007]代码库单元,用于构建数据包打包的编译运行环境;
[0008]包名获取单元,用于获取用户输入的新包名和需要更改的jar包信息;
[0009]源代码更改和打包单元,用于将SDK源代码中涉及原jar包的包名的关键字都更改为新包名,并根据新的源代码生成新的jar包并存储;
[0010]调用命名空间变更单元,用于更改SDK本地C源代码文件中的JNI调用命名空间,将涉及到原jar包的包名关键词更换为新包名;
[0011]本地代码库生成单元,用于根据更改后本地C源代码文件编译成新的本地代码库并进行存储,然后将新生成的本地代码库添加到所述新jar包中;
[0012]混淆单元,用于根据所述新jar包和本地代码库混淆生成新的安卓开发包。
[0013]优选的是,还设有:查询单元,用于查询当前的编译运行环境是否满足设定;其中,当不满足,则通知所述代码库单元重新构建数据包打包的编译运行环境。
[0014]优选的是,编译运行环境包括:用于构建用来编译jar包的Java编译运行环境;
[0015]用于构建用于编译本地代码库的Cygwin环境;
[0016]用于编译本地代码的的Android NDK开发环境;以及用于混淆jar包和本地代码库的Proguard环境。
[0017]优选的是,进一步包括:
[0018]文件存储单元,用于存储所述源代码更改和打包单元生成的新的jar包文件,以及存储所述本地代码库生成单元生成的新的本地代码库文件。
[0019]一种安卓开发包的打包方法,包括:[0020]构建数据包打包的编译运行环境;
[0021]获取用户输入的新包名和需要更改的jar包信息;
[0022]将SDK源代码中涉及原jar包的包名的关键字都更改为新包名,并根据新的源代码生成新的jar包并存储;
[0023]更改SDK本地C源代码文件中的JNI调用命名空间,将涉及到原jar包的包名关键词更换为新包名;
[0024]根据更改后本地C源代码文件编译成新的本地代码库并进行存储,然后将新生成的本地代码库添加到所述新jar包中;
[0025]据所述新jar包和本地代码库混淆生成新的安卓开发包。
[0026]优选的是,还设有:查询当前的编译运行环境是否满足设定;其中,当不满足,则重新构建数据包打包的编译运行环境。
[0027]优选的是,编译运行环境包括:用于构建用来编译jar包的Java编译运行环境;
[0028]用于构建用于编译本地代码库的Cygwin环境;
[0029]用于编译本地代码的的Android NDK开发环境;以及用于混淆jar包和本地代码库的Proguard环境。
[0030]优选的是,将所述源代码更改和打包单元生成的新的jar包文件存储于新的文件夹中,所述新的本地代码库文件也存放于所述新的文件夹中。
[0031]采取了上述方案以后,能够自动地根据用户输入的新包名和需要更改的jar包信息进行SDK开发包的重新打包,其节省了开发者的重复劳动,且能够自动执行,具有较好的效果。
[0032]本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
【专利附图】

【附图说明】
[0033]下面结合附图对本发明进行详细的描述,以使得本发明的上述优点更加明确。其中,
[0034]图1是本发明安卓开发包的打包方法的流程示意图;
[0035]图2是本发明安卓开发包的打包方法的结构示意图。
【具体实施方式】
[0036]以下将结合附图及实施例来详细说明本发明的实施方式,借此对本发明如何应用技术手段来解决技术问题,并达成技术效果的实现过程能充分理解并据以实施。需要说明的是,只要不构成冲突,本发明中的各个实施例以及各实施例中的各个特征可以相互结合,所形成的技术方案均在本发明的保护范围之内。
[0037]另外,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
[0038]如图1所示,所述安卓开发包的打包方法,主要包括:[0039]步骤101:构建数据包打包的编译运行环境;其中,优选的实施例中,编译运行环境包括:用于构建用来编译扣!'包的拓妨编译运行环境;用于构建用于编译本地代码库的078^111环境;用于编译本地代码的的八^01(开发环境;以及用于混淆扣!"包和本地代码库的环境。
[0040]步骤102:获取用户输入的新包名和需要更改的扣!'包信息;例如,用户输入要更改的包名(60111.8(10.即,以及更改后的包名,比如(30111.1:606111:.即,
[0041]步骤103:查询当前的编译运行环境是否满足设定;其中,当不满足,则重新构建数据包打包的编译运行环境。
[0042]步骤104:将301(源代码中涉及原扣I'包的包名的关键字都更改为新包名,并根据新的源代码生成新的包并存储;
[0043]例如,通过调用扣妨的编译和打包命令把更改过包名的源代码打成新扣!'包并存储,且这些新的'包文件为多个,并存储于一个新的文件夹中;
[0044]步骤104:更改301(本地0源代码文件中的邛I调用命名空间,将涉及到原扣!'包的包名关键词更换为新包名;
[0045]步骤105:根据更改后本地0源代码文件编译成新的本地代码库并进行存储,然后将新生成的本地代码库添加到所述新扣!'包中;
[0046]步骤106:根据所述新扣!'包和本地代码库混淆生成新的安卓开发包。
[0047]例如,根据预设的混淆策略文件调用打包功能命令把之前新生成的包和本地代码库混淆生成最终的新的开发包
[0048]且根据上面的描述,将所述源代码更改和打包单元生成的新的扣!'包文件存储于新的文件夹中,所述新的本地代码库`文件也存放于所述新的文件夹中。
[0049]采取了上述方案以后,能够自动地根据用户输入的新包名和需要更改的扣I'包信息进行301(开发包的重新打包,其节省了开发者的重复劳动,且能够自动执行,具有较好的效果。
[0050]如图2所示,是本发明安卓开发包的打包方法的结构示意图,如图2所示,所述系统,主要包括:
[0051]代码库单元,用于构建数据包打包的编译运行环境;
[0052]包名获取单元,用于获取用户输入的新包名和需要更改的包信息;
[0053]源代码更改和打包单元,用于将301(源代码中涉及原扣!'包的包名的关键字都更改为新包名,并根据新的源代码生成新的扣I'包并存储;
[0054]调用命名空间变更单元,用于更改301(本地0源代码文件中的邛I调用命名空间,将涉及到原扣!'包的包名关键词更换为新包名;
[0055]本地代码库生成单元,用于根据更改后本地源代码文件编译成新的本地代码库并进行存储,然后将新生成的本地代码库添加到所述新扣I'包中;
[0056]混淆单元,用于根据所述新扣!'包和本地代码库混淆生成新的安卓开发包。
[0057]优选的是,还设有:查询单元,用于查询当前的编译运行环境是否满足设定;其中,当不满足,则通知所述代码库单元重新构建数据包打包的编译运行环境。
[0058]优选的是,编译运行环境包括:用于构建用来编译扣I'包的拓妨编译运行环境;
[0059]用于构建用于编译本地代码库的即化环境;[0060]用于编译本地代码的的Android NDK开发环境;以及用于混淆jar包和本地代码库的Proguard环境。
[0061]优选的是,进一步包括:
[0062]文件存储单元,用于存储所述源代码更改和打包单元生成的新的jar包文件,以及存储所述本地代码库生成单元生成的新的本地代码库文件。
[0063]本发明系统具有方法相同的技术效果,即其能够自动地根据用户输入的新包名和需要更改的jar包信息进行SDK开发包的重新打包,其节省了开发者的重复劳动,且能够自动执行,具有较好的效果。
[0064]需要说明的是,对于上述方法实施例而言,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
[0065]本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。
[0066]而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
[0067]最后应说明的是:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【权利要求】
1.一种安卓开发包的打包系统,其特征在于,包括: 代码库单元,用于构建数据包打包的编译运行环境; 包名获取单元,用于获取用户输入的新包名和需要更改的扣!'包信息; 源代码更改和打包单元,用于将301(源代码中涉及原扣!'包的包名的关键字都更改为新包名,并根据新的源代码生成新的扣I'包并存储; 调用命名空间变更单元,用于更改301(本地(:源代码文件中的邛I调用命名空间,将涉及到原'包的包名关键词更换为新包名; 本地代码库生成单元,用于根据更改后本地源代码文件编译成新的本地代码库并进行存储,然后将新生成的本地代码库添加到所述新扣I'包中; 混淆单元,用于根据所述新扣!'包和本地代码库混淆生成新的安卓开发包。
2.根据权利要求1所述的安卓开发包的打包系统,其特征在于,还设有:查询单元,用于查询当前的编译运行环境是否满足设定;其中,当不满足,则通知所述代码库单元重新构建数据包打包的编译运行环境。
3.根据权利要求1或2所述的安卓开发包的打包系统,其特征在于,编译运行环境包括:用于构建用来编译包的了编译运行环境; 用于构建用于编译本地代码库的II环境; 用于编译本地代码的的冊1(开发环境;以及用于混淆扣!'包和本地代码库的
环境。
4.根据权利要求3所述的安卓开发包的打包系统,其特征在于,进一步包括: 文件存储单元,用于存储所述源代码更改和打包单元生成的新的扣I'包文件,以及存储所述本地代码库生成单元生成的新的本地代码库文件。
5.一种安卓开发包的打包方法,其特征在于,包括: 构建数据包打包的编译运行环境; 获取用户输入的新包名和需要更改的扣!'包信息; 将301(源代码中涉及原扣!'包的包名的关键字都更改为新包名,并根据新的源代码生成新的包并存储; 更改301(本地源代码文件中的邛I调用命名空间,将涉及到原扣!'包的包名关键词更换为新包名; 根据更改后本地源代码文件编译成新的本地代码库并进行存储,然后将新生成的本地代码库添加到所述新'包中; 据所述新扣!'包和本地代码库混淆生成新的安卓开发包。
6.根据权利要求5所述的安卓开发包的打包方法,其特征在于,还设有:查询当前的编译运行环境是否满足设定;其中,当不满足,则重新构建数据包打包的编译运行环境。
7.根据权利要求5或6所述的安卓开发包的打包方法,其特征在于,编译运行环境包括:用于构建用来编译包的了编译运行环境; 用于构建用于编译本地代码库的II环境; 用于编译本地代码的的冊1(开发环境;以及用于混淆扣!'包和本地代码库的
环境。
8.根据权利要求7所述的安卓开发包的打包系统,其特征在于,将所述源代码更改和打包单元生成的新的jar包文件存储于新的文件夹中,所述新的本地代码库文件也存放于所述新的文件夹中。
【文档编号】G06F9/44GK103838572SQ201310714631
【公开日】2014年6月4日 申请日期:2013年12月20日 优先权日:2013年12月20日
【发明者】范振江, 吴远青, 王玮, 潘腾, 王旭东, 郭伟 申请人:北京掌阔技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1