今年已经到了四月,不少工作任务与Android相关,于是准备开始开题学习Android。Android已经火热了几年,现在开始看,网上的文章汗牛充栋,想必是乏新可陈。我错过Android总是有缘因的,3年前开始,从moblin、Maemo、到MeeGo,误入Linux终端的领域,还没有来得及感叹一下自己的“新事业”,MeeGo于Nokia犹如被斩下的断臂,和被放弃保帅的车马,只留下特立独行的绝版神机诺基亚N9,在风中做“不跟随(N9的广告语)”的姿态。作为世间的饮食男女,MeeGo可以“不跟随”,我却不能不跟随,当年从事MeeGo的人大多转到了Android平台,我也赶紧爬上Android的大船,并祈祷这艘大船从此顺风顺水一路平安。然一份工作,若无足够钱物驱使,必要做得有趣(俗人本无所求,无非名利),对本人来说,只好看看怎么把事情做成有趣一些开心一些。
1、基础环境
使用的环境:ubuntu 11.04环境,测试的Android机器 华为:C8500。
官方参考文档:http://source.android.com/source/initializing.html
官方文档列出开发需要下列的软件包以及下载来源:
Python 2.5 -- 2.7, python.org.
GNU Make 3.81 -- 3.82, gnu.org
JDK 6 if you wish to build Gingerbread or newer; JDK 5 for Froyo or older. You can download both from java.sun.com.这里安装的是JDK6
Git 1.7 or newer. git-scm.com.
官方文档说11.10的运行以下的安装命令如下:
$ sudo apt-get install git-core gnupg flex bison gperf build-essential \
zip curl zlib1g-dev libc6-dev libncurses5-dev x11proto-core-dev \
libx11-dev libreadline6-dev libgl1-mesa-dev tofrodos python-markdown \
libxml2-utils xsltproc
网上有一安装的指引给出另一个安装命令
$sudo apt-get install git-core gnupg flex bison gperf libsdl1.2-dev libesd0-dev libwxgtk2.6-dev squashfs-tools build-essential zip curl libncurses5-dev zlib1g-dev sun-java6-jdk pngcrush schedtool
由于懒得逐个包去甄别,上述两条命令我都运行和安装了。
注意:sun-java6-jdk是无法安装的,可以自己下载,请参考:https://help.ubuntu.com/community/Java
2、关于 USB 访问权限
Android的开发和调试使用的最主要连接设备的命令 adb和fastboot都需要使用USB连接,从文档上知道,Ubuntu下面USB的访问权限可能会出问题,解决的方法文档也列明了。
我的经验是如果访问不了连接的USB设备了,再查阅资料处理。为了以备以后查阅,记录下来如下:
针对摩托罗拉的设备,使用root文件创建/lib/udev/rules.d/11-android.rules,生成下列的配置到文件中。#号为注释符号,下列配置,第一行针对一种设备,第二行针对所有摩托罗拉设备。
#SUBSYSTEM=="usb", ATTRS{idVendor}=="22b8", ATTRS{idProduct}=="41db",MODE="0666,OWNER="shallon"
SUBSYSTEM=="usb", ATTRS{idVendor}=="22b8", MODE="0666", OWNER="shallon" #All Motorola
其中的idVendor和idProduct的值怎么来呢?用USB线连接设备,然后运行lsusb可以看到设备的这两个值,例如,下文显示摩托罗拉的ME811的相关配置值就是22b8和41db。
Bus 001 Device 082: ID 22b8:41db Motorola PCS Droid/Milestone (Debug mode)
Bus 001 Device 083: ID 046d:c018 Logitech, Inc. Optical Wheel Mouse
3、安装repo
repo是一种更好的用git的一种工具环境。下面命令中repo安装到用户home目录的bin目录下。
$ mkdir ~/bin
$ PATH=~/bin:$PATH
$ curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
$ chmod a+x ~/bin/repo
4、下载安装Android 源码
如果不打算编译Android源码,可以跳过。在WORKING_DIRECTORY上下载源代码,使用repo init命令指定下载源代码的版本,-b 参数指定版本号,如果不指定,则是最近的一个版本。
repo sync则是下载/同步代码的命令。
$ mkdir WORKING_DIRECTORY
$ cd WORKING_DIRECTORY
$ repo init -u https://android.googlesource.com/platform/manifest
$ repo init -u https://android.googlesource.com/platform/manifest -b android-4.0.1_r1
$ repo sync
4.a、下载 cyanogenmod 的源码可以生成自定义的 Android Rom
CyanogenMod 致力于生成第三方的非官方的 Android 的 Rom ,目前比较火爆的小米手机的MIUI就是CyanogenMod的衍生产品。下面的命令获取 gingerbread 的版本的源代码。如果不打算尝试这些工作可以跳过此步。
$ mkdir -p ~/cyanogenmod
$ repo init -u git://github.com/CyanogenMod/android.git -b gingerbread
$ repo sync -j16
n这里是16,表示同时打开的网络链接数,开启多个网络连接来下载,用以提升的下载的速度。
5、下载开发编译用的Android SDK
参考的官方文档:http://developer.android.com/sdk/installing.html
5.1下载eclipse开发环境,推荐安装“Eclipse Classic”版本,介质下载的地址:http://www.eclipse.org/downloads/ 不用eclipse者可以略过
5.2下载Android SDK,介质安装的地址:http://developer.android.com/sdk/index.html
5.3下载安装eclipse 的ADT plug-in,ADT是 Android Development Tools的缩写。
详细的安装方法http://developer.android.com/sdk/eclipse-adt.html#installing
5.4安装相关的工具包开发包。
安装的方法,可以从eclipse的IDE界面启动Android SDK Manager, Window > Android SDK Manager,或者在Android SDK的根目录运行android命令。
下列的开发包必须要安装:“SDK Tools”,“SDK Platform-tools”,“Android platforms(选择一个或者多个)”
6、测试Android SDK的主要开发工具
6.1 adb
使用USB线连接一台测试的Android设备,运行adb 的两个命令
~/android/sdk/android-sdk-linux/platform-tools$ ./adb devices
List of devices attached
0A3AABB70502A00A device
以及
~/android/sdk/android-sdk-linux/platform-tools$ ./adb shell 连接上设备,能够看到设备上的文件系统,证明adb的工具运作正常。
adb的工具很重要,主要用来调测设备。如果设备被“root”(系统被破解,开放了设备的管理员权限),连接上设备之后,能进行安装、删除软件,远程上传/下载文件,以及查看系统的日志等操作。如果设备没有“root”,则可以用的操作少很多。
6.2 fastboot
fastboot则是用来刷机的,主要用到的操作如下:
fastboot flash userdata userdata.img
fastboot flash system system.img
fastboot flash boot boot.img
fastboot reboot
6.3 SDK上的Android模拟器
~/android/sdk/android-sdk-linux/tools$ ./emulator ,显示命令存在,但是报错了,不要紧,这里运行一下只是看看是否正常安装了。
这三个工具的用法,请听下回分解