android编译及添加apk到system.img

原创 2016年06月01日 18:04:11

------------------------------添加apksystem.img-------------------------------

1.添加第三方apkpackagesystem.img

首先把整个apk的源码包copy/package/apps,要注意代码中的layout文件中的xml不能有中文字样,否则会提示编码errors,编译不能通过,可以用@string的方法。

然后,编辑一下文档即可。

/build/target/product/generic_no_telephony.mk

或者

/build/target/product/generic.mk

2.添加第三方apksystem.img

其实就是一个copy操作,把apk从某一个路径(如:packages/apk/ideal_apk路径下)copy/system/app或者data/app的路径下面。然后系统编译到最后,再打包成system.img

修改方法:

到相应机器的devices目录下找到一个有PRODUCT_COPY_FILES字样的mk文件,添加自己的apk路径进去即可。

3.更改android系统默认语言

4.在/build/target/product目录,找到full_base.mk或者full.mk文件,添加以下语句:

中文:PRODUCT_LOCALES:=zh_CN

英文:PRODUCT_LOCALES:=en_US

 

 

--------------------------------android编译---------------------------------------------

>source build/envsetup.sh  加载命令

该命令是用来将envsetup.sh里的所有命令加载到环境变量中去

作用:加载了编译命令使用到的函数命令,如:help,lunch,m,mm,mmm等;

  添加了两个编译选项:generic-engsimulator,这两个选项是系统默认选项;

  查找vendor/<-厂商名称>/vendor/<厂商目录>/build/目录下的vendrosetup.sh,如果存在的话,加载执行它,添加厂商自己定义的编译选项

>lunch 选择平台编译项,它会列出一个选择编译选项菜单

该命令是用户选择编译项,来定义product和编译过程中用到的全局变量。Eng是产品的编译类型。

eng:工程机

user:最终用户机

Userdebug:调试测试机

Tests:测试机

除了前两个,后两个一般不能交给最终用户

LOCAL_MODULE_TAGS,这个TAGS就是用来指定,当前的目标编译完了属于哪个分类里。

>make 执行编译

 

Make

执行make命令的结果就是执行当前目录下的Makefile文件。

------------------------------------------------Build/core/main.mk-------------------------------------

1.config.mk:

定义了大量的编译时用到的变量(CLEAR_VARS,BUILD_SHARED_LIBRARYandroid.mk用到的变量);

检查:TARGET_PRODUCT,TARGET_BUILD_VARIANT

获得当前的编译主机系统,决定编译环境;

定义编译结果的out输出目录。

检查必要的Board的配置信息 TARGET_CPU_ABI

定义编译时用的一些HOST主机工具及编译参数

 

--------------------------------包含product_config.mk

------------包含product.mk:定义了一些和产品信息相关的处理函数;

------------包含device.mk:定义了一些和设备信息有关的处理函数;

-------------查找产品目录下的androidProducts.mk文件;

-------------AndroidProduct.mk中查找待编译的产品配置文件;

-------------根据产品配置文件,找到其中定义的设备名:PRODUCT_DEVICE,导出产品配 置文件里声明的其它的产品属性变量

 

2.包含cleanbuild.mk:定义删除比那一结果的函数和目标如:dataclean,installclean

3.包含definition.mk:定义了编译过程中用到的大量的变量和宏。

4.检查TARGET_BUILD_VARIANT变量有效性。

5.根据make参数决定编译目标:SDK_ONLY(指定编译目录为SDK相关目录)、FULL_BUILD(指定编译目录从TOP顶级目录开始)

6.从编译目录下查找所有子目录下的Android.mk并加载它。

7.从Android.mk中定义的目标中筛选出TAGSTARGET_BUILD_VARIANT的目标

8.包含Makefile

9.定义一些目标:files,ramdisk,systemtarball,userdataimage

10.定义目标及其编译依赖冠以:droidcore,droid,sdk,clean(droid调用dist-for-goals函数开始编译)

所有的makefile都是通过build/core/main.mk这个文件组织在一起的。

 

--------------------------------------Build/core/config.mk------------------------------

CLEAR_VARS:用来清除之前定义的换几个变量;

BUILD_SHARED_LIBRARY:用来指定编译动态库过程;

--------------------------------------envsetup.mk-------------------------------------------------

该文件主要包含了product_config.mk文件,然后指定编译时要输出的所有文件的OUT目录。

 

总结:

Build/core/main.mk包含了config.mk,他主要定义了编译全部代码的依赖关系

Config.mk:定义了大量的编译脚本命令,编译时用到的环境变量,引入了envsetup.mk问价,

 

加载board相关配置文件。

Product_config.mk定义了vendor目录下Product相关配置文件解析脚本,读取androidProduct.mk生成TARGET_DEVICE变量

Product  product config针对当前的芯片配置定义你将要生产产品的个性配置,主要是指APK方面的配置,那些APK会包含在哪个product中,哪些APK在当前product中是不提供的。Cdcd

Board  board config主要涉及到硬件芯片的配置

Combo  build flags config

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

如何把应用程序app编译进android系统

把常用的应用程序编译到img文件中,就成了系统的一部分,用户不必自己安装,当然也卸载不了;  同时也可以删减系统自带的应用程序,精简系统;  1.\build\target\product 目...

Android 源代码中增加新apk

Android build system就是编译系统的意思 在我们需要向自己编译的源代码中增加模块的时候,需要一些规则,当然这个规则都是类似的。 Android.mk文件解析 ...

将第三方apk编译进Android系统文件system.img

1、把apk拷贝到out\target\product\generic\system\app中。 执行命令make snod , 把添加的spk编到system.img 中 2、使用m...

如何将APK编译进入IMG

网上有不少大神都有说到,不过

把apk、so等文件,打包到system.img的方法

本文说的打包是指在aosp中用make -j8编译后,把自己需要的文件打包到system.img中。 这里又两种情况,第一种是apk、so是第三方提供的,已经编译好了,只要打包到system.img...

把apk、so等文件,打包到system.img的方法

本文说的打包是指在aosp中用make -j8编译后,把自己需要的文件打包到system.img中。 这里又两种情况,第一种是apk、so是第三方提供的,已经编译好了,只要打包到system.img...

快速编译system.img和boot.img的方法

快速编译system.img,可以使用这个命令: #make systemimage  快速编译boot.img,可以使用以下命令: #make bootimage  快速编译userdata...
  • bfboys
  • bfboys
  • 2016-09-17 11:23
  • 1147

编译Android时,添加或者删除system.img中第三方apk、更改Android系统默认语言 .

没找到原文链接, 请原作者谅解。

编译Android时,添加或者删除system.img中第三方apk、更改Android系统默认语言

/********************************************************************************************  * au...

把第三方或自己开发的apk文件编译到系统文件(system.img)中的方法:

把第三方或自己开发的apk文件编译到系统文件(system.img)中的方法: 1  (1)源码编译后,把apk拷贝到out\target\product\generic\system\app中...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)