AOSP編譯/代碼管理

此文章主要記錄git/gerrit配置窿撬;MTK2601 AOSP Android5.1的編譯以及應(yīng)用開發(fā)。

1叁扫、git/Gerrit:

vim ~/.gitconfig

[User]

email =【你的郵箱歉糜,通常是公司企業(yè)郵箱】

name = 【gerrit服務(wù)器賬戶名】

[color]

ui = auto

diff = auto

[core]

editor = vim

# 說明:review的配置和代碼樹的使用有關(guān)聯(lián),所以一定保證正確

[review "Gerrit服務(wù)器地址幌蚊,例如110.110.110.110:9090"]

username =【Gerrit賬戶名】

#然后ssh-keygen生成的publickey復(fù)制到gerrit服務(wù)器

#next:

vim?? ~/.ssh/config

Host 【gerrit服務(wù)器IP】

KexAlgorithms +diffie-hellman-group1-sha1

Port 29418

User 【Gerrit賬戶名】

2、repo以及代碼樹編譯:

repo文件根據(jù)Google官方提供的大可自己修改溃卡。

從頭獲取整個代碼樹:

repo init -u ssh://IP地址:29418/repo/manifests -b android_watch_master

repo sync

等待代碼下載完畢溢豆。

編譯Android源碼:

1)Android5.1需要安裝openjdk7:

sudo add-apt-repositoryppa:openjdk-r/ppa

sudo apt-getupdate

sudo apt-getinstall openjdk-7-jdk

切換Java環(huán)境到j(luò)dk7.

其次,安裝依賴:

---------------------------------------------------------------------------------------------------------------

sudo apt-get install -y git flex bison gperf build-essential libncurses5-dev:i386

sudo apt-get install libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-dev g++-multilib

sudo apt-get install tofrodos python-markdown libxml2-utils xsltproc zlib1g-dev:i386

sudo apt-get install dpkg-dev libsdl1.2-dev libesd0-dev

sudo apt-get install git-core gnupg flex bison gperf build-essential

sudo apt-get install zip curl zlib1g-dev gcc-multilib g++-multilib

sudo apt-get install libc6-dev-i386

sudo apt-get install lib32ncurses5-dev x11proto-core-dev libx11-dev

sudo apt-get install lib32z-dev ccache

sudo apt-get install libgl1-mesa-dev libxml2-utils xsltproc unzip m4

---------------------------------------------------------------------------------------------------------------

2)在 .bashrc文件末尾添加:export USE_CCACHE = 1

為了提高編譯效率瘸羡,設(shè)置編譯器高速緩存:

prebuilts/misc/linux-x86/ccache/ccache-M50G

編譯步驟:

... 自己的配置 ...

source build/envstep.sh

lunch

make -j8

... 編譯成功 ...

3)如果有一下錯誤:

/home/elinksoft/code/8163/alps/prebuilts/gcc/linux-x86/host/x86_64-linux-glibc2.11-4.6/bin/../lib/gcc/x86_64-linux/4.6/../../../../x86_64-linux/bin/ld: error: out/host/linux-x86/obj32/STATIC_LIBRARIES/libcompiler_rt_intermediates/libcompiler_rt.a(eprintf.o): unsupported reloc 43 against global symbol stderr

external/compiler-rt/lib/builtins/eprintf.c:32: error: unsupported reloc 43

collect2: ld returned 1 exit status

build/core/host_shared_library_internal.mk:44: recipe for target 'out/host/linux-x86/obj32/lib/libcompiler_rt.so' failed

make: *** [out/host/linux-x86/obj32/lib/libcompiler_rt.so] Error 1

make: *** Waiting for unfinished jobs....

host C++: libnativehelper_32 <= libnativehelper/JNIHelp.cpp

make: *** wait: No child processes.? Stop.

解決:

in file /art/build/Android.common_build.mk, find out:

# Host.

ART_HOST_CLANG := false

ifneq ($(WITHOUT_HOST_CLANG),true)

# By default, host builds use clang for better warnings.

ART_HOST_CLANG := true

endif

change to :

# Host.

ART_HOST_CLANG := false

ifeq ($(WITHOUT_HOST_CLANG),false)

# By default, host builds use clang for better warnings.

ART_HOST_CLANG := true

endif

If it still not works,try this in your android root path:

cp /usr/bin/ld.gold prebuilts/gcc/linux-x86/host/x86_64-linux-glibc2.11-4.6/x86_64-linux/bin/ld

4漩仙、System App

1)常用命令

croot、jgrep、cgrep讯赏、resgrep

mm -B

repo sync . -cj4

repo upload .

repo branch

git reset

repo abandon 0722

repo sync . -c

repo start 0722 --all

2)提交代碼樹review發(fā)現(xiàn)問題或者測試出現(xiàn)問題:

Cherry Pick到本地垮兑,gerrit上有命令可以直接復(fù)制使用;

修改后git commit --amend

repo upload .

3)導(dǎo)入aosp所有代碼到Android Studio:

前提是代碼樹已經(jīng)build成功漱挎;在代碼樹根目錄下執(zhí)行:

mmm development/tools/idegen/????? #這行命令的意思是編譯idegen這個模塊項目,然后生成idegen.jar文件

development/tools/idegen/idegen.sh??? #這行命令的意思是在根目錄生成對應(yīng)的android.ipr雀哨、android.iml IEDA工程配置文件

有了如上的這些操作以后磕谅,我們打開Android Studio,然后選擇打開一個現(xiàn)有的Android Studio項目雾棺,然后選擇打開源碼根目錄下的android.ipr文件

4)編寫Android.mk文件

make file比較復(fù)雜無法一一詳細(xì)說明膊夹,可以查閱其他資料;Android.mk編寫完成后捌浩,在對應(yīng)目錄下執(zhí)行mm -B即可模塊編譯放刨。

配合第(5)步的說明即可輕松開發(fā)app

5)系統(tǒng)工程無法在AS Build 通過,但是可以鏈接文件到AS:

使用 ln -s 把文件鏈接到Android? Studio工程目錄下(model/src/main/java等目錄)

最后就是adb常用命令尸饺,比較多就不寫了进统。

6)aosp下查找文件內(nèi)容常用命令

mv * .[^.]* repo_root/

grep BOOT_COMPLETED . -rsn|grep -v xml|grep -v txt|grep -v html

find -name? "filename"

find . -name 'gradle-wrapper.properties' -exec grep "bin" {} +;

sed -i s/MySystemService/System/g `grep MySystemService -rl ./`

adb ?shell ?pm list ?packages;adb shell ?pm path+ 包名浪听,例如:adb shell pm path com.cmsz.account螟碎;adb pull+安裝包路徑?

備注:博客收藏http://blog.csdn.net/wdaming1986

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市迹栓,隨后出現(xiàn)的幾起案子掉分,更是在濱河造成了極大的恐慌,老刑警劉巖克伊,帶你破解...
    沈念sama閱讀 216,372評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件酥郭,死亡現(xiàn)場離奇詭異,居然都是意外死亡愿吹,警方通過查閱死者的電腦和手機(jī)不从,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來洗搂,“玉大人消返,你說我怎么就攤上這事≡拍矗” “怎么了撵颊?”我有些...
    開封第一講書人閱讀 162,415評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長惫叛。 經(jīng)常有香客問我倡勇,道長,這世上最難降的妖魔是什么嘉涌? 我笑而不...
    開封第一講書人閱讀 58,157評論 1 292
  • 正文 為了忘掉前任妻熊,我火速辦了婚禮夸浅,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘扔役。我一直安慰自己帆喇,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,171評論 6 388
  • 文/花漫 我一把揭開白布亿胸。 她就那樣靜靜地躺著坯钦,像睡著了一般。 火紅的嫁衣襯著肌膚如雪侈玄。 梳的紋絲不亂的頭發(fā)上婉刀,一...
    開封第一講書人閱讀 51,125評論 1 297
  • 那天,我揣著相機(jī)與錄音序仙,去河邊找鬼突颊。 笑死,一個胖子當(dāng)著我的面吹牛潘悼,可吹牛的內(nèi)容都是我干的律秃。 我是一名探鬼主播,決...
    沈念sama閱讀 40,028評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼挥等,長吁一口氣:“原來是場噩夢啊……” “哼友绝!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起肝劲,我...
    開封第一講書人閱讀 38,887評論 0 274
  • 序言:老撾萬榮一對情侶失蹤迁客,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后辞槐,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體掷漱,經(jīng)...
    沈念sama閱讀 45,310評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,533評論 2 332
  • 正文 我和宋清朗相戀三年榄檬,在試婚紗的時候發(fā)現(xiàn)自己被綠了卜范。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,690評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡鹿榜,死狀恐怖海雪,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情舱殿,我是刑警寧澤奥裸,帶...
    沈念sama閱讀 35,411評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站沪袭,受9級特大地震影響湾宙,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,004評論 3 325
  • 文/蒙蒙 一侠鳄、第九天 我趴在偏房一處隱蔽的房頂上張望埠啃。 院中可真熱鬧,春花似錦伟恶、人聲如沸碴开。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽叹螟。三九已至,卻和暖如春台盯,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背畏线。 一陣腳步聲響...
    開封第一講書人閱讀 32,812評論 1 268
  • 我被黑心中介騙來泰國打工静盅, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人寝殴。 一個月前我還...
    沈念sama閱讀 47,693評論 2 368
  • 正文 我出身青樓蒿叠,卻偏偏與公主長得像,于是被迫代替她去往敵國和親蚣常。 傳聞我的和親對象是個殘疾皇子市咽,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,577評論 2 353

推薦閱讀更多精彩內(nèi)容