android environment setup in linux operation

1 简介

Android(读音[ˈændrɔɪd])是Google主持开发的开源移动平台。

整个平台包括操作系统、中间件、虚拟机、应用框架、应用。

该平台最初是作为智能手机操作系统开发的,随着发展,通过移植和修改,也可用于平板电脑和其他手持设备。

2 版本

Android的版本周期约为6个月。

已发布(截至201010月)的主要版本有1.01.11.51.62.12.2

l  1.01.11.5Cupcake)、1.6Donut)已过时,新系统不应使用;

l  2.1代号Eclair,是2.02.01的升级版,取代后两者,稳定版;

l  2.2代号Froyo,为目前最新版,不断升级中。支持Flash,详见Android 2.2 Platform Highlights

l  3.0代号Gingerbread,计划中的版本,全新的UI、游戏性能,可能支持视频聊天;

l  3.5代号Honeycomb,计划中的版本,有最低硬件要求,用于平板电脑。

版本代号即提取源码时使用的分支名。

3 系统结构

Android结构如图:

 

2

1

5

4

3

l  1:应用

应用是一个个独立的程序,如浏览器、计算器、游戏等。应用使用Java开发,基于Android SDK

l  2:应用框架

是一些基础组件,供上层应用所调用,可以在多个应用之间共享的功能。包括通知、视图、资源管理等。

l  3:本地库(native

主要由C/C++库组成。

l  4Dalvik虚拟机与核心库

Android应用使用Java语言开发,但并非运行于Java虚拟机之上,而是对.java文件进行反编译-重编译而成dex文件,运行在Dalvik虚拟机上。

Android核心库实现了大部分Java5 SE的库,但不包括Swing等不使用于Android的库,另外还添加了一些专用于Android的库。

l  5Linux内核

Android使用标准Linux内核2.6.322.2平台),再加上一些Android专用驱动。各种硬件驱动在此定义。

 

4 开发

应用开发

http://developer.android.com/

也称为Android SDK开发。开发环境Windows/Mac/Linux皆可。

知识准备

应用开发使用Java语言。

Java语言是参考C++而制定的,学习Java语言之前,若曾进行过C++开发,应再温习一遍C++的语法、类、类继承、模板等,有利于快速掌握Java中的相似部分,且不容易混淆两者的区别。

若没有C++基础,可直接学习Java语言及Java SE库。

学习Java语言时,可略过Swing界面学习,因为Android使用另一套UI库。

环境搭建

(1)     Eclipse

使用Eclipse 3.5.23.6目前与ADT不兼容,不能使用。

需下载包含eclipse jdt的版本,推荐:

http://www.eclipse.org/downloads/packages/eclipse-ide-java-developers/galileosr2

安装:Eclipse解压后可以直接使用。

 

(2)     JDK

版本56都可。

下载地址

下载版文档

在线文档

 

(3)     android sdk

http://developer.android.com/sdk/index.html

安装:

a)        解压到一个目录下,例如C:\Program Files\android-sdk-windows

b)        在环境变量PATH中添加tools目录,例如C:\Program Files\android-sdk-windows\tools;运行目录下的sdk setup.exe(仅限windows可用)添加组件,下载2.2版本。若连接失败,需选中Settings中的Force https://... sources to be fetched using http://...
注:应用开发应基于想支持的最低版本开发,然后在所有后续版本中测试。

 

(4)     Apache ant(可选)

Apache Ant是将软件编译、测试、部署等步骤联系在一起加以自动化的一个工具。LinuxMac需要安装1.6.5以上版本,Windows 需要1.7或以上。

最新版本为1.8.1。由于eclipse自带1.7.1,可跳过此步骤。

http://ant.apache.org/bindownload.cgi

安装:

a)        解压,如C:\Program Files\apache-ant-1.8.1

b)        新增一个环境变量ANT_HOME,值为C:\Program Files\apache-ant-1.8.1

c)        环境变量PATH中添加%ANT_HOME%\bin

 

(5)     ADT

此为AndroidEclipse插件

下载、安装:

a)        Eclipse菜单中选择Help – Install New Software

b)        Add,随便取名,如Android Plugin,地址填
https://dl-ssl.google.com/android/eclipse/
若连接失败,则改为
http://dl-ssl.google.com/android/eclipse/

c)        选择Developer Tools,按提示进行安装

d)       安装完成后重启Eclipse

e)        菜单中选择Window – Preferences

f)         选择Android页,首次打开会弹出是否搜集使用信息的提示框,这里有点bug,需要关闭Preferences窗口才能点击该提示框

g)        设置Android页中的SDK Location,填入Android SDK所在路径,如C:\Program Files\android-sdk-windows

 

(6)     NDK(可选)

可在应用中调用C/C++本地库

http://developer.android.com/sdk/ndk/index.html

注意:使用NDK调用本地库有性能损耗,不推荐

 

系统开发

http://source.android.com/

也称Android Source开发。

目前只能在Linux下开发。

进行系统开发的目的:

l  在自有硬件系统上运行Android,需要修改硬件驱动、硬件适配层添加或修改功能

知识准备

根据开发的模块,需要掌握CC++Java之一或多者。开发和移植内核驱动使用C语言;本地库使用CC++语言;本地库的JNI封装用到C++Java;应用框架开发则完全基于Java

环境搭建(32)

操作系统建议使用Ubuntu10.410.10

如果是在虚拟机中使用,需要分配1.5GB的内存和10GB以上的硬盘空间。

以下以Ubuntu 32 10.4froyo分支为例:

(1)     安装必备工具:
$ sudo apt-get install git-core gnupg flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl libncurses5-dev zlib1g-dev
可选工具:(用于查找内存泄漏、栈崩溃、数组越界等)
$ sudo apt-get install valgrind

(2)     安装repo

a)        新建一个目录作为安装目标,如~/bin~表示个人目录

b)        下载
$ curl http://android.git.kernel.org/repo >~/bin/repo

c)        $ chmod a+x ~/bin/repo

(3)     JDK 5

a)        下载
http://www.oracle.com/technetwork/java/javase/downloads/index.html

b)        放到要安装的目录下,例如~/bin

c)        $ chmod +x jdk-1_5_0_22-linux-i586.bin

d)       安装:
$ ./jdk-1_5_0_22-linux-i586.bin

(4)     配置PATH(必须加到系统变量,加到用户变量Eclipse不买账)

a)        $ cd /etc
$ sudo chmod a+w profile

b)        gedit编辑profile,末尾加上(<username>替换为你的用户名):
export JAVA_HOME="/home/<username>/bin/jdk1.5.0_22"
export CLASSPATH=".:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar"
export PATH="$PATH:/home/<username>/bin:$JAVA_HOME/bin"

c)        注销后重登录以生效

(5)     下载Android source

a)        建立一个目录,如androidsource

b)        进入该目录
$ repo init -u git://android.git.kernel.org/platform/manifest.git -b froyo
配置过程中需要输入名字、邮箱获取最新源码
$ repo sync
总共2.1GB,大约要花半天时间
若要获取其他版本,参见Using Repo and Git

(6)     验证Tag

a)        导入校验密钥
$ gpg –import
将以下内容粘帖到命令行中

-----BEGIN PGP PUBLIC KEY BLOCK-----

Version: GnuPG v1.4.2.2 (GNU/Linux)

 

mQGiBEnnWD4RBACt9/h4v9xnnGDou13y3dvOx6/t43LPPIxeJ8eX9WB+8LLuROSV

lFhpHawsVAcFlmi7f7jdSRF+OvtZL9ShPKdLfwBJMNkU66/TZmPewS4m782ndtw7

8tR1cXb197Ob8kOfQB3A9yk2XZ4ei4ZC3i6wVdqHLRxABdncwu5hOF9KXwCgkxMD

u4PVgChaAJzTYJ1EG+UYBIUEAJmfearb0qRAN7dEoff0FeXsEaUA6U90sEoVks0Z

wNj96SA8BL+a1OoEUUfpMhiHyLuQSftxisJxTh+2QclzDviDyaTrkANjdYY7p2cq

/HMdOY7LJlHaqtXmZxXjjtw5Uc2QG8UY8aziU3IE9nTjSwCXeJnuyvoizl9/I1S5

jU5SA/9WwIps4SC84ielIXiGWEqq6i6/sk4I9q1YemZF2XVVKnmI1F4iCMtNKsR4

MGSa1gA8s4iQbsKNWPgp7M3a51JCVCu6l/8zTpA+uUGapw4tWCp4o0dpIvDPBEa9

b/aF/ygcR8mh5hgUfpF9IpXdknOsbKCvM9lSSfRciETykZc4wrRCVGhlIEFuZHJv

aWQgT3BlbiBTb3VyY2UgUHJvamVjdCA8aW5pdGlhbC1jb250cmlidXRpb25AYW5k

cm9pZC5jb20+iGAEExECACAFAknnWD4CGwMGCwkIBwMCBBUCCAMEFgIDAQIeAQIX

gAAKCRDorT+BmrEOeNr+AJ42Xy6tEW7r3KzrJxnRX8mij9z8tgCdFfQYiHpYngkI

2t09Ed+9Bm4gmEO5Ag0ESedYRBAIAKVW1JcMBWvV/0Bo9WiByJ9WJ5swMN36/vAl

QN4mWRhfzDOk/Rosdb0csAO/l8Kz0gKQPOfObtyYjvI8JMC3rmi+LIvSUT9806Up

hisyEmmHv6U8gUb/xHLIanXGxwhYzjgeuAXVCsv+EvoPIHbY4L/KvP5x+oCJIDbk

C2b1TvVk9PryzmE4BPIQL/NtgR1oLWm/uWR9zRUFtBnE411aMAN3qnAHBBMZzKMX

LWBGWE0znfRrnczI5p49i2YZJAjyX1P2WzmScK49CV82dzLo71MnrF6fj+Udtb5+

OgTg7Cow+8PRaTkJEW5Y2JIZpnRUq0CYxAmHYX79EMKHDSThf/8AAwUIAJPWsB/M

pK+KMs/s3r6nJrnYLTfdZhtmQXimpoDMJg1zxmL8UfNUKiQZ6esoAWtDgpqt7Y7s

KZ8laHRARonte394hidZzM5nb6hQvpPjt2OlPRsyqVxw4c/KsjADtAuKW9/d8phb

N8bTyOJo856qg4oOEzKG9eeF7oaZTYBy33BTL0408sEBxiMior6b8LrZrAhkqDjA

vUXRwm/fFKgpsOysxC6xi553CxBUCH2omNV6Ka1LNMwzSp9ILz8jEGqmUtkBszwo

G1S8fXgE0Lq3cdDM/GJ4QXP/p6LiwNF99faDMTV3+2SAOGvytOX6KjKVzKOSsfJQ

hN0DlsIw8hqJc0WISQQYEQIACQUCSedYRAIbDAAKCRDorT+BmrEOeCUOAJ9qmR0l

EXzeoxcdoafxqf6gZlJZlACgkWF7wi2YLW3Oa+jv2QSTlrx4KLM=

=Wi5D

-----END PGP PUBLIC KEY BLOCK-----

b)        ctrl+D结束

c)        验证标签(若有需要)
$ git tag -v tagname

(7)     编译
命令行进入source目录,运行:
make
首次编译约需2小时多,完成后目录大小5.8GB

(8)     Eclipse
注意:Eclipse仅是用来编辑源码、验证编译,要生成真正可执行的输出,只能通过命令行make编译。

a)        下载:参见前文

b)        安装,解压即可

c)        命令行make编译整个Android源码

d)       命令行进入androidsource目录,输入以下:
$ cp development/ide/eclipse/.classpath .
$ chmod u+w .classpath

e)        调整Java虚拟机heap大小,修改eclipse.ini文件,将
-Xms40m
-Xmx256m
修改为
-Xms128m
-Xmx512m

f)         运行Eclipse,菜单中选择File - New - Java Project,输入项目名后,选择Create project from existing source,选取androidsouce根目录,等待Eclipse解析完成即可。

环境搭建(64)

注:目前masterfroyo源码要求在64位操作系统及Java 6下编译。

如果是在虚拟机中使用,需要分配1.5GB的内存和10GB以上的硬盘空间。

以下以Ubuntu 64 10.10master源码为例:

(1)     安装必备工具:
$ sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev ia32-libs x11proto-core-dev libx11-dev lib32readline5-dev lib32z-dev
配置X11
$ sudo ln -s /usr/lib32/libX11.so.6 /usr/lib32/libX11.so

(2)     安装repo

a)        新建一个目录作为安装目标,如~/bin~表示个人目录

b)        下载
$ curl http://android.git.kernel.org/repo >~/bin/repo

c)        $ chmod a+x ~/bin/repo

(3)     JDK 6

a)        下载
http://www.oracle.com/technetwork/java/javase/downloads/index.html

b)        放到要安装的目录下,例如~/bin

c)        $ chmod +x jdk-6u22-linux-i586.bin

d)       安装:
$ ./jdk-6u22-linux-i586.bin

e)        配置PATH(必须加到系统变量,加到用户变量Eclipse不买账)$ cd /etc
$ sudo chmod a+w profile

f)         gedit编辑profile,末尾加上(<username>替换为你的用户名):
export JAVA_HOME="/home/<username>/bin/jdk1.6.0_22"
export CLASSPATH=".:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar"
export PATH="$PATH:/home/<username>/bin:$JAVA_HOME/bin"

g)        注销后重登录以生效

(4)     下载Android source

a)        建立一个目录,如androidsource

b)        进入该目录
$ repo init -u git://android.git.kernel.org/platform/manifest.git
不带参数-b为取master源码
配置过程中需要输入名字、邮箱

c)        获取最新源码
$ repo sync
总共2.1GB,大约要花半天时间
若要获取其他版本,参见Using Repo and Git

(5)     验证Tag

a)        导入校验密钥
$ gpg –import
将以下内容粘帖到命令行中

-----BEGIN PGP PUBLIC KEY BLOCK-----

Version: GnuPG v1.4.2.2 (GNU/Linux)

 

mQGiBEnnWD4RBACt9/h4v9xnnGDou13y3dvOx6/t43LPPIxeJ8eX9WB+8LLuROSV

lFhpHawsVAcFlmi7f7jdSRF+OvtZL9ShPKdLfwBJMNkU66/TZmPewS4m782ndtw7

8tR1cXb197Ob8kOfQB3A9yk2XZ4ei4ZC3i6wVdqHLRxABdncwu5hOF9KXwCgkxMD

u4PVgChaAJzTYJ1EG+UYBIUEAJmfearb0qRAN7dEoff0FeXsEaUA6U90sEoVks0Z

wNj96SA8BL+a1OoEUUfpMhiHyLuQSftxisJxTh+2QclzDviDyaTrkANjdYY7p2cq

/HMdOY7LJlHaqtXmZxXjjtw5Uc2QG8UY8aziU3IE9nTjSwCXeJnuyvoizl9/I1S5

jU5SA/9WwIps4SC84ielIXiGWEqq6i6/sk4I9q1YemZF2XVVKnmI1F4iCMtNKsR4

MGSa1gA8s4iQbsKNWPgp7M3a51JCVCu6l/8zTpA+uUGapw4tWCp4o0dpIvDPBEa9

b/aF/ygcR8mh5hgUfpF9IpXdknOsbKCvM9lSSfRciETykZc4wrRCVGhlIEFuZHJv

aWQgT3BlbiBTb3VyY2UgUHJvamVjdCA8aW5pdGlhbC1jb250cmlidXRpb25AYW5k

cm9pZC5jb20+iGAEExECACAFAknnWD4CGwMGCwkIBwMCBBUCCAMEFgIDAQIeAQIX

gAAKCRDorT+BmrEOeNr+AJ42Xy6tEW7r3KzrJxnRX8mij9z8tgCdFfQYiHpYngkI

2t09Ed+9Bm4gmEO5Ag0ESedYRBAIAKVW1JcMBWvV/0Bo9WiByJ9WJ5swMN36/vAl

QN4mWRhfzDOk/Rosdb0csAO/l8Kz0gKQPOfObtyYjvI8JMC3rmi+LIvSUT9806Up

hisyEmmHv6U8gUb/xHLIanXGxwhYzjgeuAXVCsv+EvoPIHbY4L/KvP5x+oCJIDbk

C2b1TvVk9PryzmE4BPIQL/NtgR1oLWm/uWR9zRUFtBnE411aMAN3qnAHBBMZzKMX

LWBGWE0znfRrnczI5p49i2YZJAjyX1P2WzmScK49CV82dzLo71MnrF6fj+Udtb5+

OgTg7Cow+8PRaTkJEW5Y2JIZpnRUq0CYxAmHYX79EMKHDSThf/8AAwUIAJPWsB/M

pK+KMs/s3r6nJrnYLTfdZhtmQXimpoDMJg1zxmL8UfNUKiQZ6esoAWtDgpqt7Y7s

KZ8laHRARonte394hidZzM5nb6hQvpPjt2OlPRsyqVxw4c/KsjADtAuKW9/d8phb N8bTyOJo856qg4oOEzKG9eeF7oaZTYBy33BTL0408sEBxiMior6b8LrZrAhkqDjA

vUXRwm/fFKgpsOysxC6xi553CxBUCH2omNV6Ka1LNMwzSp9ILz8jEGqmUtkBszwo

G1S8fXgE0Lq3cdDM/GJ4QXP/p6LiwNF99faDMTV3+2SAOGvytOX6KjKVzKOSsfJQ

hN0DlsIw8hqJc0WISQQYEQIACQUCSedYRAIbDAAKCRDorT+BmrEOeCUOAJ9qmR0l

EXzeoxcdoafxqf6gZlJZlACgkWF7wi2YLW3Oa+jv2QSTlrx4KLM=

=Wi5D

-----END PGP PUBLIC KEY BLOCK-----

b)        ctrl+D结束

c)        验证标签(若有需要)
$ git tag -v tagname

(6)     编译
命令行进入source目录,运行:
make
首次编译约需2小时多,完成后目录大小5.8GB

(7)     Eclipse
注意:Eclipse仅是用来编辑源码、验证编译,要生成真正可执行的输出,只能通过命令行make编译。

a)        下载:参见前文

b)        安装,解压即可

c)        命令行make编译整个Android

d)       命令行进入androidsource目录,输入以下:
$ cp development/ide/eclipse/.classpath .
$ chmod u+w .classpath

e)        调整Java虚拟机heap大小,修改eclipse.ini文件,将
-Xms40m
-Xmx256m
修改为
-Xms128m
-Xmx512m

f)         运行Eclipse,菜单中选择File - New - Java Project,输入项目名后,选择Create project from existing source,选取androidsouce根目录,等待Eclipse解析完成即可。

典型示例

典型的功能块,包含各个层级的开发:

(1)     在内核中添加硬件驱动。有些底层协议如蓝牙等也在内核中;

(2)     本地库实现硬件适配层、功能、JNI封装;

(3)     应用框架基于JNI接口,实现上层的功能和封装,在系统API中添加Java类接口;

(4)     基于系统API开发面向用户的应用。

如图:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值