2013年1月22日
google推荐的编译环境是在Ubuntu LTS(10.04),但是最新版本12.10已经出来,没必要在旧版本上做文章了
对于2.3.X和更新的版本,需要64位的系统,之前的老版本2.2以下(包括2.2)可以在32位版本上编译
对于虚拟机,官网上写的虚拟机配置参数:16G RAM/swap & 30G+ 硬盘空间
PS: 全部编译完毕后,才发现真的很耗空间
源代码下载/编译完成后,磁盘空间一共是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/
言归正题,按照官网的文档,安装所需要的工具
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系统自带(新系统的好处),git后面会通过安装必须包来安装,所以只需要我们手动安装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: 后来发现这里可以选择不安装openjdk。android生成主要用到的是 jdk1.6
安装JDK 1.6.0
1.下载
2013-1-22,当前最新版本是 1.6.0_38
http://www.oracle.com/technetwork/java/javase/downloads/jdk6u38-downloads-1877406.html
这里请选择64位的linux版本,对应的下载文件名:jdk-6u38-linux-x64.bin.
2.安装
修改文件权限,复制到/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上会多出一个目录(jdk1.6.0_38),其实执行.bin文件感觉就是一个解压文件
3.环境配置
修改/etc/profile文件
export JAVA_HOME="/usr/lib/jvm/jdk1.6.0_38"
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=".:$JAVA_HOME/bin"
建议重启或注销一下系统,让配置生效~~~
此时输入: 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)
如果系统中有时候会安装openjdk,我们还需要修改一下java的默认程序,让他使用jdk1.6.0进行android编译
安装java/javac/jar,执行如下命令:
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
执行后这三个命令,网上的资源说可以自动切换到jdk1.6.0_38,但是我配置的时候不行,可能再通过下面这三个命令,手动指定了
sudo update-alternatives --config java
sudo update-alternatives --config javac
sudo update-alternatives --config jar
代码下载:
下载repo,初始化下载环境,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
下载是个漫长的过程,我的机子一个周末开着下载~~~good lucky~~~
编译代码:
初始化脚本, make编译
$ source build/envsetup.sh
$ lunch full-eng
$ make -jN
这里的三个命令参考官方的文档,官网上说明很详细。特别是第二条命令的参数,你想生成什么样的配置,就设定什么样的参数
http://source.android.com/source/building.html
运行emulator
模拟器就运行起来了。。。
posted @
2013-01-22 10:20 双鱼座的程序员 阅读(8170) |
评论 (1) |
编辑 收藏
2006年9月4日
匹配中文字符的正则表达式: [\u4e00-\u9fa5]
评注:匹配中文还真是个头疼的事,有了这个表达式就好办了
匹配双字节字符(包括汉字在内):[^\x00-\xff]
评注:可以用来计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)
匹配空白行的正则表达式:\n\s*\r
评注:可以用来删除空白行
匹配HTML标记的正则表达式:< (\S*?)[^>]*>.*?|< .*? />
评注:网上流传的版本太糟糕,上面这个也仅仅能匹配部分,对于复杂的嵌套标记依旧无能为力
匹配首尾空白字符的正则表达式:^\s*|\s*$
评注:可以用来删除行首行尾的空白字符(包括空格、制表符、换页符等等),非常有用的表达式
匹配Email地址的正则表达式:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
评注:表单验证时很实用
匹配网址URL的正则表达式:[a-zA-z]+://[^\s]*
评注:网上流传的版本功能很有限,上面这个基本可以满足需求
匹配帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线):^[a-zA-Z][a-zA-Z0-9_]{4,15}$
评注:表单验证时很实用
匹配国内电话号码:\d{3}-\d{8}|\d{4}-\d{7}
评注:匹配形式如 0511-4405222 或 021-87888822
匹配腾讯QQ号:[1-9][0-9]{4,}
评注:腾讯QQ号从10000开始
匹配中国邮政编码:[1-9]\d{5}(?!\d)
评注:中国邮政编码为6位数字
匹配身份证:\d{15}|\d{18}
评注:中国的身份证为15位或18位
匹配ip地址:\d+\.\d+\.\d+\.\d+
评注:提取ip地址时有用
匹配特定数字:
^[1-9]\d*$ //匹配正整数
^-[1-9]\d*$ //匹配负整数
^-?[1-9]\d*$ //匹配整数
^[1-9]\d*|0$ //匹配非负整数(正整数 + 0)
^-[1-9]\d*|0$ //匹配非正整数(负整数 + 0)
^[1-9]\d*\.\d*|0\.\d*[1-9]\d*$ //匹配正浮点数
^-([1-9]\d*\.\d*|0\.\d*[1-9]\d*)$ //匹配负浮点数
^-?([1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0)$ //匹配浮点数
^[1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0$ //匹配非负浮点数(正浮点数 + 0)
^(-([1-9]\d*\.\d*|0\.\d*[1-9]\d*))|0?\.0+|0$ //匹配非正浮点数(负浮点数 + 0)
评注:处理大量数据时有用,具体应用时注意修正
匹配特定字符串:
^[A-Za-z]+$ //匹配由26个英文字母组成的字符串
^[A-Z]+$ //匹配由26个英文字母的大写组成的字符串
^[a-z]+$ //匹配由26个英文字母的小写组成的字符串
^[A-Za-z0-9]+$ //匹配由数字和26个英文字母组成的字符串
^\w+$ //匹配由数字、26个英文字母或者下划线组成的字符串
评注:最基本也是最常用的一些表达式
posted @
2006-09-04 15:58 双鱼座的程序员 阅读(342) |
评论 (0) |
编辑 收藏