Android编译环境的搭建
2015-08-25 19:18
543 查看
这里以Ubuntu12.04为例讲诉如何搭建Android源码的编译环境
1.更改ubuntu12.04的更新源
工欲善其事,必先利其器由于ubuntu的软件更新源地址默认设国外,下载软件的速度相当较慢,这里将
ubuntu的软件更新源设为网易的服务站点。
sudo gedit /etc/apt/sources.list,删除全部内容,并添加以下内容。
如http://www.oschina.net/code/snippet_105637_34442。
2.安装依赖库
sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl
zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev ia32-libs
x11proto-core-dev libx11-dev lib32readline-gplv2-dev lib32z1-dev libxml-simple-perl
确保每个库都安装成功,否则编译出错又要回来装库。有些库安装不成功可能是库名字换了,要注意屏幕上的打印信息。
3.安装JDK
从网上下载JDK安装包,并输入JDK的路径。(如果Android版本是4.4之前的,要使用jdk1.6。如果Android版本是5.0之后的,要使用jdk1.7或之后的版本)
sudo /etc/profile,添加如下内容
export JAVA_HOME=/opt/JDK/java-7-openjdk-amd64
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
其中,将/opt/JDK/java-7-openjdk-amd64换成你JDK包的路径,使用$PATH可使用判断JDK是否安装成功。
其实,相对windows的软件安装方式,这也无所谓是安装JDK。其实是下载已经解压JDK文件夹,并将该文夹
的路径输出到环境变量中,以便被正确调用。
4.编译Android源码
4.1 使能编译脚本 在Android源码目录下运行source build/envsetup.sh,相当于输出一些临时变量,shell终端退出后无效
4.2 选择具体机型 在终端运行lunch,随后会打印机型列表,通过输入数字选择具体的机型
或者
root@root:~/msm8909$ choosecombo
Build type choices are:
1. release
2. debug
Which would you like? [1] 1
Which product would you like? [full] msm8974
Variant choices are:
1. user
2. userdebug
3. eng
Which would you like? [eng] 2
4.3 正式编译 在终端运行make,如果之前没有编译过Android源码,该过程相当久,记得make -j4,如果在服务器上编译的话会相当快哦
在终端上运行printenv可查看我们的配置情况
5.fastboot的安装
sudo add-apt-repository ppa:nilarimogard/webupd8
sudo apt-get update
sudo apt-get install android-tools-adb android-tools-fastboot
fastoot的使用方法
烧写镜像 fastboot flash+分区+镜像
如fastboot flash boot boot.img
擦除分区 fastboot erase 分区
如fastboot flash boot
6.adb的安装
sudo add-apt-repository ppa:nilarimogard/webupd8
sudo apt-get update
sudo apt-get install android-tools-adb
通过lsusb查看设备为
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 002 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 002 Device 003: ID 046d:c077 Logitech, Inc.
将android设备连接至电脑,通过lsusb查看usb设备,如下红色部分对应的就是android设备
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 002 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 001 Device 027: ID 1f3a:1002
Bus 002 Device 003: ID 046d:c077 Logitech, Inc.
这里可以发现android设备就是Bus 001 Device 027: ID 1f3a:1002
添加权限
sudo vim /etc/udev/rules.d/70-android.rules
加入以下内容,注意红色部分对应的就是lsusb得到的id
SUBSYSTEM=="usb",ATTRS{idVendor}=="1f3a",
ATTRS{idProduct}=="1002",MODE="0666"
sudo chmod a+rx /etc/udev/rules.d/70-android.rules
运行脚本,usb.sh该脚本的内容为
sudo service udev restart
adb kill-server
sudo adb start-server
adb devices
该脚本无非就是重启一下udev和adb服务,有时lsusb发现设备了,但adb devices没找到设备,可以运行一下该
脚本,立马就可以使用adb了。当然,如果你不怕麻烦,可以单独将这些命令在终端上敲一遍。
1.更改ubuntu12.04的更新源
工欲善其事,必先利其器由于ubuntu的软件更新源地址默认设国外,下载软件的速度相当较慢,这里将
ubuntu的软件更新源设为网易的服务站点。
sudo gedit /etc/apt/sources.list,删除全部内容,并添加以下内容。
deb http://mirrors.163.com/ubuntu/ precise main restricted deb-src http://mirrors.163.com/ubuntu/ precise main restricted deb http://mirrors.163.com/ubuntu/ precise-updates main restricted deb-src http://mirrors.163.com/ubuntu/ precise-updates main restricted deb http://mirrors.163.com/ubuntu/ precise universe deb-src http://mirrors.163.com/ubuntu/ precise universe deb http://mirrors.163.com/ubuntu/ precise-updates universe deb-src http://mirrors.163.com/ubuntu/ precise-updates universe deb http://mirrors.163.com/ubuntu/ precise multiverse deb-src http://mirrors.163.com/ubuntu/ precise multiverse deb http://mirrors.163.com/ubuntu/ precise-updates multiverse deb-src http://mirrors.163.com/ubuntu/ precise-updates multiverse deb http://mirrors.163.com/ubuntu/ precise-backports main restricted universe multiverse deb-src http://mirrors.163.com/ubuntu/ precise-backports main restricted universe multiverse deb http://mirrors.163.com/ubuntu/ precise-security main restricted deb-src http://mirrors.163.com/ubuntu/ precise-security main restricted deb http://mirrors.163.com/ubuntu/ precise-security universe deb-src http://mirrors.163.com/ubuntu/ precise-security universe deb http://mirrors.163.com/ubuntu/ precise-security multiverse deb-src http://mirrors.163.com/ubuntu/ precise-security multiverse deb http://extras.ubuntu.com/ubuntu precise main deb-src http://extras.ubuntu.com/ubuntu precise main然后运行apt-get update更新一下软件源当然还可以使用其他更新源,百度一下ubuntu12.04更新源。
如http://www.oschina.net/code/snippet_105637_34442。
2.安装依赖库
sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl
zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev ia32-libs
x11proto-core-dev libx11-dev lib32readline-gplv2-dev lib32z1-dev libxml-simple-perl
确保每个库都安装成功,否则编译出错又要回来装库。有些库安装不成功可能是库名字换了,要注意屏幕上的打印信息。
3.安装JDK
从网上下载JDK安装包,并输入JDK的路径。(如果Android版本是4.4之前的,要使用jdk1.6。如果Android版本是5.0之后的,要使用jdk1.7或之后的版本)
sudo /etc/profile,添加如下内容
export JAVA_HOME=/opt/JDK/java-7-openjdk-amd64
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
其中,将/opt/JDK/java-7-openjdk-amd64换成你JDK包的路径,使用$PATH可使用判断JDK是否安装成功。
其实,相对windows的软件安装方式,这也无所谓是安装JDK。其实是下载已经解压JDK文件夹,并将该文夹
的路径输出到环境变量中,以便被正确调用。
4.编译Android源码
4.1 使能编译脚本 在Android源码目录下运行source build/envsetup.sh,相当于输出一些临时变量,shell终端退出后无效
4.2 选择具体机型 在终端运行lunch,随后会打印机型列表,通过输入数字选择具体的机型
或者
root@root:~/msm8909$ choosecombo
Build type choices are:
1. release
2. debug
Which would you like? [1] 1
Which product would you like? [full] msm8974
Variant choices are:
1. user
2. userdebug
3. eng
Which would you like? [eng] 2
4.3 正式编译 在终端运行make,如果之前没有编译过Android源码,该过程相当久,记得make -j4,如果在服务器上编译的话会相当快哦
在终端上运行printenv可查看我们的配置情况
5.fastboot的安装
sudo add-apt-repository ppa:nilarimogard/webupd8
sudo apt-get update
sudo apt-get install android-tools-adb android-tools-fastboot
fastoot的使用方法
烧写镜像 fastboot flash+分区+镜像
如fastboot flash boot boot.img
擦除分区 fastboot erase 分区
如fastboot flash boot
6.adb的安装
sudo add-apt-repository ppa:nilarimogard/webupd8
sudo apt-get update
sudo apt-get install android-tools-adb
通过lsusb查看设备为
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 002 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 002 Device 003: ID 046d:c077 Logitech, Inc.
将android设备连接至电脑,通过lsusb查看usb设备,如下红色部分对应的就是android设备
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 002 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 001 Device 027: ID 1f3a:1002
Bus 002 Device 003: ID 046d:c077 Logitech, Inc.
这里可以发现android设备就是Bus 001 Device 027: ID 1f3a:1002
添加权限
sudo vim /etc/udev/rules.d/70-android.rules
加入以下内容,注意红色部分对应的就是lsusb得到的id
SUBSYSTEM=="usb",ATTRS{idVendor}=="1f3a",
ATTRS{idProduct}=="1002",MODE="0666"
sudo chmod a+rx /etc/udev/rules.d/70-android.rules
运行脚本,usb.sh该脚本的内容为
sudo service udev restart
adb kill-server
sudo adb start-server
adb devices
该脚本无非就是重启一下udev和adb服务,有时lsusb发现设备了,但adb devices没找到设备,可以运行一下该
脚本,立马就可以使用adb了。当然,如果你不怕麻烦,可以单独将这些命令在终端上敲一遍。
相关文章推荐
- Android5.0 OTG模块传输速度-bulkTransfer
- android---护眼灯和兼容性高的手电筒实现
- Android修改init.rc和init.xx.rc文件
- Android悬浮窗口的实现
- Sorageinfo类获得Android设备上挂载的所有存储器状态
- Android4.3 蓝牙BLE初步
- 菜鸟进阶Android Touch事件传递(四)
- android、ios与服务器端php使用rsa加密解密通讯
- Android 中textview显示富文本信息
- Android 中textview显示富文本信息
- Android TextView 如何判断是否已经省略
- 调用系统相机 data返回null
- android数据库事务
- Android自定义EditText去除边框并添加下划线
- Android:30分钟弄明白Touch事件分发机制
- android 跳转 系统浏览器的方法
- Android 常规任务的高度【schedule】与【scheduleAtFixedRate】差额
- android byte[] 和short[]的转换
- Android Toolbar样式定制详解
- Android Activity生命周期演示程序的例子