Ubuntu 16.04安装以及Android开发编译环境配置

1、新机安装Ubuntu 16.04系统

PS:
由于主板可能有所差异,BIOS界面的进入方式会有所不同,主流的BIOS进入方式是在开机等待界面按delete进入,如若尝试不成功可以尝试在等待界面按F12

常见的电脑系统重装方法:光盘重装、U盘重装、硬盘重装、软件重装,我们这里使用U盘重装
(1)内存和硬盘
新机的内存和硬盘都是手动安装,可能会遇到安装不到位的状况,首先需要确定电脑可以正常开机,内存大小显示正常
进入BIOS界面,选择Main词条,点击进入System Summary,查看CPU Type、Installed Memory、SATA Driver数量 和配置清单上的信息是否相同

(2)BIOS界面设置U盘启动
进入BIOS界面,选择StartUp词条,进入Primary Boot Sequence,通过+/-将USB KEY的启动顺序调至第一,保存设置并退出;
重新启动时,按F12进入Startup Device Memu,选择USB KEY词条,回车;

(3)进入安装界面
选择install Ubuntu (第二个)回车;

(4)设置系统,并且建立分区
设置系统语言—>中文(简体)----->继续----->继续----->其他选项,继续
分区:
2T 2TB //media(自定义,也可以是你的用户名)
1T
512M 主分区EXT4 /boot
16GB 交换空间
60GB 日志系统 /
剩下的 逻辑分区EXT4 /home

在下方安装启动引导器设备选择 /dev/sdb … … (1.0TB) -----> 现在安装 ----> shanghai,继续 -----> 汉语,继续

系统设置:
用户名 : 姓名缩写首字母
密码 : 123456
… …
继续

(5)系统安装完成,退出U盘,开机检查系统是否安装成功;

注意:在装系统中,连接网线。如果新机装系统失败,则重新安装,不过不需要再建分区,只要在原来的基础上将ROOT、根目录\、交换区格式化,home及其他分区重新设置就行,不需要格式化,这样只是重装了系统,保留了电脑原来的文档资源等。

2、电脑环境配置

(1)打开终端,输入 uname -a ,检查系统版本为:ubuntu 16.04 LTS 64bit

(2)shell脚本编辑器默认是dash,功能较弱,建议改成bash, sudo ln -snf /bin/bash /bin/sh 可以使用:ls -l /bin/sh 来查看装的是dash还是bash

(3)准备JDK程序
在Home下,新建一个名为“tools”文件夹,里面专门存放一些工具。
下载公司要求的jdk1.6、jdk1.7,jdk1.8版本。
将源文件拷贝到你tools中,在终端输入命令:
1)sudo mkdir -p /usr/lib/jvm 2)cd /usr/lib/jvm 3)sudo tar -xzvf /绝对路径下的/java-1.7.0-openjdk-amd64.tar.gz 4)sudo tar -xzvf /绝对路径下的/java-8-openjdk-amd64.tar.gz 绝对路径是你将jdk复制到哪的位置,如果你不知道你jdk文件的位置,可以选中jdk文件,右击,选择“属性”,就能看到位置了;或者直接拖动你的文件到命令行。

(4)准备SDK程序
下载公司要求的sdk版本,解压后将此文件夹放到自己的tools文件夹下。

(5)环境变量定义
局部环境变量定义—无须重启,关闭当前终端重新打开起效
gedit ~/.bashrc 会打开一个名为“.bashrc”的文件,在文件最后面复制下面那段。

全局环境变量定义---重启系统起效
``sudo gedit /etc/profile``
会打开一个名为“.bashrc”的文件,在文件最后面复制下面那段。

配置文件添加如下代码,【路径】为自己绝对路径文件夹去掉/home/***(你的用户名)/
```
export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-amd64 
#export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export JRE_HOME=${JAVA_HOME}/jre  
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib  
export PATH=${JAVA_HOME}/bin:$PATH

export PATH=$HOME/【路径】/sdk_5.1/tools:$PATH
export PATH=$HOME/【路径】/sdk_5.1/platform-tools:$PATH
```
检查以上环境变量配置是否OK的方法如下: 
``java -version``
``adb --version``
``ddms``

(6)安装编译等一系列的工具
1)更新apt-get服务器获取软件列表
sudo apt-get update

2)增加Wine模拟环境的源(可以选择跳过)
	``sudo add-apt-repository ppa:ubuntu-wine/ppa``

3)安装常用软件及环境必备包
	
	``sudo apt-get install xfce4 vnc4server ssh meld subversion perl python samba system-config-samba git gitk openssh-server flex bison gperf build-essential curl zlib1g-dev g++-multilib libc6-dev-i386 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z1-dev tofrodos xsltproc libxml2-utils libswitch-perl cpu-checker virtinst bridge-utils libssl-dev virt-manager qemu -y``
		
4)配置共享文件夹
	``sudo apt-get remove samba-common smbclient samba -y``
	``sudo apt-get install samba system-config-samba cifs-utils -y``
	``

sudo system-config-samba
``
配置方法:

首选项->Samba用户->添加用户->UNIX用户(选择自己的Linux用户名)-> Windows用户(同LINUX用户名)-> Samba密码(访问共享的密码)->确认,配置完毕后返回主界面
  
文件—>添加共享->创建Samba共享->基本(标签)->目录(要共享的文件夹,比如/home/xiaomi/work)->勾选(可擦除、显示) ->访问(标签) ->只允许指定用户访问(勾选用户)
	
5)配置USB访问权限
	下载 51-android.rules文件,如果找不到资源可以自己创建一个51-android.rules文件,该文件内容附文末。
	复制51-android.rules 到 Home, 在终端输入:
    ``sudo cp  51-android.rules  /etc/udev/rules.d/51-android.rules``
	
6)附加可选操作
	双击脚本文件的选择框(执行脚本还是编辑脚本)
	文件夹标题栏 —> 编辑 —> 首选项 —> 行为 —> 可执行文件 —> 每次都咨询

3、Android Studio安装和配置

浏览器打开 [Android Studio 中文社区]{www.android-studio.org}, 选择其他平台, Linux版本, 点击下载;
下载完成后进入android-studio/bin, 右击在终端打开, 输入 ``./studio.sh``, 即可打开android-studio;
第一次打开会比较慢, 请耐心等待


android studio 遇到的问题:

1)android devicemonitor(adm) 打不开
问题:An error has occurred. See the log file/home/hb/Android/Sdk/tools/lib/monitor-x86_64/configuration/1517387510925.log
个人琢磨,总结的经验:jdk版本要1.8,jdk1.7好像不行。还要管理员身份运行。在android studio文件夹下的bin文件夹,打开终端,运行.studio.sh文件

2)android studio无法在真机运行检测
问题:Error running app: Instant Run requires ‘Tools | Android | Enable ADB integration’ to be enabled.
原因:android studio 的ADB integration 没有打开
解决方案:打开android studio ,在tools–> Android–>Enable ADB integration点击一下,如果在Enable ADB integration前面有个“√”,则已打开,该问题就能解决。

3.bcompare工具下载
网上找资源下载bcompare.deb文件。
终端输入:
sudo apt-get updatesudo apt-get install gdebicd 到安装包的文件夹sudo gdebi bcompare-3.3.13.18981_i386.deb

问题:安装不成功,有未满足的依赖关系
解决方案:可能是自身电脑的问题,之前软件中心存在问题,把ubuntu软件中心完善了一下,之后就能成功安装了

4.一些工具在安装sdk 和 android studio 就附带了
在sdk_5.1————>bin文件夹下,存在运行文件uiautomatorviewer hierarchyviewer monkeyrunner traceview
git 在终端 输入 git --version 就能看到git 安装的版本,确认是否安装了git

5.gat
下载gat文件,将源文件复制,解压就行

问题:A Java Runtime Environment (JRE) or Java Development Kit (JDK) must be available in order to run GAT. No Java virtual machine was found after searching the following locations: /usr/bin/java
原因:脚本代码执行时,在该路径找不到java
解决方案:
打开工具所在文件夹下的 。。。/gat-linux-x86_64-3/gat
在gat文件最下面找到:exec monitor/GAT -vm /usr/bin/java改为你的java路径
我的修改:
- exec monitor/GAT -vm /usr/bin/java
+ exec monitor/GAT -vm /usr/lib/jvm/java-8-openjdk-amd64/bin/java

6.source insight的使用
source insight 是Windows平台的应用软件。虽然source insight也是一个语言编辑器,但还是当成一个搜索和阅读代码工具。
在虚拟机打开source insight
创建工程:
步骤:
–>Project
–>选择第一个,New Project
–>可以新建一个项目,名称就是所做项目的名称,存放路径为你项目的同级目录tools文件夹,如果没有,则可以创建一个tools文件夹,点击OK
–>这个界面,默认,点击OK就行
–>在弹出的“Add and Remove Project Files”对话框中,右侧栏“File Name”选择你所需要的工程文件,点击旁边的“Add”增加按钮,如果需要把该文件夹所有的文件添加进去,点击旁边的按钮“Add All”就可以了。当点击“Add”和“Add All”时,会跳出一个提示框“Add to Project”,两个都选,点击OK就行。
通常在创建一个项目过程中,我们添加framework、package和system这三个文件夹
–>添加完成,关闭窗口

强制建立关系网:
好处:加速工程的前后的联系。
步骤:–>Project
–>选择倒数第二个Rebuild Project
–>默认选择,点击ok
–>在弹出的窗口,点击确定。

双击最右旁边栏目“File Name”里的文件,左则栏目则会显示出该项目的所有文件,包括文件名字、函数、变量。再点击左边栏上的任意文件,中间栏目就会出现这个文件里的所有代码。 
  按住“ctrl”键不动,鼠标指向变量或函数再点击一下,则进入了定义。
  "Lockuo References"图标  有点像“R”的,鼠标选中变量或函数,可以在全局查找其定义和使用之处。
  “Go To Previous Link”和“Go To Next Link”图标  可以在不同的查找结果之间跳转。
  “Go Back”和“Go Forward”图标  蓝黑色的箭头可以转到你前一次和后一次编辑过得地方

51-android.rules:
 SUBSYSTEM==“usb”, ATTRS{idVendor}“1d6b”, ATTRS{idProduct}“0002”,MODE=“0666”
 SUBSYSTEM==“usb”, ATTRS{idVendor}“0bb4”, ATTRS{idProduct}“0ccf”,MODE=“0666”
 SUBSYSTEM==“usb”, ATTRS{idVendor}“0bb4”, ATTRS{idProduct}“0cf2”,MODE=“0666”
 SUBSYSTEM==“usb”, ATTRS{idVendor}“0bb4”, ATTRS{idProduct}“0c03”,MODE=“0666”
 SUBSYSTEM==“usb”, ATTRS{idVendor}“0fce”, ATTRS{idProduct}“614f”,MODE=“0666”
 SUBSYSTEM==“usb”, ATTRS{idVendor}“22b8”, ATTRS{idProduct}“41db”,MODE=“0666”
 SUBSYSTEM==“usb”, ATTRS{idVendor}“18d1”, ATTRS{idProduct}“9025”,MODE=“0666”
 SUBSYSTEM==“usb”, ATTRS{idVendor}“0bb4”, ATTRS{idProduct}“0c86”,MODE=“0666”
 SUBSYSTEM==“usb”, ATTRS{idVendor}“0525”, ATTRS{idProduct}“0c02”,MODE=“0666”
 SUBSYSTEM==“usb”, ATTRS{idVendor}“22b8”, ATTRS{idProduct}“4366”,MODE=“0666”
 SUBSYSTEM==“usb”, ATTRS{idVendor}“22b8”, ATTRS{idProduct}“428c”,MODE=“0666”
 SUBSYSTEM==“usb”, ATTRS{idVendor}“0bb4”, ATTRS{idProduct}“4e22”,MODE=“0666”
 SUBSYSTEM==“usb”, ATTRS{idVendor}“22b8”, ATTRS{idProduct}“7087”,MODE=“0666”
 SUBSYSTEM==“usb”, ATTRS{idVendor}“0bb4”, ATTRS{idProduct}“0c97”,MODE=“0666”
 SUBSYSTEM==“usb”, ATTRS{idVendor}“19d2”, ATTRS{idProduct}“1350”,MODE=“0666”
 SUBSYSTEM==“usb”, ATTRS{idVendor}“12d1”, ATTRS{idProduct}“1038”,MODE=“0666”
 SUBSYSTEM==“usb”, ATTRS{idVendor}“12d1”, ATTRS{idProduct}“1052”,MODE=“0666”
 SUBSYSTEM==“usb”, ATTRS{idVendor}“2717”, ATTRS{idProduct}“0360”,MODE=“0666”
 SUBSYSTEM==“usb”, ATTRS{idVendor}“18d1”, ATTRS{idProduct}“4e26”,MODE=“0666”
 SUBSYSTEM==“usb”, ATTRS{idVendor}“2a45”, ATTRS{idProduct}“0c02”,MODE=“0666”
 SUBSYSTEM==“usb”, SYSFS{idVendor}“1782”, MODE=“0666”
 SUBSYSTEM"usb", ATTR{idVendor}“1782”, ATTR{idProduct}“5d24”, SYMLINK+=“android_adb”
 SUBSYSTEM==“usb”, ACTION==“add”,ATTRS{idVendor}“1782”,ATTRS{idProduct}“4d00”,RUN+="/sbin/modprobe sciu2s vendor=0x1782 product=0x4d00"
 SUBSYSTEMS==“usb”, ATTRS{modalias}“usb:v1782p4d00*”, KERNEL"ttyUSB*", ATTRS{bInterfaceNumber}“00”, ATTRS{bInterfaceProtocol}“00”, SYMLINK+=“ttyUSB_sprd_download”