android源码编译文档,android官方文档:ubuntu10.04下编译android源码Building the System

在编译前请先看

初始化编译环境 Initializing aBuild Environment

Buildingthe System

Thebasic sequence of build commands is as follows:

Initialize

Initializethe environment with theenvsetup.shscript.Note that replacing "source" with a single dot saves a fewcharacters, and the short form is more commonly used indocumentation.

$ source build/envsetup.sh

or

$ . build/envsetup.sh

Choosea Target

Choosewhich target to build withlunch.The exact configuration can be passed as an argument, e.g.

$ lunch full-eng

Theexample above refers to a complete build for the emulator, with alldebugging enabled.

Ifrun with no argumentslunchwillprompt you to choose a target from the menu.

Allbuild targets take the form BUILD-BUILDTYPE, where the BUILD is acodename referring to the particular feature combination:

Buildname

Device

Notes

full

emulator

fullyconfigured with all languages, apps, input methods

full_maguro

maguro

full buildrunning on Galaxy Nexus GSM/HSPA+ ("maguro")

full_panda

panda

full buildrunning on PandaBoard ("panda")

andthe BUILDTYPE is one of the following:

Buildtype

Use

user

limitedaccess; suited for production

userdebug

like"user" but with root access and debuggability;preferred for debugging

eng

developmentconfiguration with additional debugging tools

Formore information about building for and running on actual hardware,seeBuildingfor devices

Buildthe Code

Buildeverything withmake.GNU make can handle parallel tasks with a-jNargument,and it's common to use a number of tasks N that's between 1 and 2times the number of hardware threads on the computer being used forthe build. E.g. on a dual-E5520 machine (2 CPUs, 4 cores per CPU, 2threads per core), the fastest builds are made with commandsbetweenmake-j16andmake-j32.

$ make -j4

RunIt!

Youcan either run your build on an emulator or flash it on a device.Please note that you have already selected your build targetwithlunch,and it is unlikely at best to run on a different target than it wasbuilt for.

Flasha Device

Toflash a device, you will need to usefastboot,which should be included in your path after a successful build. Placethe device in fastboot mode either manually by holding theappropriate key combination at boot, or from the shell with

$ adb reboot bootloader

Oncethe device is in fastboot mode, run

$ fastboot flashall -w

The-woptionwipes the/datapartitionon the device; this is useful for your first time flashing aparticular device, but is otherwise unnecessary.

Formore information about building for and running on actual hardware,seeBuildingfor devices

Emulatean Android Device

Theemulator is added to your path automatically by the build process. Torun the emulator, type

$ emulator

Usingccache

ccacheis a compiler cache for C and C++ that can help make builds faster.In the root of the source tree, do the following:

$ export USE_CCACHE=1$ export CCACHE_DIR=//.ccache$ prebuilt/linux-x86/ccache/ccache -M 20G

Youcan watch ccache being used by doing the following:

$ watch -n1 -d prebuilt/linux-x86/ccache/ccache -s

OnOSX, you should replacelinux-x86withdarwin-x86.

TroubleshootingCommon Build Errors

WrongJava Version

Ifyou are attempting to build froyo or earlier with Java 1.6, orgingerbread or later with Java 1.5,makewillabort with a message such as

************************************************************You are attempting to build with the incorrect versionof java.Your version is: WRONG_VERSION.The correct version is: RIGHT_VERSION.Please follow the machine setup instructions athttp://source.android.com/download************************************************************

Thismay be caused by

failingto install the correct JDK as specified on theInitializingpage.Building Android requires Sun JDK 5 or 6 depending on which releaseyou are building.

anotherJDK that you previously installed appearing in your path. You canremove the offending JDK from your path with: $ export PATH=${PATH/\/path\/to\/jdk\/dir:/}

PythonVersion 3

Repois built on particular functionality from Python 2.x and isunfortunately incompatible with Python 3. In order to use repo,please install Python 2.x:

$ apt-get install python

GmakeVersion 3.82

Thereis a bug inmakeversion3.82 on Mac OS that prevents building Android.

TODO:what the error looks like with GNU make 3.82 on older builds thatdon't explicitly detect it.

Followthe instructions on theInitializingpagefor reverting GNU make from 3.82 to 3.81.

CaseInsensitive Filesystem

Ifyou are building on an HFS filesystem on Mac OS X, you may encounteran error such as

************************************************************You are building on a case-insensitive filesystem.Please move your source tree to a case-sensitive filesystem.************************************************************

Pleasefollow the instructions on theInitializingpagefor creating a case-sensitive disk image.

NoUSB Permission

Onmost Linux systems, unprivileged users cannot access USB ports bydefault. If you see a permission denied error, follow theinstructions on theInitializingpagefor configuring USB access.

Ifadb was already running and cannot connect to the device aftergetting those rules set up, it can be killed withadbkill-server.That will cause adb to restart with the new configuration.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值