MTKandroid快速编译方法Word格式文档下载.docx

上传人:b****2 文档编号:5764982 上传时间:2023-05-05 格式:DOCX 页数:23 大小:24.86KB
下载 相关 举报
MTKandroid快速编译方法Word格式文档下载.docx_第1页
第1页 / 共23页
MTKandroid快速编译方法Word格式文档下载.docx_第2页
第2页 / 共23页
MTKandroid快速编译方法Word格式文档下载.docx_第3页
第3页 / 共23页
MTKandroid快速编译方法Word格式文档下载.docx_第4页
第4页 / 共23页
MTKandroid快速编译方法Word格式文档下载.docx_第5页
第5页 / 共23页
MTKandroid快速编译方法Word格式文档下载.docx_第6页
第6页 / 共23页
MTKandroid快速编译方法Word格式文档下载.docx_第7页
第7页 / 共23页
MTKandroid快速编译方法Word格式文档下载.docx_第8页
第8页 / 共23页
MTKandroid快速编译方法Word格式文档下载.docx_第9页
第9页 / 共23页
MTKandroid快速编译方法Word格式文档下载.docx_第10页
第10页 / 共23页
MTKandroid快速编译方法Word格式文档下载.docx_第11页
第11页 / 共23页
MTKandroid快速编译方法Word格式文档下载.docx_第12页
第12页 / 共23页
MTKandroid快速编译方法Word格式文档下载.docx_第13页
第13页 / 共23页
MTKandroid快速编译方法Word格式文档下载.docx_第14页
第14页 / 共23页
MTKandroid快速编译方法Word格式文档下载.docx_第15页
第15页 / 共23页
MTKandroid快速编译方法Word格式文档下载.docx_第16页
第16页 / 共23页
MTKandroid快速编译方法Word格式文档下载.docx_第17页
第17页 / 共23页
MTKandroid快速编译方法Word格式文档下载.docx_第18页
第18页 / 共23页
MTKandroid快速编译方法Word格式文档下载.docx_第19页
第19页 / 共23页
MTKandroid快速编译方法Word格式文档下载.docx_第20页
第20页 / 共23页
亲,该文档总共23页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

MTKandroid快速编译方法Word格式文档下载.docx

《MTKandroid快速编译方法Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《MTKandroid快速编译方法Word格式文档下载.docx(23页珍藏版)》请在冰点文库上搜索。

MTKandroid快速编译方法Word格式文档下载.docx

$(INSTALLED_RECOVERYIMAGE_TARGET):

$(MKBOOTFS)$(MKBOOTIMG)$(MINIGZIP)\

$(INSTALLED_RAMDISK_TARGET)\

$(INSTALLED_BOOTIMAGE_TARGET)\

$(recovery_binary)\

$(recovery_initrc)$(recovery_kernel)\

$(INSTALLED_2NDBOOTLOADER_TARGET)\

$(recovery_build_prop)$(recovery_resource_deps)\

$(recovery_fstab)\

$(recovery_gzip)$(recovery_sec_ko)\

$(RECOVERY_INSTALL_OTA_KEYS)

的前面添加:

ifeq($(TARGET_USERIMAGES_USE_UBIFS),true)

$(recovery_ubiformat)

endif

否则会编译失败!

(4).修改后Android编译时间降低16%~18%(数据仅供参考)

(5).此种方法google已在4.3版本默认应用了。

(6).仅对new有效果,但是由于没有编译没有用到的模块,不仅节省时间还节省磁盘空间(节省out目录下的中间文件)。

2.开启androidccache

(1).ccache是google默认就存放在codebase的工具,对于ccache的功能可以到网络搜寻资料。

(2).设置cache大小(这一步一定要做!

),一个codebase需要大约5G的空间,如果你的编译环境有5个codebase在使用,那么需要25G的空间。

设置小了还会引起编译时间延长!

[1].GB版本:

prebuilt/linux-x86/ccache/ccache-M25G

[2].JB版本:

prebuilts/misc/linux-x86/ccache/ccache-M25G

(3). 

开启的方法:

[1].命令行增加USE_CCACHE=1即可:

./mk-o=USE_CCACHE=1n。

如果是user版本开启ccahce的话,可以这样:

./mk-o=USE_CCACHE=1,TARGET_BUILD_VARIANT=usern。

[2].建议:

添加到环境变量(其他方式亦可):

修改alps/makeMtk,在#!

/usr/bin/perl之后新建一行,填写$ENV{"

USE_CCACHE"

}=1;

(4). 

第1次编译会花多一点时间建立cache,之后即可享受ccache带来的好处,降低所有使用gcc的编译时间,大约25%~30%。

[1].可以通过ccache-s查看cache信息,如果满了可以用ccache-C清除所有。

在满了状态下编译新codebase,将会旧的那个清除,这会降低效率,所以cache一定要设置正确!

(6).对mm/new/remakeandroid都有效果。

3.开启kernelccache

(1).以上ccache只对编译android有效,kernel部分需要额外设置才行

(2).alps/kernel/Makefile文件中的

=$(CROSS_COMPILE)as

LD 

=$(CROSS_COMPILE)ld.bfd

CC 

=$(CROSS_COMPILE)gcc

CPP 

=$(CC)-E

之后添加:

ifneq($(USE_CCACHE),)

exportCCACHE_COMPILERCHECK:

=content

exportCCACHE_SLOPPINESS:

=time_macros,include_file_mtime,file_macro

exportCCACHE_BASEDIR:

=/

ccache:

=$(strip$(wildcard$(PWD)/../prebuilts/misc/linux-x86/ccache/ccache))

ifdefccache

ifneq($(ccache),$(firstword$(CC)))

CC:

=$(ccache)$(CC)

endif

ccache=

(3).这样在编译kernel时也可以享受到ccache带来编译时间的缩短。

以上两种方法优化后大约可降低50%的编译时间,也就是说优化前需要1小时编译时间,优化后半小时就完成了。

还可以参考:

FAQ11348共享ccache的缓存

FAQ10299如何加速./mksnod打包

FAQ03127当修改一些代码时,使用什么编译命令可以最有效率

FAQ05444只修改kernel的时候,快速编译方法

/////////////////////////////////////////////////////////////////////

//addedbyCheguoshengstart

ccache-s

查看ccache的大小

ccache-C

清除cache,C要大写

设置ccache的大小:

如果是JB版本,直接在终端运行:

如果是GB版本,直接在终端运行:

//addedbyCheguoshengend

[FAQ05444]只修改kernel的时候,快速编译方法

Download

FAQ发布时间:

2013-04-20

MT6573MT6575MT6577MT6589MT6572

GB2ICSICS2JBJB2

[Description]

通常我们修改kernel的时候,需要下命令./mkxxxnk;

./mkbootimage;

这样需要比较长的时候.

此FAQ提供快速编译方法

[Keyword]

kernelbuild

[Solution]

1:

将如下code存为mkbootimage.sh

2:

将mkbootimage.sh放在alps/目录下:

3:

cpout/host/linux-x86/bin/mkbootimg 

./

4:

修改权限:

chmod777mkbootimage.sh

5:

执行:

./mkbootimage.shproject_name

GB,GB2上需要修改成

#!

/bin/sh

PROJECT=$1

echo./makeMtk$PROJECTnewkernel

./makeMtk$PROJECTnewkernel

echomkbootimg--kernelkernel/Download/flash/kernel_$PROJECT.bin--ramdisk./out/target/product/$PROJECT/ramdisk.img-o./out/target/product/$PROJECT/boot.img

./mkbootimg--kernelkernel/Download/flash/kernel_$PROJECT.bin--ramdisk./out/target/product/$PROJECT/ramdisk.img-o./out/target/product/$PROJECT/boot.img

ICS,ICS2,JB2上需要修改成:

echomkbootimg--kernelkernel/out/kernel_$PROJECT.bin--ramdisk./out/target/product/$PROJECT/ramdisk.img-o./out/target/product/$PROJECT/boot.img

./mkbootimg--kernelkernel/out/kernel_$PROJECT.bin--ramdisk./out/target/product/$PROJECT/ramdisk.img-o./out/target/product/$PROJECT/boot.img

[FAQ03127]当修改一些代码时,使用什么编译命令可以最有效率

2014-01-25

MT6575MT6577MT6589MT6572MT6582MT6588MT6592

GB2ICSICS2JBGB3JB2JB3JB5JB9

当修改一些代码时,使用什么编译命令可以最有效率

编译命令修改代码最有效率快速编译

./mkn(r)kernel;

当修改build-in到kernel

相关代码时,要使用此命令,具体文件参考如下:

alps/kernel/

alps/mediatek/platform/mt65xx/kernel/

alps/mediatek/source/kernel/

alps/mediatek/coustom/mt65xx/kernel/

alps/mediatek/coustom/common/kernel/

alps/mediatek/coustom/$porject_name$/kernel

...

ps:

由于./mkbootimag是很长的过程,如果您没有修改到ramdisk相关的

code,可以参考以下FAQ加快编译.

只修改kernel的时候,快速编译方法:

online.mediatek.inc/Pages/FAQ.aspx?

List=SW&

FAQID=FAQ05444

./mkn(r)k 

/module_path 

当修改kernelmodule相关代码时,

要使用此命令,具体文件参考如下:

alps/mediatek/platform/mt65xx/kernel/drivers/ccci/

alsp/mediatek/platform/mt65xx/gpu/

......

通常看对应文件夹的Makefile就知道是buildin到kernel,还是ko, 

obj-m+=xxx,表示build成komodule,

obj-y+=xxx, 

表示buildin到bootimag.

ps:

要特别注意,如果你new的时候是user版本,在使用此命令的时候一定要加上 

-o=TARGET_BUILD_VARIANT=user, 

否则会导致将之前new的结果全部删除, 

./mknpl 

当修改preloader相关代码时,要使用此命令,具体如下:

alps/mediatek/platform/mt65xx/preloader/

alps/mediatek/source/preloader/

alps/mediatek/coustom/mt65xx/preloader/

alps/mediatek/coustom/common/preloader/

alps/mediatek/coustom/$porject_name$/kernle

./mkuboot 

当修改uboot相关代码时,要使用此命令,具体如下:

alps/mediatek/platform/mt65xx/uboot/

alps/mediatek/source/uboot/

alps/bootable/bootloader/uboot/

alps/mediatek/coustom/mt65xx/uboot/

alps/mediatek/coustom/common/buoot/

alps/mediatek/coustom/$porject_name$/uboot/

......

./mksystemimage当修改system相关代码时使用此命令,

具体文件目录如下:

alps/frameworks/

alps/packages/

alps/vendor/

alps/hardware/

alps/dalvik/

alsp/external

...........

new完一次后,如果使用这个命令其实很耗时间,建议参考6的做法,

6:

./mkmm./module_path;

主要build一些modules,如lib库,

native可执行程序,jar库,jarapk. 

相关文件参考如下:

alps/frameworks/base 

#可以根据修改的某些文件,进入更细的目录去

build相关库.

alps/frameworks/native/libs/binder/ 

#native目录下有很多相关的lib库.

alps/frameworks/native/libs/binder/utils/

alps/external 

#主要是一些native的二进制可执行文件. 

build完后可以找到对应的目标文件直接push到手机,也可以使用

./mksnod直接快速打包新的system.img, 

然后download. 

 

可参考如下FAQ:

如何加速./mksnod打包:

FAQID=FAQ10299

7:

./mkrecoverimage 

当修改recover相关代码时使用此命令,具体如下:

alps/bootable/recovery/

alps/mediatek/customer/$project_name$/recovery/

8:

./mkfactoryimage:

当修改factory相关代码时使用此命令,具体如下:

alps/mediatek/coustom/$project_name$/factory/

alps/mediatek/coustom/common/factory/

alps/mediatek/source/factory/

9:

./mksecroimage 

当修改secro相关代码时使用此命令,具体如下:

alps/mediatek/source/secro/

alps/mediatek/coustom/$project_name$/secro/

.....

如果还想提高编译速度,请参考相关FAQ:

[FAQ10625]提升Android编译速度:

list=SW&

l0=2&

l1=3&

l2=43&

l3=6149

[FAQ10299]如何加速./mksnod打包

2013-12-05

MT6572MT6582MT6588MT6589MT6592MT6571MT6582/92+MT6290MT6595

GB3JB2JB3JB5JB9GB5JB7KK1

mm命令快速编译一个模块之后,一般用adbpush到手机看效果,如果环境不允许用adbpush或模块

不经常改,希望直接放到image里,则可以用./mksnod,这个命令仅仅将system目录打包成

system.img,然后方便直接下载,但是这个命令还是很慢(慢在搜索所有的Android.mk),有一种方法

可以加速该编译到1分钟以

./mksnod

修改alps/build/core/main.mk:

subdir_makefiles:

=\

$(shellbuild/tools/findleaves.py--prune=out--prune=.repo--prune=.git$(subdirs)Android.mk)

ifneq($(MAKECMDGOALS),snod)

以上避免了不必要的耗时操作,加速./mksnod编译

PS:

这边有另外一个FAQ可以快速提升Android编译速度,强烈建议配置上(大约可提升50%):

[FAQ10346]编译kernel后,如何快速打包image并快速执行

MT6592MT6589MT6588MT6582MT6577MT6575MT6572

GB2GB3ICSICS2JBJB2JB3JB5JB9

通常编译kernel后,我们都需要重新new一次bootimage,以便将更新包含到bootimage然后再

download后验证.而编译bootimage可能需要花费超过10min的时间,而实际我们只需要打包

image即可.

kernelbootimage编译kosystemimage

首先,需要remkekernel

./mkproject-namerk 

(20s-2min)

此时对应的kernelbin档不是out/target/product/${project}/kernel,而是在

kernel/out/kernel_{project_name}.bin

您编译可能只是更新了某个ko文件,也可能影响整个kernel。

1).如果是在整个kernel当中

./mtk71029-kernel-bootimage.sh 

(0.001s)

对应的脚本代码

/bin/bash

#mtk71029quicklypackbootimagev1

project=$(awk'

NR==1{print$3}'

makeMtk.ini)

${PWD}/mediatek/build/tools/images/mkbootimg--kernel${PWD}/kernel/out/kernel_${project}.bin--ramdisk${PWD}/out/target/product/${project}/ramdisk.img--board1384501662--output${PWD}/out/target/product/${project}/boot.img

2).如果是编译ko,就直接pushko到system/lib/modules.

注意如果是JB以后的版本,需要将其权限改成644,原因参考[FAQ:

FAQ05441]JB以后版本

adbpushko文件,build.prop,init.rc,init.xxx.rcueventd.rc等文件后,无法开机,

log提示skippinginsecurefile.

3).如果想把ko也加速打包到systemimage,可以参考[FAQ:

FAQ10299]如何加速./mksnod打包

[FAQ03201]如何在c/c++代码里引用自定义ProjectConfig.mk宏开关

2014-04-02

MT6589MT6572MT6582MT6588MT6592MT6571MT6582/92+MT6290MT6595

GB3JB2JB3JB5GB5JB7JB9KK1.MP1KK1.MP

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2