一种内置应用程序到安卓系统的方法及装置的制造方法_2

文档序号:9672962阅读:来源:国知局
生成模块,4.编译模块,5.扫描模块,6.建立模块,7.判断模块。
【具体实施方式】
[0024]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对照【附图说明】本发明的【具体实施方式】。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图,并获得其他的实施方式。
[0025]为使图面简洁,各图中只示意性地表示出了与本发明相关的部分,它们并不代表其作为产品的实际结构。另外,以使图面简洁便于理解,在有些图中具有相同结构或功能的部件,仅示意性地绘示了其中的一个,或仅标出了其中的一个。在本文中,“一个”不仅表示“仅此一个”,也可以表示“多于一个”的情形。
[0026]图1为本发明一种内置应用程序到安卓系统的方法的步骤图,作为本发明的一个具体实施例,如图1所示,一种内置应用程序到安卓系统的方法,包括:S10解析特定目录中的每个APK中的S0文件;S20存放所述S0文件至库文件夹中与每个APK—一对应的文件夹中;S30在特定目录中生成编译控制文件;S40根据所述编译控制文件启动编译命令,将内置应用程序编译进安卓系统。
[0027]对上述实施例进行改进,得到另一种内置应用程序到安卓系统的方法,包括:S00扫描特定目录下的所有APK;S10解析特定目录中的每个APK中的S0文件;S20存放所述S0文件至库文件夹中与每个APK—一对应的文件夹中;S30在特定目录中生成编译控制文件;S40根据所述编译控制文件启动编译命令,将内置应用程序编译进安卓系统。
[0028]优选的,所述特定目录包括:用于存放内置到数据区域的APK的目录;用于存放内置到系统区域的APK的目录,所述目录下的APK采用系统签名;用于存放内置到系统区域的APK的目录,所述目录下的APK采用应用自签名;用于存放内置到系统核心区的APK的目录。
[0029]本发明的特定目录包括四个,通过libupdate.sh脚本来解析四个特定目录中的APK,这四个目录解释如下:
[°03°] app-data-presigned用于存放内置到数据区域的应用程序。
[°031 ] app-system-platform用于存放内置到系统区域的应用程序,并对该目录下的应用采用系统签名。
[0032]app-system-presigned用于存放内置到系统区域的应用程序,并对该目录下的应用采用应用自签名。
[0033]priv-app-system-presigned用于存放内置到系统核心区的应用程序。
[0034]对上述实施例进行改进,得到另一种内置应用程序到安卓系统的方法,包括:S00扫描特定目录下的所有APK; SO 1在库文件夹中建立每个APK对应的文件夹,并以每个APK的名字命名;S10解析特定目录中的每个APK中的S0文件;S20存放所述S0文件至库文件夹中与每个APK—一对应的文件夹中;S30在特定目录中生成编译控制文件;S40根据所述编译控制文件启动编译命令,将内置应用程序编译进安卓系统。
[0035]具体的,本发明通过Libupdate.sh脚本将以上四个目录中的APK中所包含的so文件解压到库文件夹(lib-system)中对应的目录中。
[0036]接下来分别进入以上四个存放APK的文件夹中,运行每个文件夹下的appmk.sh脚本,生成每个文件夹下的Android.mk文件。
[0037]如app-data-presigned特定目录下生成的Android.mk文件内容示例如下:
[0038]include$(CLEAR_VARS)
[0039]L0CAL_M0DULE_TAGS: =opt1nal
[0040]L0CAL_M0DULE:=zhaoshangyinxing_302
[0041]L0CAL_SRC_FILES:= zhaoshangyinxing_302.apk
[0042]L0CAL_PREBUILT_JNI_LIBS: =../1 ib-system-32/zhaoshangyinxing_302/libBslib.s0../lib-system-32/zhaoshangyinxing_302/liblocSDK3.so
[0043]L0CAL_MULTILIB: =32
[0044]L0CAL_M0DULE_CLASS: =APPS
[0045]L0CAL_M0DULE_SUFFIX:= $ (C0MM0N_ANDR0ID_PACKAGE_SUFFIX)
[0046]L0CAL_CERTIFICATE:=PRESIGNED
[0047]L0CAL_M0DULE_PATH:=$(TARGET_0UT_VEND0R)/Defau1t/data/app
[0048]include$(BUILD_PREBUILT)
[0049]最后运行productmk.sh脚本,将内置应用程序的名字加到系统宏PR0DUCT_PACKAGES中,示例如下:
[0050]PR0DUCT_PACKAGES+ = \
[0051 ] baiduyun_395\
[0052]zhaoshangyinxing_302\
[0053]对上述实施例进行改进,得到另一种内置应用程序到安卓系统的方法,包括:S00扫描特定目录下的所有APK; SO 1在库文件夹中建立每个APK对应的文件夹,并以每个APK的名字命名;S10解析特定目录中的每个APK中的S0文件;S20存放所述S0文件至库文件夹中与每个APK—一对应的文件夹中;S30将预编译库变量赋值为库文件夹中对应APK的文件夹下所有的SO文件;S40根据所述编译控制文件启动编译命令,将内置应用程序编译进安卓系统。
[0054]对上述实施例进行改进,得到另一种内置应用程序到安卓系统的方法,包括:S00扫描特定目录下的所有APK; SO 1在库文件夹中建立每个APK对应的文件夹,并以每个APK的名字命名;S10解析特定目录中的每个APK中的S0文件;S20存放所述S0文件至库文件夹中与每个APK—一对应的文件夹中;S30将预编译库变量赋值为库文件夹中对应APK的文件夹下所有的S0文件;S40将所有APK添加到系统宏PRODUCT_PACKAGES中;启动MAKE命令,将所述APK编译进安卓系统。
[0055]本发明通过脚本程序将几个特定目录下的APK解析,在另外一个专门保存S0文件的文件夹(库文件夹)中建立每个APK对应的文件夹,这些文件夹的以内置应用的名字命名,再将每个APK所包含的S0文件提取出来,放到库文件夹中对应APK的文件夹下。接下来建立存放APK的特定文件夹下的Android.mk文件,在Android.mk文件中,将预编译库变量L0CAL_PREBUILT_JNI_LIBS,赋值为库文件夹中对应APK文件夹下所有的SO文件。
[0056]通过一系列自动化的脚本来解析内置的APK,自动生成每个应用的编译控制文件Android.mk,大大提高了系统工程师的工作效率。将每个应用的库文件(S0文件)放到自己的文件路径下,而不是像安卓原生系统那样放到共享目录(system/lib/)下面,从根本上解决同名库文件的冲突问题。
[0057]对上述实施例进行改进,得到另一种内置应用程序到安卓系统的方法,包括:S00扫描特定目录下的所有APK; SO 1在库文件夹中建立每个APK对应的文件夹,并以每个APK的名字命名;S10解析特定目录中的每个APK中的S0文件,判断解析特定目录中的每个APK中的S0文件是否完毕,若是执行下一步,否则重复执行步骤S10; S20存放所述S0文件至库文件夹中与每
当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1