日期:2014-05-16  浏览次数:20689 次

Android Linux 开发环境搭建
最近一段时间开始了Android源代码研究,陆续将最近的一些经验及资料汇总一下,方便日后查找。

Android源代码编译可以在windows下也可以在Linux下,个人比较习惯Linux。

1.首选是选择Linux系统,原来用的系统已经2年未更新,故而考虑一起更新。
先是选择了Ubuntu 10.10,但在我的电脑上老是桌面假死,另外很多开发工具要单独安装;
更换成Fedora 14,开始还正常,但是编译Android源码时Make总是崩溃;
转换Debian,结果不认我机器的网卡,懒得再搞内核,转回Ubuntu 10.04,这个版本基本ok了,自己要安装一些开发包。

主要包括git-core,gperf,bison,flex,automake,g++,patch,svn,zlib,libncurse等等,这些未必都是android需要的,有些是开发别的项目需要的,可根据自己需要安装。

2.JDK的安装及设置:
通过环境变量来定义JDK路径,基础环境变量是JAVA_HOME,其余的CLASS_PATH等都基于此变量。
JAVA_HOME变量指向系统一个路径,此路径是一个链接,当需要更换版本时,修改此链接指向所需要的版本即可。
为了修改链接方便,可使用系统提供的update-alternatives命令。

2.1下载Java 1.5 SDK,并解包
2.2下载Java 1.6 SDK,并解包
2.3创建JDK链接,路径选定为:/usr/lib/jvm/jdk
update-alternatives --install /usr/lib/jvm/jdk jdk SDK1.5路径 255
此命令的含义为:
管理一个链接/usr/lib/jvm/jdk,并且此链接名字被命名为jdk,可以指向SDK1.5所在的路径,优先级为255。
再增加SDK1.6:
update-alternatives --install /usr/lib/jvm/jdk jdk SDK1.6路径 0
管理一个链接/usr/lib/jvm/jdk,并且此链接名字被命名为jdk,可以指向SDK1.6所在的路径,优先级为0。
2.4SDK版本切换:
update-alternatives --config jdk
看到列表,选择自己需要的SDK版本即可。
2.5编辑.bashrc,在最后增加以下内容,设置环境变量:
export JAVA_HOME=/usr/lib/jvm/jdk
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASS_PATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
2.6应用环境变量:
source .bash_rc 或者重新启动一个终端。
java -v 可以看到java版本号。

3.Eclipse的安装:
直接使用系统提供的Eclipse,结果安装ADT插件时提示少插件,于是直接去Eclipse网站下载了一个Linux版本,解压后在终端直接执行即可使用。
为了方便使用,在桌面上创建了一个快捷方式,结果启动时总是提示找不到Java,修改快捷方式命令行,增加参数:
-vm /usr/lib/jvm/jdk1.6.0_22/bin/java
手工指定启动Eclipse的jvm,一切ok,可以启动了。
剩下的设置就和Windows下面一样了。

另外真机调试可以创建一个udev的规则:
/etc/udev/rules.d/android.rules,内容如下:
SUBSYSTEM=="usb",SYSFS{idVendor}=="18d1",MODE="0666"
其中18d1随着设备不同也有所不同,可以使用lsusb来查看。

ps:
在使用adb连接设备时提示:insufficient permissions for device,是因为adb server启动时不是用的root用户启动的,先kill掉,然后用root权限启动。
adb kill-server
sudo adb start-server
然后:
adb shell就可以连接了