基于overlay机制的APK开发方法及系统的制作方法

文档序号:10552705阅读:622来源:国知局
基于overlay机制的APK开发方法及系统的制作方法
【专利摘要】本发明实施例提供一种基于overlay机制的APK开发方法,包括:根据对应于需修改的代码文件的待开发Android工程的源工程目录生成overlay目录,并预存新代码文件至overlay目录下;为需修改的代码文件添加overlay机制可识别的资源信息标识;基于overlay机制以根据overlay目录和资源信息标识将需修改的代码文件替换为新代码文件;基于包含了新代码文件的待开发Android工程生成APK。本发明实施例还提供一种基于overlay机制的APK开发系统。使overlay机制所能执行替换的代码文件不限于待开发Android工程中的资源代码文件,还能够是待开发Android工程中的其他非资源代码文件,实现了overlay机制应用的扩展。
【专利说明】
基于over I ay机制的APK开发方法及系统
技术领域
[000?]本发明实施例涉及软件开发技术领域,尤其涉及一种基于overlay机制的APK开发方法及系统。
【背景技术】
[0002]随着科技的飞速发展,移动应用在人们生活中的应用越来越广泛。伴随而来的移动应用开发的所应用的代码也越来越复杂,由此给开发人员所带来的代码维护的压力也越来越大。overlay机制的出现很好的减缓了上述代码维护的压力,Android overlay机制允许在不修改packages中apk的情况下,来自定义framework和package中的资源文件,方便了研发人员重复调用已开发的程序代码文件。
[0003 ]但是现有技术中的overl ay机制只能针对资源文件作进一步的替换,APK中的源码可分为三部分,即Ja V a源代码文件、Andro idManif est.xml文件、资源文件。其中AndroidManifest.xml文件是APK的全局配置文件,位于APK的根目录下,每一个Android项目都包含一个Manif est文件,AndroidManif est.xml文件描述了 APK中的全局数据,包括APK中暴露的组(activities、services等),以及他们各自的实现类,各种能被处理的数据和启动位置等重要信息。当对APK进行进一步的开发时(可以是功能的完善升级的APK 二次开发,针对不同芯片型号的适用APK的开发),无论何时,只要新建了基本构件(活动、服务、广播接收器,或者内容提供器),就要修改manifest文件Android Manifest.xml,添加相应的声明。需要将新定义的活动PrefsActi vity注册到manifest文件。现有技术中对manifest文件的修改都是基于程序代码的修改,无法利用原生的overlay机制实现manifest文件的替换;同理在现有技术中,针对JAVA源代码文件也只是程序代码的修改,也无法利用overlay机制执行JAVA源代码文件的替换,大大增大了代码维护的成本。
[0004]在一种情况下,人们对应用程序的用户体验要求越来越高。为了适应日益激烈的市场竞争,在制作应用程序APK时,网络运营公司会针对不同的Android机型定制开发出相应的APK,例如,为大陆版的移动应用配置一定的功能,在为香港版的移动应用配置不一样的功能以适合不同的用户群体;或者在指定的Android机器上实现特有的功能,故网络运营商需要为不同的Android机器开发不一样的APK;但是Android机型种类众多,研发人员可能需要对每一 Android机型所对应的APK作出相应的程序代码的修改,大大增大了APK的制作开发为研发人员带来的压力。

【发明内容】

[0005]本发明实施例提供一种基于overlay机制的APK开发方法及系统,用以解决上述现有技术中所阐述的至少一个技术问题。
[0006]—方面,本发明实施例提供一种基于overlay机制的APK开发方法,包括:
[0007]至少根据对应于需修改的代码文件的待开发Android工程的源工程目录生成overlay目录,并预存新代码文件至所述over lay目录下;
[0008]为所述需修改的代码文件添加overlay机制可识别的资源信息标识;
[0009]基于overlay机制以根据所述overlay目录和所述资源信息标识将所述需修改的代码文件替换为所述新代码文件;
[0010]基于包含了所述新代码文件的待开发Android工程生成APK。
[0011]另一方面,本发明提供一种基于overlay机制的APK开发系统,包括:
[0012]overlay目录生成单元,用于至少根据对应于需修改的代码文件的待开发Android工程的源工程目录生成over lay目录;
[0013]新代码文件部署单元,用于预存新代码文件至所述overlay目录下;
[0014]资源标识添加单元,用于为所述需修改的代码文件添加overlay机制可识别的资源信息标识;
[0015]overlay机制执行单元,用于基于overlay机制以根据所述overlay目录和所述资源信息标识将所述需修改的代码文件替换为所述新代码文件;
[0016]APK合成单元,用于基于包含了所述新代码文件的待开发Android工程生成APK。
[0017]通过本发明实施例提供的一种基于overlay机制的AH(开发方法,实现了利用overlay机制完成对待开发Android工程中需修改的代码文件的替换,并且由于为待开发Android工程中需修改的代码文件添加了资源信息标识,使得overlay机制所能执行替换的代码文件不限于待开发Android工程中的资源代码文件,还可以是待开发Android工程中的其他非资源代码文件,实现了利用overlay机制替换待开发Android工程中需修改的代码文件,并且由于为待开发Android工程中需修改的代码文件添加了资源信息标识,使得overlay机制所能执行替换的代码文件不限于待开发Android工程中的资源代码文件,还能够是待开发Android工程中的其他非资源代码文件,实现了 overlay机制应用的扩展。
【附图说明】
[0018]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0019]图1示出的是本发明一实施例的一种基于overlay机制的APK开发方法的流程图;
[0020]图2示出的是本发明一实施例的一种基于overlay机制的APK开发系统的结构示意图。
【具体实施方式】
[0021]为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0022]参见图1示出的是本发明一实施例的一种基于overlay机制的APK开发方法,包括:
[0023]SI 1:至少根据对应于需修改的代码文件的待开发Android工程的源工程目录生成overlay目录,并预存新代码文件至over lay目录下;
[0024]S12:为需修改的代码文件添加overlay机制可识别的资源信息标识;
[0025]S13:基于overlay机制以根据上述overlay目录和上述资源信息标识将需修改的代码文件替换为新代码文件;
[0026]S14:基于包含了新代码文件的待开发Android工程生成APK。
[0027 ] 应当说明的是,上述待开发Andro id工程可以是新建的Andro id工程,也可以是待升级的APK所对应的Android工程。
[0028]通过本发明实施例提供的一种基于overlay机制的AH(开发方法,实现了利用overlay机制完成对待开发Android工程中需修改的代码文件的替换,并且由于为待开发Android工程中需修改的代码文件添加了资源信息标识,使得overlay机制所能执行替换的代码文件不限于待开发Android工程中的资源代码文件,还可以是待开发Android工程中的其他非资源代码文件,实现了利用overlay机制替换待开发Android工程中需修改的代码文件,并且由于为待开发Android工程中需修改的代码文件添加了资源信息标识,使得overlay机制所能执行替换的代码文件不限于待开发Android工程中的资源代码文件,还能够是待开发Android工程中的其他非资源代码文件,实现了 overlay机制应用的扩展。
[0029]作为本发明实施例方法的一种优选实施例,资源信息标识用于在基于overlay机制以根据上述overlay目录和上述资源信息标识将需修改的代码文件替换为新代码文件时识别需修改的代码文件为资源文件。
[°03°]通过本发明实施例方法,实现了在编译待开发Andro id工程的过程中利用over lay机制将需修改的代码文件替换掉,上述需修改的代码文件包含非资源文件以间接实现了overlay机制应用的扩展。
[0031]关于本发明优选实施例方法的具体的实施,可以是直接修改需修改的代码文件的文件属性,将上述需修改的代码文件修改为资源文件。
[0032 ]关于本发明优选实施例方法的具体的实施,还可以包括如下步骤:
[0033]确定待开发Android工程下的关于资源代码文件的编译配置信息为第一编译配置信息;
[0034]确定待开发Android工程下需修改代码文件的编译配置信息为第二编译配置信息;
[0035]利用上述第一编译配置信息和上述第二编译配置信息重新确定需修改代码文件的编译信息。
[0036]作为上述具体实施例的进一步优化,上述步骤利用上述第一编译配置信息和上述第二编译配置信息重新确定需修改代码文件的编译配置信息,可以但不限定是利用上述第一编译配置信息替换上述第二编译配置信息。
[0037]关于上述具体实施例,更具体地,上述编译配置信息可以是根据Android.mk文件所确定的,具体的执行可以是拷贝Android.mk文件下相应代码文件的编译配置信息。通过修改编译配置信息实现了在编译待开发Android工程的过程中将需修改的代码文件替换掉,当开发人员制作APK时只需要针对Android.mk的编译配置信息,而不用对需修改的代码文件做代码逻辑的修改,操作实现更加方便。应当说明的是,可以将Android.mk文件理解为一种用于编译配置的Makefile文件,它保存着如何编译的配置信息,即指导编译器如何来编译程序,并决定编译的结果是如何;同时,可以在一个Android.mk文件中定义一个或多个模块,也可以利用几个模块中使用同一个源代码文件,编译系统会根据Android.mk文件下所定义的模块去执行编译过程中许多细节问题。
[0038]作为本发明实施例方法的一种优选实施例,至少根据对应于需修改的代码文件的待开发Android工程的源工程目录生成overlay目录包括:根据设备型号和对应于需修改的代码文件的待开发Android工程的源工程目录生成overlay目录。
[0039]通过本发明优选实施例方法,实现了利用overlay机制对多种设备型号所对应的APK的开发。
[0040]作为本发明实施例方法的一种优选实施例,基于overlay机制以根据上述overlay目录和上述资源信息标识将需修改的代码文件替换为新代码文件包括:
[0041]确定待开发Android工程所对应的设备型号为目标设备型号;
[0042]基于overlay机制以根据上述overlay目录和上述资源信息标识将需修改的代码文件替换为相应于目标设备型号的新代码文件。
[0043]通过本发明优选实施例方法,实现了利用overlay机制对多种设备型号所对应的APK的开发;当不同设备型号之间的代码文件可以互用时,可以基于overlay机制重复利用代码文件,避免了在开发多种设备型号所对应的APK的过程中重复编写同一代码文件;更进一步地,由于将设备型号作为overlay机制的所识别执行的目录之一,避免了在存在多个设备型号时代码文件的错误替换。
[0044]作为进一步的优化,上述设备型号包括芯片型号和/或Android机型。
[0045]应当说明的是,一方面,上述芯片型号和Android机型可以是各种主流的芯片和Android机型,例如,上述芯片型号包括高通芯片和联发科芯片等多种类型的芯片型号;另一方面,上述Android机型和/或芯片型号为待开发的APK所指定的Android机型和/或芯片型号的所定制的APK。
[0046]通过本发明优选实施例方法,实现了利用over lay机制对Andro id机型和/或芯片型号的定制APK的开发。
[0047]作为本发明实施例方法的一种优选实施例,上述需修改的代码文件为AndroidManifest.xml文件和/或Java源代码文件。
[0048]应当说明的是,APK中的源代码文件可分为三部分,即Java源代码文件、AndroidManifest.xml文件、资源文件,在现有技术中的利用over lay机制只能针对APK中的资源文件进行替换,无法实现对Java源代码文件和Manifest文件的替换。
[0049]通过本发明优选实施例方法,实现了利用overlay机制针对除资源文件之外的Java源代码文件和/或AndroidManifest.xml文件进行替换,通过本发明实施例方法相比于现有技术实现了开发人员在开发APK时不需要修改Java源代码文件和/或manifest文件中的程序代码,就能实现manifest文件的更换,能够在理论上消除因人工错误Java源代码文件和/或manifest文件所导致的APK开发错误;并且,实现了可利用overlay机制完成对APK中所有代码文件的开发,大大降低了代码维护的成本。
[0050]在本发明实施例方法的一种具体实施例中,将本发明实施例方法应用于网络运营商针对APK的版本升级,相对应地上述所生成的APK为升级APK,相对应的上述待开发Android工程为待升级的原始APK所对应的Android工程;
[0051 ]反编译原始APK,获取原始APK所对应的原始Android工程、需修改的代码文件和上述原始Android工程中的源工程目录,
[0052]应当解释的是,需修改的代码文件可以是manifest文件、JAVA源代码文件和/或资源代码文件;
[0053]根据升级的功能需要,网络运营商预先准备好相应的新代码文件,
[0054]应当解释的是,上述新代码文件可以是网络运营商在升级APK之前就存在的代码文件,也可以是网络运营商针对原始APK升级所编写开发的代码文件;
[0055]获取各需修改的代码文件在源工程目录的目录信息,并将上述目录信息拷贝至overlay的目录下;
[0056]为上述需修改的代码文件添加overlay机制可识别执行的资源信息标识,
[0057]应当解释的是,关于为需修改的代码文件添加资源信息标识的实现方式,更具体地,可以但不限定是:拷贝上述原始Android工程下的Android, mk文件中的对应于资源文件的第一编译路径信息,确定上述原始Android工程下的Android.mk文件中的上述需修改的代码文件的第二编译路径信息,利用第一编译路径信息替换上述第二编译路径信息;通过将资源代码文件的编译路径信息确定为新代码的编译路径信息,使得在Android.mk文件编译的过程中,利用新代码文件替换需修改的代码文件;
[0058]基于overlay机制的上述overlay目录利用上述新代码文件替换上述需修改的代码文件;
[°°59] 至少基于上述待升级Android工程中的新代码文件生成APK,
[0000]应当说明的是,本发明具体实施例中的新代码文件可以是包含man if est文件、JAVA源代码文件和资源文件的所有类型的代码文件,也可以只是包含一部分代码文件的替换;进一步地,根据原始Android工程下已替换的代码文件和未替换的代码文件一起打包生成升级的APK。
[0061]关于本具体实施方法的应用,不应限定在针对APK的升级上,也可以应用在基于对新建的Andro i d工程所对应的APK的开发。
[0062]关于本具体实施例的进一步优化,上述待升级APK为多种Android机型所对应的APK中的其中一个,和上述待升级APK与上述升级APK对应于同一Android机型,则根据各Android机型所对应的原始Android工程的源工程目录生成包含有与源工程目录相对应的Android机型的overlay目录,进一步地基于overlay机制的上述overlay目录利用上述新代码文件替换对应于相同Andro id机型的源工程目录下的代码文件。由于不同的Android机型之间的相同的代码文件会很多,通过本具体实施例就可以实现多Android机型APK之间的代码文件的共享;在本发明具体实施例应用的一方面,当为同一网络运营商的APP开发多种版本以满足多种不同用户需求时,例如乐视视频app的大陆版与香港版或者乐视视频VIP版本和乐视视频普通版本,由于同一网络运营商的APP公共的代码文件会很多,通过本具体实施例可以根据已经编写调试成功的代码文件并利用overlay机制的扩展实现将APK中所有代码文件替换掉,而不用针对代码文件的逻辑代码做修改编写,大大降低了代码维护的成本。
[0063]关于本具体实施例的进一步优化,APK所对应的设备型号也可以是芯片型号,例如开发适用于高通芯片、联发科芯片等芯片型号的乐视视频app,虽然不同芯片型号所对应的APK有些代码不一样,但是依旧存在很多功能代码都是相同重复的。若将符合某一芯片型号的APK确定为一个平台,通过本发明优选具体实施例方法,实现了对多平台所对应的APK在开发过程中的包含manifest代码文件和JAVA源代码文件的共享。
[0064]在本发明实施例方法应用的一方面,本发明实施例方法可以应用在APK开发领域,尤其当应用在大型网络运营公司时,可以大大降低大型网络运营公司开发APK时的代码维护成本。
[0065]参见图2示出的是本发明一实施例的本发明一实施例的一种基于overlay机制的APK开发系统的结构示意图,包括:
[ΟΟ??] overlay目录生成单元,用于至少根据对应于需修改的代码文件的待开发Android工程的源工程目录生成over lay目录;
[0067]新代码文件部署单元,用于预存新代码文件至overlay目录下;
[0068]资源标识添加单元,用于为需修改的代码文件添加overlay机制可识别的资源信息标识;
[0069]overlay机制执行单元,用于基于overlay机制以根据overlay目录和资源信息标识将需修改的代码文件替换为新代码文件;
[0070]APK合成单元,用于基于包含了新代码文件的待开发Android工程生成APK。
[0071]通过本发明实施例提供的一种基于overlay机制的AH(开发系统,实现了利用overlay机制完成对待开发Android工程中需修改的代码文件的替换,并且由于为待开发Android工程中需修改的代码文件添加了资源信息标识,使得overlay机制所能执行替换的代码文件不限于待开发Android工程中的资源代码文件,还可以是待开发Android工程中的其他非资源代码文件,实现了 overlay机制应用的扩展;与现有技术中直接修改非资源代码文件中的程序代码相比,实现了可重复利用同一非资源代码文件,减轻了开发人员制作APK时的压力,降低了代码文件的维护成本,并且从理论上消除了在开发人员制作APK时因修改程序代码时的个人失误所导致的APK开发错误。
[0072]作为本发明实施例系统的一种优选实施例,资源信息标识用于在基于overlay机制以根据overlay目录和资源信息标识将需修改的代码文件替换为新代码文件时识别需修改的代码文件为资源文件。
[0073]通过本发明优选实施例系统,实现了在编译待开发Android工程的过程中利用overlay机制将需修改的代码文件替换掉,上述需修改的代码文件包含非资源文件以间接实现了 overlay机制应用的扩展。
[0074]作为本发明实施例系统的一种优选实施例,overlay目录生成单元用于根据设备型号和对应于需修改的代码文件的待开发Android工程的源工程目录生成overlay目录。
[0075]通过本发明优选实施例系统,实现了利用overlay机制对多种设备型号所对应的APK的开发。
[0076]作为本发明实施例系统的一种优选实施例,overlay机制执行单元还用于确定待开发Android工程所对应的设备型号为目标设备型号,并基于overlay机制以根据overlay目录和资源信息标识将需修改的代码文件替换为相应于目标设备型号的新代码文件。
[0077]通过本发明优选实施例系统,实现了利用overlay机制对多种设备型号所对应的APK的开发;当不同设备型号之间的代码文件可以互用时,可以基于overlay机制重复利用代码文件,避免了在开发多种设备型号所对应的APK的过程中重复编写同一代码文件;更进一步地,由于将设备型号作为overlay机制的所识别执行的目录之一,避免了在存在多个设备型号时代码文件的错误替换。
[0078]作为本发明实施例系统的一种优选实施例,需修改的代码文件为AndroidManifest.xml文件和/或Java源代码文件。
[0079]通过本发明优选实施例系统,实现了利用overlay机制针对除资源文件之外的Java源代码文件和/或AndroidManifest.xml文件进行替换,通过本发明实施例方法相比于现有技术实现了开发人员在开发APK时不需要修改Java源代码文件和/或manifest文件中的程序代码,就能实现manifest文件的更换,能够在理论上消除因人工错误Java源代码文件和/或manifest文件所导致的APK开发错误;并且,实现了可利用overlay机制完成对APK中所有代码文件的开发,大大降低了代码维护的成本。
[0080]需要说明的是,在不冲突的情况下,本申请中的实施方式及实施方式中所涉及到的技术特征彼此之间可以相互组合。
[0081 ]本发明实施例中可以通过硬件处理器来实现相关功能模块和单元。
[0082 ]在本发明实施例系统应用的一方面,本发明实施例系统可以应用在APK开发领域,尤其是搭建在大型网络运营公司所部署的代码开发平台上,可以大大降低大型网络运营公司开发APK时的代码维护成本。
[0083]以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
[0084]通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如R0M/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
[0085]最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
【主权项】
1.一种基于over lay机制的APK开发方法,包括: 至少根据对应于需修改的代码文件的待开发Android工程的源工程目录生成overlay目录,并预存新代码文件至所述over lay目录下; 为所述需修改的代码文件添加overlay机制可识别的资源信息标识; 基于overlay机制以根据所述overlay目录和所述资源信息标识将所述需修改的代码文件替换为所述新代码文件; 基于包含了所述新代码文件的待开发Android工程生成APK。2.根据权利要求1所述的方法,其中,所述资源信息标识用于在基于overlay机制以根据所述overlay目录和所述资源信息标识将所述需修改的代码文件替换为所述新代码文件时识别所述需修改的代码文件为资源文件。3.根据权利要求1所述的方法,其中,所述至少根据对应于需修改的代码文件的待开发Android工程的源工程目录生成overlay目录包括:根据设备型号和所述对应于需修改的代码文件的待开发Android工程的源工程目录生成所述overlay目录。4.根据权利要求3所述的方法,其中,所述基于overlay机制以根据所述overlay目录和所述资源信息标识将所述需修改的代码文件替换为所述新代码文件包括: 确定待开发Android工程所对应的设备型号为目标设备型号; 基于overlay机制以根据所述overlay目录和所述资源信息标识将所述需修改的代码文件替换为相应于所述目标设备型号的新代码文件。5.根据权利要求1-4任一项所述的方法,其中,所述需修改的代码文件为AndroidManifest.xml文件和/或Java源代码文件。6.—种基于overlay机制的APK开发系统,包括: overlay目录生成单元,用于至少根据对应于需修改的代码文件的待开发Android工程的源工程目录生成overlay目录; 新代码文件部署单元,用于预存新代码文件至所述over lay目录下; 资源标识添加单元,用于为所述需修改的代码文件添加overlay机制可识别的资源信息标识; overlay机制执行单元,用于基于overlay机制以根据所述overlay目录和所述资源信息标识将所述需修改的代码文件替换为所述新代码文件; APK合成单元,用于基于包含了所述新代码文件的待开发Android工程生成APK。7.根据权利要求6所述的系统,其中,所述资源信息标识用于在基于overlay机制以根据所述overlay目录和所述资源信息标识将所述需修改的代码文件替换为所述新代码文件时识别所述需修改的代码文件为资源文件。8.根据权利要求6所述的系统,其中,所述overlay目录生成单元用于根据设备型号和所述对应于需修改的代码文件的待开发Android工程的源工程目录生成所述overlay目录。9.根据权利要求8所述的系统,其中,所述overlay机制执行单元还用于确定待开发An droid工程所对应的设备型号为目标设备型号,并基于overlay机制以根据所述overlay目录和所述资源信息标识将所述需修改的代码文件替换为相应于所述目标设备型号的新代码文件。10.根据权利要求6-9任一项所述的系统,其中,所述需修改的代码文件为。迂 v>_g^M/^^:1 TEX.+Jsfs J T §sp ? Sp WKc/C f ^ n<rXl V gslsol Zo
【文档编号】G06F9/45GK105912342SQ201610282807
【公开日】2016年8月31日
【申请日】2016年4月29日
【发明人】柳雷
【申请人】乐视控股(北京)有限公司, 乐视致新电子科技(天津)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1