
2013年1月22日
google推薦的編譯環(huán)境是在Ubuntu LTS(10.04),但是最新版本12.10已經(jīng)出來(lái),沒(méi)必要在舊版本上做文章了
對(duì)于2.3.X和更新的版本,需要64位的系統(tǒng),之前的老版本2.2以下(包括2.2)可以在32位版本上編譯
對(duì)于虛擬機(jī),官網(wǎng)上寫的虛擬機(jī)配置參數(shù):16G RAM/swap & 30G+ 硬盤空間
PS: 全部編譯完畢后,才發(fā)現(xiàn)真的很耗空間
源代碼下載/編譯完成后,磁盤空間一共是33G
$ du -h --max-depth=1 ./4.2/
4.2M ./4.2/bootable
120K ./4.2/libnativehelper
282M ./4.2/packages
88M ./4.2/development
1.6G ./4.2/external
19G ./4.2/out
53M ./4.2/hardware
18M ./4.2/bionic
9.1M ./4.2/system
138M ./4.2/cts
336K ./4.2/pdk
116K ./4.2/abi
5.1M ./4.2/gdk
40M ./4.2/libcore
1.2G ./4.2/frameworks
4.9M ./4.2/build
34M ./4.2/tools
2.4G ./4.2/prebuilts
43M ./4.2/device
7.5G ./4.2/.repo
55M ./4.2/sdk
5.9M ./4.2/docs
41M ./4.2/dalvik
31M ./4.2/ndk
33G ./4.2/
言歸正題,按照官網(wǎng)的文檔,安裝所需要的工具
Python 2.5 -- 2.7, 下載地址 python.org
GNU Make 3.81 -- 3.82, 下載地址 gnu.org
JDK 6 :2.3以上的版本; JDK 5 2.2和2.2以下的版本. 下載地址http://www.oracle.com/technetwork/java/javase/downloads/index.html
Git 1.7 以上. 下載地址 git-scm.com.
前兩條Ubuntu 12.10系統(tǒng)自帶(新系統(tǒng)的好處),git后面會(huì)通過(guò)安裝必須包來(lái)安裝,所以只需要我們手動(dòng)安裝JDK
安裝必要的編譯工具包
$ sudo apt-get install git-core gnupg flex bison gperf build-essential \
zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev \
libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-glx:i386 \
libgl1-mesa-dev g++-multilib mingw32 openjdk-6-jdk tofrodos \
python-markdown libxml2-utils xsltproc zlib1g-dev:i386
$ sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so
PS: 后來(lái)發(fā)現(xiàn)這里可以選擇不安裝openjdk。android生成主要用到的是 jdk1.6
安裝JDK 1.6.0
1.下載
2013-1-22,當(dāng)前最新版本是 1.6.0_38
http://www.oracle.com/technetwork/java/javase/downloads/jdk6u38-downloads-1877406.html
這里請(qǐng)選擇64位的linux版本,對(duì)應(yīng)的下載文件名:jdk-6u38-linux-x64.bin.
2.安裝
修改文件權(quán)限,復(fù)制到/usr/lib/jvm,安裝
chmod a+x jdk-6u38-linux-x64.bin
sudo mv jdk-6u38-linux-x64.bin /usr/lib/jvm
cd /usr/lib/jvm
sudo ./jdk-6u38-linux-x64.bin
安裝后,在/usr/lib/jvm上會(huì)多出一個(gè)目錄(jdk1.6.0_38),其實(shí)執(zhí)行.bin文件感覺(jué)就是一個(gè)解壓文件
3.環(huán)境配置
修改/etc/profile文件
export JAVA_HOME="/usr/lib/jvm/jdk1.6.0_38"
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=".:$JAVA_HOME/bin"
建議重啟或注銷一下系統(tǒng),讓配置生效~~~
此時(shí)輸入: java --version查看一下版本
java version "1.6.0_38"
Java(TM) SE Runtime Environment (build 1.6.0_38-b05)
Java HotSpot(TM) 64-Bit Server VM (build 20.13-b02, mixed mode)
如果系統(tǒng)中有時(shí)候會(huì)安裝openjdk,我們還需要修改一下java的默認(rèn)程序,讓他使用jdk1.6.0進(jìn)行android編譯
安裝java/javac/jar,執(zhí)行如下命令:
sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk1.6.0_38/bin/java 300
sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdk1.6.0_38/bin/javac 300
sudo update-alternatives --install /usr/bin/jar jar /usr/lib/jvm/jdk1.6.0_38/bin/jar 300
執(zhí)行后這三個(gè)命令,網(wǎng)上的資源說(shuō)可以自動(dòng)切換到j(luò)dk1.6.0_38,但是我配置的時(shí)候不行,可能再通過(guò)下面這三個(gè)命令,手動(dòng)指定了
sudo update-alternatives --config java
sudo update-alternatives --config javac
sudo update-alternatives --config jar
代碼下載:
下載repo,初始化下載環(huán)境,repo配置,同步
$ mkdir ~/bin
$ PATH=~/bin:$PATH
$ curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
$ chmod a+x ~/bin/repo
$ mkdir ~/android/sources
$ cd ~/android/sources
$ repo init -u https://android.googlesource.com/platform/manifest -b android-4.2.1_r1
$ repo sync
下載是個(gè)漫長(zhǎng)的過(guò)程,我的機(jī)子一個(gè)周末開著下載~~~good lucky~~~
編譯代碼:
初始化腳本, make編譯
$ source build/envsetup.sh
$ lunch full-eng
$ make -jN
這里的三個(gè)命令參考官方的文檔,官網(wǎng)上說(shuō)明很詳細(xì)。特別是第二條命令的參數(shù),你想生成什么樣的配置,就設(shè)定什么樣的參數(shù)
http://source.android.com/source/building.html
運(yùn)行emulator
編譯成功后,運(yùn)行模擬器
$ emulator
模擬器就運(yùn)行起來(lái)了。。。
posted @
2013-01-22 10:20 雙魚座的程序員 閱讀(8189) |
評(píng)論 (1) |
編輯 收藏

2006年9月4日
匹配中文字符的正則表達(dá)式: [\u4e00-\u9fa5]
評(píng)注:匹配中文還真是個(gè)頭疼的事,有了這個(gè)表達(dá)式就好辦了
匹配雙字節(jié)字符(包括漢字在內(nèi)):[^\x00-\xff]
評(píng)注:可以用來(lái)計(jì)算字符串的長(zhǎng)度(一個(gè)雙字節(jié)字符長(zhǎng)度計(jì)2,ASCII字符計(jì)1)
匹配空白行的正則表達(dá)式:\n\s*\r
評(píng)注:可以用來(lái)刪除空白行
匹配HTML標(biāo)記的正則表達(dá)式:< (\S*?)[^>]*>.*?|< .*? />
評(píng)注:網(wǎng)上流傳的版本太糟糕,上面這個(gè)也僅僅能匹配部分,對(duì)于復(fù)雜的嵌套標(biāo)記依舊無(wú)能為力
匹配首尾空白字符的正則表達(dá)式:^\s*|\s*$
評(píng)注:可以用來(lái)刪除行首行尾的空白字符(包括空格、制表符、換頁(yè)符等等),非常有用的表達(dá)式
匹配Email地址的正則表達(dá)式:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
評(píng)注:表單驗(yàn)證時(shí)很實(shí)用
匹配網(wǎng)址URL的正則表達(dá)式:[a-zA-z]+://[^\s]*
評(píng)注:網(wǎng)上流傳的版本功能很有限,上面這個(gè)基本可以滿足需求
匹配帳號(hào)是否合法(字母開頭,允許5-16字節(jié),允許字母數(shù)字下劃線):^[a-zA-Z][a-zA-Z0-9_]{4,15}$
評(píng)注:表單驗(yàn)證時(shí)很實(shí)用
匹配國(guó)內(nèi)電話號(hào)碼:\d{3}-\d{8}|\d{4}-\d{7}
評(píng)注:匹配形式如 0511-4405222 或 021-87888822
匹配騰訊QQ號(hào):[1-9][0-9]{4,}
評(píng)注:騰訊QQ號(hào)從10000開始
匹配中國(guó)郵政編碼:[1-9]\d{5}(?!\d)
評(píng)注:中國(guó)郵政編碼為6位數(shù)字
匹配身份證:\d{15}|\d{18}
評(píng)注:中國(guó)的身份證為15位或18位
匹配ip地址:\d+\.\d+\.\d+\.\d+
評(píng)注:提取ip地址時(shí)有用
匹配特定數(shù)字:
^[1-9]\d*$ //匹配正整數(shù)
^-[1-9]\d*$ //匹配負(fù)整數(shù)
^-?[1-9]\d*$ //匹配整數(shù)
^[1-9]\d*|0$ //匹配非負(fù)整數(shù)(正整數(shù) + 0)
^-[1-9]\d*|0$ //匹配非正整數(shù)(負(fù)整數(shù) + 0)
^[1-9]\d*\.\d*|0\.\d*[1-9]\d*$ //匹配正浮點(diǎn)數(shù)
^-([1-9]\d*\.\d*|0\.\d*[1-9]\d*)$ //匹配負(fù)浮點(diǎn)數(shù)
^-?([1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0)$ //匹配浮點(diǎn)數(shù)
^[1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0$ //匹配非負(fù)浮點(diǎn)數(shù)(正浮點(diǎn)數(shù) + 0)
^(-([1-9]\d*\.\d*|0\.\d*[1-9]\d*))|0?\.0+|0$ //匹配非正浮點(diǎn)數(shù)(負(fù)浮點(diǎn)數(shù) + 0)
評(píng)注:處理大量數(shù)據(jù)時(shí)有用,具體應(yīng)用時(shí)注意修正
匹配特定字符串:
^[A-Za-z]+$ //匹配由26個(gè)英文字母組成的字符串
^[A-Z]+$ //匹配由26個(gè)英文字母的大寫組成的字符串
^[a-z]+$ //匹配由26個(gè)英文字母的小寫組成的字符串
^[A-Za-z0-9]+$ //匹配由數(shù)字和26個(gè)英文字母組成的字符串
^\w+$ //匹配由數(shù)字、26個(gè)英文字母或者下劃線組成的字符串
評(píng)注:最基本也是最常用的一些表達(dá)式
posted @
2006-09-04 15:58 雙魚座的程序員 閱讀(350) |
評(píng)論 (0) |
編輯 收藏