一. 通用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:xxxcn
以后如果需要重新配置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 XXXXX_XX
Port 29418
配置git config信息:
git config --global user.name "XXXX XX/xxx/Wxxx"
git config --global user.email "[email protected]"
上面配置的user.name是gerrit上面的full name,email是gerrit上注册的邮箱。
以前电脑上没有配置过git的情况
a. 创建SSH密钥
ssh-keygen -t rsa -C "[email protected]"
按回车保存到默认位置,再稍等出来提示输入密码短语,输完按回车要输两遍,它用来加密私钥,也就是以后使用私钥的时候要输这个密码;
稍等出来提示成功,密钥存放在自己主文件夹的.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
二. 配置Android源码编译环境
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 installzip 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
三. 配置Android app开发环境
1. 安装配置Android Studio
拷贝保存的Android Studio软件包
或者下载Android Studio http://www.androiddevtools.cn/
具体Android Studio的配置和使用方法可以参考下面网址:
第一次使用Android Studio时你应该知道的一切配置
四. adb和USB设置
1. 设置adb环境变量
adb工具位于SDK目录下的platform-tools中
a.因为拷贝过来的,所以要设置下权限
sudochmod -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配置
将保存的 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
如果此时仍识别不到设备,请重启你电脑。
五. 源码下载与编译
1. 配置gitconfig
由于項目是从台北mirror server上下载代码,所以需要配置下载代码的位置。
打开~/.gitconfig文件,在最后添加下面的内容:
[url "ssh://[email protected]:22"]
insteadOf = ssh://xxxxxxxxxxxxxx
2. 修改hosts文件来访问zebra的原路径
使用sudo来编辑/etc/hosts文件,在文件末尾添加:
xxx.xx.xxx.xx ny21gitapp01.am.mot-solutions.com
xxx.xxx.xx.x git-mirror.wistron.com
3. 下载源码
使用下面的命令来从mirror server上下载源码:
mkdir beast
cd beast
repo init --reference=/build/mirror -u ssh://xxxxx.xx.xxxx:29418/ZEUS/manifest -b sdm660-android-o -m bigboard-bringup-o.xml
repo sync
***************************************************************************
当我们在自己的服务器上搭建Git远程仓库,并让本地关联到远程仓库的时候,我们需要写一个config来让本地可以关联到非80端口的远程仓库。
config文件如下:
Host "IP"
Port "port"
12
在执行git fetch的时候,出现以下错误:
Bad owner or permissions on /home/haowt/.ssh/config
1
这个时候,只需要在.ssh目录,执行以下命令行:
sudo chmod 600 config
/*git push caf HEAD:refs/for/xxxxxxx*/
4. 8G及以下内存的电脑编译问题
在android/prebuilts/sdk/tools/jack-admin文件中,搜索到JACK_SERVER_VM_ARGUMENTS关键字的两个位置,只加上下面 -Xmx3g
JACK_HOME="${JACK_HOME:=$HOME/.jack-server}"
CLIENT_SETTING="${CLIENT_SETTING:=$HOME/.jack-settings}"
TMPDIR=${TMPDIR:=/tmp}
JACK_SERVER_VM_ARGUMENTS="${JACK_SERVER_VM_ARGUMENTS:=-Dfile.encoding=UTF-8 -XX:+TieredCompilation -Xmx3g}"
JACK_EXTRA_CURL_OPTIONS=${JACK_EXTRA_CURL_OPTIONS:=}
…….
if [ "$RUNNING" = 0 ]; then
echo "Server is already running"
else
JACK_SERVER_COMMAND="java -XX:MaxJavaStackTraceDepth=-1 -Djava.io.tmpdir=$TMPDIR $JACK_SERVER_VM_ARGUMENTS -Xmx3g-cp $LAUNCHER_JAR $LAUNCHER_NAME"
5. 编译源码
使用下面的命令来编译源码:
cd LA.UM.6.2/LINUX/android/
source build/envsetup.sh
lunch sdm660_64-userdebug
make –j4
导入源码
修改Android Studio的配置文件
由于导入源码时需要消耗大量内存,所以建议修改studio64.vmoptions
文件:
-Xms1024m
-Xmx1024m
12
生成导入到Android Studio所需的配置文件
首先要编译一次源码,然后看有没有out/host/linux-x86/framework/idegen.jar
如果没有的话就执行一下下面的命令,生成out/host/linux-x86/framework/idegen.jar
:
source build/envsetup.sh
lunch xxxxx
mmm development/tools/idegen/
然后执行一下下面的命令:
development/tools/idegen/idegen.sh
1
会在根目录下面生成android.ipr
和android.iml
。 android.ipr
一般保存了工程相关的设置,比如modules和modules libraries的路径,编译器配置,入口点等。 android.iml
用来描述modules。它包括modules路径、 依赖关系,顺序设置等。一个项目可以包含多个 *.iml 文件。
到这一步我们其实就可以导入到Android Studio里面去了。
过滤一些模块
如果把Android所有的源码全部导入到Android Studio里面去,工程将会非常大,而且会很耗时间,那么我们就可以把不需要的模块给过滤掉。
打开android.iml
文件,加入以下代码,修改excludeFolder
的配置:
1234567891011121314151617181920212223242526272829
这样我们就只导入了frameworks
和packages
的代码。
導入源代碼後, 跳轉到一個類的定義時, 發現出來的是一個.class文件.
A: 打開Project structure, Modules, android, 在Dependencies下面,將除了
git一些指令:
git log
git status
git am 0002-BSPA-57880-Beast.patch
git reset -q 1a585df6df0d634905f73e96b38279adb59d05d0 --hard
git format-patch -2
git commit --amend
git commit --amend --author="Leif Tian/XXX/XXX<[email protected]>"
git rebase -i 9d80c0977f629161b23d87ddacddcc1dde60166d
git rebase --abort
git am --abort
git am –skip
git stash:清除增加的内容
git clean -f -d:清除修改的内容 git checkout xx.java
grep -R --include="*.java" "com.zebra.ethernet.intent.INTERFACE_UPDATED"