Archlinux下Android开发环境

从AUR安装,需要使用multilib仓库。

# yaourt -S android-sdk android-sdk-platform-tools android-sdk-build-tools

安装时如果没有修改PKGBUILD,则会安装在 /opt/android-sdk 路径下。

AUR上可能不是最新,则手动:http://developer.android.com/sdk/index.html#download

目前是

wget https://dl.google.com/android/adt/22.6.2/adt-bundle-linux-x86-20140321.zip

然后获取Getting Android SDK platform API

# PATH=$PATH:/opt/android-sdk/platform-tools:/opt/android-sdk/tools

# export PATH

# android

Tool -> options 菜单下使用 http_proxy: mirrors.neusoft.edu.cn:80,强制使用 http 替代 https

Package 下 Reload,选择需要的包,install,accept license

完成后,确认 android-sdk 的权限:

# chmod -R 755 /opt/android-sdk

按 develop.android.com 上,可以直接放在个人路径下,并且有自己的 Android Developer Tools.

也可以使用 Eclipse,还有 Netbeans


# yaourt -S android-udev

连接 android device with usb debugging enabled (On Android 4.2 (Jelly Bean) the Development menu is hidden; to enable it go to Settings => About phone and tap Build number 7 times)。

$ lsusb

Bus 002 Device 004: ID 0bb4:0c87 HTC (High Tech Computer Corp.) Desire (debug)

说明已经ok了,可以查看(AUR安装得到):

$ $ cat /etc/udev/rules.d/ARM_debug_tools.rules 
SUBSYSTEM!="usb_device", ACTION!="add", GOTO="ARM_debug_tools_rules_end"
# RealView-ICE
ATTRS{idVendor}=="0d28", ATTRS{idProduct}=="0001", MODE="0666"
# RealView Trace 2 (beta)
ATTRS{idVendor}=="0d28", ATTRS{idProduct}=="f013", MODE="0666"
# RealView Trace 2
ATTRS{idVendor}=="0d28", ATTRS{idProduct}=="0100", MODE="0666"
# DSTREAM
ATTRS{idVendor}=="0d28", ATTRS{idProduct}=="0003", MODE="0666"
# DSTREAM Trace
ATTRS{idVendor}=="0d28", ATTRS{idProduct}=="0103", MODE="0666"
# RDDI DAP
ATTRS{product}=="*CMSIS-DAP*", MODE="0666"
# Keil ULINK Pro
ATTRS{idVendor}=="c251", ATTRS{idProduct}=="2730", MODE="0666"
LABEL="ARM_debug_tools_rules_end"

如果需要(VENDOR ID 和 PRODUCT ID 对于我这个 HTC Desire 就是 0bb4 和 0c87),可与 usb-blaster 对照:

# vi /etc/udev/rules.d/51-android.rules
SUBSYSTEM=="usb", ATTR{idVendor}=="[VENDOR ID]", MODE="0666"
SUBSYSTEM=="usb",ATTR{idVendor}=="[VENDOR ID]",ATTR{idProduct}=="[PRODUCT ID]",SYMLINK+="android_adb"
SUBSYSTEM=="usb",ATTR{idVendor}=="[VENDOR ID]",ATTR{idProduct}=="[PRODUCT ID]",SYMLINK+="android_fastboot"

# udevadm control --reload-rules

Instead of using udev rules you may create/edit ~/.android/adb_usb.ini which contains list of vendor ids.
 $ cat ~/.android/adb_usb.ini 
# ANDROID 3RD PARTY USB VENDOR ID LIST -- DO NOT EDIT.
# USE 'android update adb' TO GENERATE.
# 1 USB VENDOR ID PER LINE.
0x27e8

如果重新建立了udev rules,需要 unplug 设备并 replug。

$ adb devices
List of devices attached 
HT08YPL01453 device

如果用户没有操作该 device 权限(查看 udev rules 组权限,如只能 adbusers 组使用), 需要将自己加入相应的用户组,如:

# gpasswd -a username adbusers


Building Android

ok,又是依赖(可以和 uClinux-dist 相互补充):

# pacman -S gcc git gnupg flex bison gperf sdl wxgtk squashfs-tools curl \
ncurses zlib schedtool perl-switch zip unzip libxslt python2-virtualenv \
gcc-multilib lib32-zlib lib32-ncurses lib32-readline

而且,Android 只能使用 Sun/Oracle JDK,不能使用 OpenJDK,好吧!


安装repo 和 Source

mkdir ~/bin  # ~/.profile 中有将 ~/bin 加入 PATH 的脚本

$ curl -x 127.0.0.1:8087 https://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo  #gogagent有的吧?!

$ mkdir ~/android # WORK_DIRECTORY

$ cd ~/android

启用python2版本环境

$ virtualenv2 venv

$ source venv/bin/activate

下载最新版本 master 分支(或自定分支)

$ export http_proxy="127.0.0.1:8087"

$ export https_proxy="127.0.0.1:8087"

$ repo init -u https://android.googlesource.com/platform/manifest -b master

$ repo sync -j4


你可能感兴趣的:(Archlinux下Android开发环境)