我不太明白Android版控制工具“repo”的工作原理。
我第一次运行它repo init -u https://android.googlesource.com/platform/manifest ; repo sync
,下载了9GB的代码。
然后我想切换到一个分支,我可以为我的Nexus 7构建4.1.1。
我在网上进行了研究,发现再次使用repo init -b BRANCH_NAME
,repo sync
就可以了。但是当我这样做时,它开始下载一些新代码(超过1GB),然后我停止了它并使用repo init
切换回主分支;它下载了另外2GB的源代码。自从我第一次下载源代码后,我感到非常困惑,第二次和第三次下载的3GB源代码是什么?
另外2个问题:
lunch
的工具是什么?官方网站一直在提及它,但从未介绍它,也没有提到下载它的位置以及如何设置它(你可以想象如果我在google搜索'午餐'会发生什么),只是说它是''构建工具'。答案 0 :(得分:2)
我知道这是一个古老的问题,但我最近经历了同样的经历,并认为我会分享我学到的东西。
回答问题#1:
我没有切换分支。您可以为所需的任何分支同步所有代码,并构建该分支。例如,我有两个:master和4.3_r1,在一个文件夹中。为此,我创建了两个文件夹:
mkdir /Volumes/android_source/master
mkdir /Volumes/android_source/4.3_r1
要初始化和同步master,我输入:
cd /Volumes/android_source/master
repo init -u https://android.googlesource.com/platform/manifest
repo sync
然后,为了初始化和同步4.3_r1构建,我输入:
cd /Volumes/android_source/4.3_r1
repo init -u https://android.googlesource.com/platform/manifest -b android-4.3_r1
repo sync
在构建之前,请切换到基目录并获取envsetup.sh文件:
# cd /Volumes/android_source/master
# source build/envsetup.sh
including device/asus/deb/vendorsetup.sh
including device/asus/flo/vendorsetup.sh
including device/asus/grouper/vendorsetup.sh
including device/asus/tilapia/vendorsetup.sh
including device/generic/armv7-a-neon/vendorsetup.sh
including device/generic/mips/vendorsetup.sh
including device/generic/x86/vendorsetup.sh
including device/lge/mako/vendorsetup.sh
including device/samsung/maguro/vendorsetup.sh
including device/samsung/manta/vendorsetup.sh
including device/samsung/toro/vendorsetup.sh
including device/samsung/toroplus/vendorsetup.sh
including device/samsung_slsi/arndale/vendorsetup.sh
including device/ti/panda/vendorsetup.sh
including sdk/bash_completion/adb.bash
要回答问题#2,一旦你运行envsetup.sh,午餐将在你的PATH中。然后,告诉它你想要构建什么。对于调试版本,告诉午餐你想要全英。你可以推出没有args的午餐来获得午餐菜单。
mbpr15:Android awt$ lunch full-eng
============================================
PLATFORM_VERSION_CODENAME=REL
PLATFORM_VERSION=4.3.2.1.000.000
TARGET_PRODUCT=full
TARGET_BUILD_VARIANT=eng
TARGET_BUILD_TYPE=release
TARGET_BUILD_APPS=
TARGET_ARCH=arm
TARGET_ARCH_VARIANT=armv7-a
TARGET_CPU_VARIANT=generic
HOST_ARCH=x86
HOST_OS=darwin
HOST_OS_EXTRA=Darwin-13.0.0-x86_64-i386-64bit
HOST_BUILD_TYPE=release
BUILD_ID=OPENMASTER
OUT_DIR=out
============================================
现在你已经准备好了:
# make -j16
我有一个8核处理器,所以当我运行构建时我使用-j16,它大大提高了速度。
希望有所帮助。