Linux系统下的Android开发环境搭建
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Linux系统下的Android开发环境搭建
1简介 (2)
2版本 (2)
3系统结构 (2)
4开发 (4)
4.1应用开发 (4)
4.1.1知识准备 (4)
4.1.2环境搭建 (4)
4.2系统开发 (5)
4.2.1知识准备 (6)
4.2.2环境搭建(32位) (6)
4.2.3环境搭建(64位) (8)
4.2.4典型示例 (10)
1简介
Android(读音[ˈændrɔɪd])是Google主持开发的开源移动平台。
整个平台包括操作系统、中间件、虚拟机、应用框架、应用。
该平台最初是作为智能手机操作系统开发的,随着发展,通过移植和修改,也可用于平板电脑和其他手持设备。
2版本
Android的版本周期约为6个月。
已发布(截至2010年10月)的主要版本有1.0、1.1、1.5、1.6、2.1、2.2。
● 1.0、1.1、1.5(Cupcake)、1.6(Donut)已过时,新系统不应使用;
● 2.1代号Eclair,是2.0和2.01的升级版,取代后两者,稳定版;
● 2.2代号Froyo,为目前最新版,不断升级中。
支持Flash,详见Android 2.2
Platform Highlights;
● 3.0代号Gingerbread,计划中的版本,全新的UI、游戏性能,可能支持视频
聊天;
● 3.5代号Honeycomb,计划中的版本,有最低硬件要求,用于平板电脑。
版本代号即提取源码时使用的分支名。
3系统结构
Android结构如图:
● 1:应用
应用是一个个独立的程序,如浏览器、计算器、游戏等。
应用使用Java 开发,基于Android SDK 。
● 2:应用框架
是一些基础组件,供上层应用所调用,可以在多个应用之间共享的功能。
包括通知、视图、资源管理等。
● 3:本地库(native )
主要由C/C++库组成。
● 4:Dalvik 虚拟机与核心库
Android 应用使用Java 语言开发,但并非运行于Java 虚拟机之上,而是对.java 文件进行反编译-重编译而成dex 文件,运行在Dalvik 虚拟机上。
Android 核心库实现了大部分Java5 SE 的库,但不包括Swing 等不使用于Android 的库,另外还添加了一些专用于Android 的库。
● 5:Linux 内核
Android 使用标准Linux 内核2.6.32(2.2平台),再加上一些Android 专用驱动。
各种硬件驱动在此定义。
1 2 3 4
5
4开发
应用开发
/
也称为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.2。
3.6目前与ADT不兼容,不能使用。
需下载包含eclipse jdt的版本,推荐:
/downloads/packages/eclipse-ide-java-developers/galileosr2
安装:Eclipse解压后可以直接使用。
(2)JDK
版本5或6都可。
下载地址
下载版文档
在线文档
(3)android sdk
/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是将软件编译、测试、部署等步骤联系在一起加以自动化的一个工具。
Linux和Mac需要安装1.6.5以上版本,Windows 需要1.7或以上。
最新版本为1.8.1。
由于eclipse自带1.7.1,可跳过此步骤。
/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
此为Android的Eclipse插件
下载、安装:
a)在Eclipse菜单中选择Help – Install New Software
b)点Add,随便取名,如Android Plugin,地址填
https:///android/eclipse/
若连接失败,则改为
/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++本地库
/sdk/ndk/index.html
注意:使用NDK调用本地库有性能损耗,不推荐
系统开发
/
也称Android Source开发。
目前只能在Linux下开发。
进行系统开发的目的:
在自有硬件系统上运行Android,需要修改硬件驱动、硬件适配层添加或修改功能
知识准备
根据开发的模块,需要掌握C、C++、Java之一或多者。
开发和移植内核驱动使用C语言;本地库使用C和C++语言;本地库的JNI封装用到C++和Java;应用框架开发则完全基于Java。
环境搭建(32位)
操作系统建议使用Ubuntu10.4或10.10。
如果是在虚拟机中使用,需要分配1.5GB的内存和10GB以上的硬盘空间。
以下以Ubuntu 32位10.4及froyo分支为例:
(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 /repo >~/bin/repo
c)$ chmod a+x ~/bin/repo
(3)JDK 5
a)下载
/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 JA V A_HOME="/home/<username>/bin/jdk1.5.0_22"
export
CLASSPATH=".:$JA V A_HOME/lib/dt.jar:$JA V A_HOME/lib/tools.jar"
export PATH="$PATH:/home/<username>/bin:$JA V A_HOME/bin"
c)注销后重登录以生效
(5)下载Android source
a)建立一个目录,如androidsource
b)进入该目录
$ repo init -u git:///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位)
注:目前master的froyo源码要求在64位操作系统及Java 6下编译。
如果是在虚拟机中使用,需要分配1.5GB的内存和10GB以上的硬盘空间。
以下以Ubuntu 64位10.10及master源码为例:
(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 /repo >~/bin/repo
c)$ chmod a+x ~/bin/repo
(3)JDK 6
a)下载
/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 JA V A_HOME="/home/<username>/bin/jdk1.6.0_22"
export
CLASSPATH=".:$JA V A_HOME/lib/dt.jar:$JA V A_HOME/lib/tools.jar"
export PATH="$PATH:/home/<username>/bin:$JA V A_HOME/bin"
g)注销后重登录以生效
(4)下载Android source
a)建立一个目录,如androidsource
b)进入该目录
$ repo init -u git:///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开发面向用户的应用。
如图:。