AndroidUbuntu 16.04搭建Android开发编译环境

人生必须的知识就是引人向光明方面的明灯。这篇文章主要讲述AndroidUbuntu 16.04搭建Android开发编译环境相关的知识,希望能为你提供帮助。
一. 通用android环境和工具配置
1. 系统更新升级

sudo apt-get update sudo apt-get upgrade

2. 配置ntlmaps代理上网环境(本公司网络需要代理)
sudo apt-get update sudo apt-get install ntlmaps

  Parent proxy:cnkusisal
  Parent proxy port:8080
  NT Windows domain:wkscn
  以后如果需要重新配置ntlmaps可以用下面命令:
sudo dpkg-reconfigure ntlmaps

3. 安装搜狗输入法
  下载Linux版搜狗输入法:http://pinyin.sogou.com/linux/
  安装输入法:
sudo apt-get install -f sudo dpkg -i sogoupinyin_2.0.0.0072_amd64.deb

  打开语言设置
fcitx-config-gtk3

  如果没有一个键盘,在Addon中全部勾选,重启
  按+,不要勾选“Only ... ...”,选择搜狗,重启
4. 安装VIM文本编辑器
sudo apt-get install vim

5. 安装其他工具
  a. 安装系统状态监测Syspeek
sudo add-apt-repository ppa:nilarimogard/webupd8 sudo apt-get update sudo apt-get install syspeek

  b. 安装wget,unrar,git,gitk等一堆小工具
sudo apt-get install -y wget schedtool pngcrush sudo apt-get install -y nautilus-open-terminal unrar meld ghex gtk-recordmydesktop gitk

  c. 安装Google浏览器
    不喜欢Firefox,可以安装Google浏览器。
    在Software center里面搜不到Google Chrome,不过可以安装Chromium。
6. 配置repo和git 
  配置repo
    将保存的 repo 文件放在~/bin/下面, bin 文件夹不存在,请先行创建,执行
chmod a+x ~/bin/repo export PATH=$PATH:~/bin

  配置git
    以前电脑上配置过git的情况,把.ssh文件夹拷到本机Home下面,配置git config:
    创建  ~/.ssh/config,打开输入下面内容并保存
Host git-01.wxxx.com User Kunkka_An Port 29418

    配置git config信息:
git config --global user.name "Kunkka An/xxx/Wxxx" git config --global user.email "Kunkka_An@xxxx.com"

    上面配置的user.name是gerrit上面的full name,email是gerrit上注册的邮箱。
    以前电脑上没有配置过git的情况
    a. 创建SSH密钥
ssh-keygen -t rsa -C "Kunkka_An@xxxx.com"

      按回车保存到默认位置,再稍等出来提示输入密码短语,输完按回车要输两遍,它用来加密私钥,也就是以后使用私钥的时候要输这个密码;
      稍等出来提示成功,密钥存放在自己主文件夹的.ssh文件夹中
      打开文件管理器,显示隐藏文件后,可以看到这个文件夹中有两个文件,一个私钥一个公钥,把这个文件夹备份一下.id_rsa 是密钥 ,id_rsa.pub是公钥。
    b. 登录gerrit配置相关资料
      登录gerrit后,点右上角设置,在设置页面右边找到 SSH  Keys,点击ADD SSH key。
      到刚才的.ssh文件夹中,双击打开自己的公钥文件 id_rsa.pub,复制里面的所有内容,然后粘贴到SSH key设置框中,然后点下边的“Add Key”导入密钥;
    c. 按照上面其他电脑配置过的步骤,设置git config
7. 安装配置OpenJDK8
 
sudo apt-get update sudo apt-get install openjdk-8-jdk

 
7. 安装配置JDK8
  第一种方法(网上看到的,简单方便,不过没有做完验证是否可行)
sudo add-apt-repository ppa:webupd8team/java sudo apt-get update sudo apt-get install oracle-java8-installer

    然后
sudo apt-get install oracle-java8-set-default

  第二种方法
    a. 下载JDK:http://www.oracle.com/technetwork/java/javase/downloads/index.html
    b. 解压缩下载的JDK到/usr/lib/jvm下面,一开始没有jvm的话要先创建目录
sudo mkdir jvm

sudo tar zxvf jdk-8u144-linux-x64.tar.gz -C /usr/lib/jvm

    c. 配置环境变量
gedit ~/.bashrc

      打开bashrc后开始编辑,在文件末尾加入下面代码:
export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_144 export JRE_HOME=${JAVA_HOME}/jre export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib export PATH=${JAVA_HOME}/bin:$PATH

      保存退出,并运行下面的命令使改动生效:
source ~/.bashrc

    d. 配置默认JDK
      由于系统可能存在多个版本的JDK,需要设置刚刚安装好的JDK来作为默认JDK
sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk1.8.0_144/bin/java 300 sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdk1.8.0_144/bin/javac 300
sudo update-alternatives --config java
sudo update-alternatives --config javac

        如果提示找不到路径,请重启后重试。
    e. 测试配置是否成功
java -version javac

 
二. 配置Android源码编译环境 Android8.0
 
sudo apt-get update

 
1. 安装Google官网提供的编译库
sudo apt-get install bison g++-multilib git gperf libxml2-utils

2. 安装其他编译需要的内容
sudo apt-get install libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-dev g++-multilib sudo apt-get install -y git flex bison gperf build-essential libncurses5-dev:i386 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 libgl1-mesa-dev libxml2-utils xsltproc unzip m4 sudo apt-get install lib32z-dev ccache
sudo apt-get install libssl-dev

 
Unbuntu16.04编译Android6.0的环境会有所不同:
参考别人的总结,编译成功。http://blog.csdn.net/fuchaosz/article/details/51487585
1. 依赖环境安装:
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. 安装OpenJDK7
sudo add-apt-repository ppa:openjdk-r/ppa sudo apt-get update sudo apt-get install openjdk-7-jdk

如果已经安装过OpenJDK8,用命令切换为7
sudo update-alternatives --config java sudo update-alternatives --config javac

3. 修改源码:
修改  mydroid/art/build/Android.common_build.mk  文件,定位到75行,将下面的代码:
ifneq ($(WITHOUT_HOST_CLANG),true)

改为
ifeq ($(WITHOUT_HOST_CLANG),false)

 
三. 配置Android app开发环境
1. 安装配置Android Studio
  拷贝保存的Android Studio软件包
  或者下载Android Studio  http://www.androiddevtools.cn/
  具体Android Studio的配置和使用方法可以参考下面网址:
    第一次使用Android Studio时你应该知道的一切配置
 
@page { margin-top: 0.79in margin-right: 0.79in margin-bottom: 0.79in margin-left: 0.79in } h1 { margin-bottom: 0.08in; direction: ltr; color: rgba(0, 0, 10, 1); line-height: 115%; text-align: left; orphans: 2; widows: 2 } h1.western { font-family: "Liberation Sans", serif; font-size: 14pt; so-language: en-US; font-weight: normal } h1.cjk { font-family: "Noto Sans CJK SC Regular"; font-size: 14pt; so-language: zh-CN; font-weight: normal } h1.ctl { font-family: "FreeSans"; font-size: 14pt; so-language: ar-SA; font-weight: normal } p { margin-bottom: 0.1in; direction: ltr; color: rgba(0, 0, 10, 1); line-height: 120%; text-align: left; orphans: 2; widows: 2 } p.western { font-family: "Calibri", serif; font-size: 11pt; so-language: en-US } p.cjk { font-family: "宋体"; font-size: 11pt; so-language: zh-CN } p.ctl { font-size: 11pt; so-language: ar-SA } a:link { color: rgba(0, 0, 255, 1) } Android Studio 导入 Android 源码  http://blog.csdn.net/heqiangflytosky/article/details/62236001
四. 其他设置
1. 设置adb环境变量
  adb工具位于SDK目录下的platform-tools中
  a.因为拷贝过来的,所以要设置下权限   
sudo chmod -R a+x Tools/AndroidStudio/android-studio-sdk/

  b. 编辑profile文件设置环境变量
sudo gedit /etc/profile

  加上下面(可以用android studio也可以用eclipse)路径要用自己的路径
export PATH=$PATH:/home/kunkka/Tools/AndroidStudio/android-studio-sdk/android-sdk-linux/tools:/home/kunkka/Tools/AndroidStudio/android-studio-sdk/android-sdk-linux/platform-tools

  或者
export PATH=$PATH:/home/kunkka/AndroidDeveloper/adt-bundle-linux-x86_64-20140321/sdk/platform-tools:/home/kunkka/AndroidDeveloper/adt-bundle-linux-x86_64-20140321/sdk/tools

 
2. Android设备USB设置
  如果识别不到android设备,需要设置一下USB配置
@page { margin-top: 0.79in margin-right: 0.79in margin-bottom: 0.79in margin-left: 0.79in } p { margin-bottom: 0.1in; direction: ltr; color: rgba(0, 0, 10, 1); line-height: 120%; text-align: left; orphans: 0; widows: 0 } p.western { font-family: "Calibri", serif; font-size: 12pt; so-language: en-US } p.cjk { font-family: "Droid Sans Fallback"; font-size: 12pt; so-language: zh-TW } p.ctl { font-size: 11pt; so-language: ar-SA } a:link { color: rgba(0, 0, 255, 1); so-language: zxx }    将保存的  51-android.rules 拷贝到 /etc/udev/rules.d/ 下面
    将 保存的adb_usb.ini 拷贝到 ~/.android/ 下面
  对于新设备,如果 vid 没包含在上面的文件中,请做下面的操作。
    a.  先通过 lsusb 命令得到新设备的 vendor id, ID 后面的前 4 位即是 vid.
    b. 打开编辑51-android.rules
sudo gedit /etc/udev/rules.d/51-android.rules

    然后在文件末尾添加
SUBSYSTEM=="usb", ATTRS{idVendor}=="05E0", MODE="0666"

    红色字体即是第一步得到的 vid.
    c.  执行
sudo service udev restart

    或
sudo /etc/init.d/udev restart

    d.  打开编辑adb_usb.ini
sudo gedit ~/.android/adb_usb.ini

    然后在文件末尾添加0x05E0,同样,红色字体即是第一步得到的 vid.
    e.  执行
adb kill-server

    f.  执行
adb devices

  如果此时仍识别不到设备,请重启你电脑。
【AndroidUbuntu 16.04搭建Android开发编译环境】 
@page { margin-top: 0.79in margin-right: 0.79in margin-bottom: 0.79in margin-left: 0.79in } p { margin-bottom: 0.1in; direction: ltr; color: rgba(0, 0, 10, 1); line-height: 120%; text-align: left; orphans: 0; widows: 0 } p.western { font-family: "Calibri", serif; font-size: 12pt; so-language: en-US } p.cjk { font-family: "Droid Sans Fallback"; font-size: 12pt; so-language: zh-TW } p.ctl { font-size: 11pt; so-language: ar-SA } a:link { color: rgba(0, 0, 255, 1); so-language: zxx } @page { margin-top: 0.79in margin-right: 0.79in margin-bottom: 0.79in margin-left: 0.79in } p { margin-bottom: 0.1in; direction: ltr; color: rgba(0, 0, 10, 1); line-height: 120%; text-align: left; orphans: 0; widows: 0 } p.western { font-family: "Calibri", serif; font-size: 12pt; so-language: en-US } p.cjk { font-family: "Droid Sans Fallback"; font-size: 12pt; so-language: zh-TW } p.ctl { font-size: 11pt; so-language: ar-SA } a:link { color: rgba(0, 0, 255, 1); so-language: zxx } @page { margin-top: 0.79in margin-right: 0.79in margin-bottom: 0.79in margin-left: 0.79in } p { margin-bottom: 0.1in; direction: ltr; color: rgba(0, 0, 10, 1); line-height: 120%; text-align: left; orphans: 0; widows: 0 } p.western { font-family: "Calibri", serif; font-size: 12pt; so-language: en-US } p.cjk { font-family: "Droid Sans Fallback"; font-size: 12pt; so-language: zh-TW } p.ctl { font-size: 11pt; so-language: ar-SA } a:link { color: rgba(0, 0, 255, 1); so-language: zxx } @page { margin-top: 0.79in margin-right: 0.79in margin-bottom: 0.79in margin-left: 0.79in } p { margin-bottom: 0.1in; direction: ltr; color: rgba(0, 0, 10, 1); line-height: 120%; text-align: left; orphans: 0; widows: 0 } p.western { font-family: "Calibri", serif; font-size: 12pt; so-language: en-US } p.cjk { font-family: "Droid Sans Fallback"; font-size: 12pt; so-language: zh-TW } p.ctl { font-size: 11pt; so-language: ar-SA } a:link { color: rgba(0, 0, 255, 1); so-language: zxx } @page { margin-top: 0.79in margin-right: 0.79in margin-bottom: 0.79in margin-left: 0.79in } p { margin-bottom: 0.1in; direction: ltr; color: rgba(0, 0, 10, 1); line-height: 120%; text-align: left; orphans: 0; widows: 0 } p.western { font-family: "Calibri", serif; font-size: 12pt; so-language: en-US } p.cjk { font-family: "Droid Sans Fallback"; font-size: 12pt; so-language: zh-TW } p.ctl { font-size: 11pt; so-language: ar-SA } a:link { color: rgba(0, 0, 255, 1); so-language: zxx }

    推荐阅读