深入显出 - Android系统移植与平台开发(六)- 搭建基于Linux的Android开发环境

深入浅出 - Android系统移植与平台开发(六)- 搭建基于Linux的Android开发环境

2.4搭建Android SDK开发环境

上一节我们讲解了如何下载、编译Android系统及Linux内核,接下来,讲解如何搭建Android SDK开发环境,包括Eclipse下载安装、ADT插件安装、Framework源码级调试、定制Android系统等相关知识。

2.4.1 下载、安装Eclipse

说明:当前新的SDK开发环境Google采用了ADT Bundle,如果为了方便安装和下载,可以选择下载最新的ADT Bundle。
ADT Bundle下载地址:http://developer.android.com/sdk/index.html,选择Linux平台即可。

首先、从Eclipse官方网站上下载EclipseIDE  Classic,注意选择合适平台(在32位Ubuntu中,选择Linux 32 Bit版本):

http://www.eclipse.org/downloads

下载完成后,解压缩,运行Eclipse:

$ tar–xvf eclipse-linux-gtk.tar.gz
$ cd eclipse
$ ./eclipse &

启动后,选择工程目录,显示Eclipse界面。

深入显出 - Android系统移植与平台开发(六)- 搭建基于Linux的Android开发环境

图 xx-xx eclipse启动画面

 

2.4.2 安装ADT插件

ATD(Android Development Tool)插件是专门用于在Eclipse开发环境中开发Android应用程序的插件。

打开Help -> InstallNewSoftware… ,在弹出窗口中点击Add按钮添加新插件,在新弹出窗口中的Name中随意输入一个名字,在Location输入:https://dl-ssl.google.com/android/eclipse,点击OK。

深入显出 - Android系统移植与平台开发(六)- 搭建基于Linux的Android开发环境

图 xx-xx安装ADT

 深入显出 - Android系统移植与平台开发(六)- 搭建基于Linux的Android开发环境

图 xx-xx安装ADT

深入显出 - Android系统移植与平台开发(六)- 搭建基于Linux的Android开发环境 

图 xx-xx安装ADT

 

在下面的列表中选择Android DDMS和Android Developer Tools,选择Details中的Contact allupdate sites during install to find required software保持更新,点击Next。

深入显出 - Android系统移植与平台开发(六)- 搭建基于Linux的Android开发环境

图 xx-xx安装ADT

 

进入用户协议窗口,如图x-x所示,同意所有协议,开始安装:

 深入显出 - Android系统移植与平台开发(六)- 搭建基于Linux的Android开发环境

图 xx-xx接受用户许可协议

深入显出 - Android系统移植与平台开发(六)- 搭建基于Linux的Android开发环境 

图 xx-xx安装ADT

 

安装过程中会出现一些警告提示,点击OK继续,然后重新启动Eclipse。

2.4.3下载、配置Android SDK工具包

现在我们的eclipse开发环境已经准备完毕,虽然具备了开发Android的能力,但是还没有开发Android应用程序时要用到的工具和模拟器等,这些都在Android SDK中,进入官方网站:http://developer.android.com/sdk/index.html,选择适合的平台,下载并解压SDK:

深入显出 - Android系统移植与平台开发(六)- 搭建基于Linux的Android开发环境

图 xx-xx下载Android SDK

解压到/home/linux/android/目录下:

$ tar -xvfandroid-sdk_r21.1-linux.tgz -C /home/linux/android/

其中android-sdk_r21.1-linux.tgz是从官网下载的SDK包(该包更新频繁,版本可能不一样),-C参数表示将包解压到参数后面的目录中。

         SDK包解压完之后,要设置Eclipse让其知道SDK的目录,当编译Android应用程序时能找到SDK中的资源,打开Window -> Preferences菜单,左侧选择Android项,右侧SDK Location选择解压的SDK目录,点击OK。

深入显出 - Android系统移植与平台开发(六)- 搭建基于Linux的Android开发环境

图 xx-xx指定Android SDK 目录

深入显出 - Android系统移植与平台开发(六)- 搭建基于Linux的Android开发环境

图 xx-xx指定Android SDK 目录

 

 

2.4.4下载Android SDK平台

         在Android SDK工具包中只包含了开发环境中用到的一些工具,Android系统版本更新比较频繁,我们要在SDK下载器里下载要开发的Android系统版本类库、映像文件等。

         打开Window -> Android SDK Manager,选择要开发的目标系统平台(我们前面下载的是2.3的源码,所以下载Android2.3.3的目标系统):

         点击Install Selected按钮,同意所有的协议,进行下载安装:

深入显出 - Android系统移植与平台开发(六)- 搭建基于Linux的Android开发环境

图 xx-xx下载Android平台

 

2.4.5 通过Android SDK Manager创建模拟器

         在没有真实手机设备时,我们可以通过SDK工具来创建模拟器。

         打开Window -> Android Virtual Device Manager ->New,在弹出窗口中新建模拟器:

  • AVD Name:模拟设备名设置为MyPhone
  • Device:选择合适尺寸的屏幕大小,推荐320 x 480。
  • Target:选择与源码匹配的系统版本。
  • SD Card:输入虚拟SD卡的大小。

点击OK,选择新创建的设备,点击Start启动它:

深入显出 - Android系统移植与平台开发(六)- 搭建基于Linux的Android开发环境

图 xx-xx创建Android模拟器

 

 深入显出 - Android系统移植与平台开发(六)- 搭建基于Linux的Android开发环境

图 xx-xx启动Android模拟器

 

2.4.6应用程序Framework源码级调试

Android平台由上层应用层、中间framework层、本地运行时库层及Linux内核层构成,应用程序调用Framework的代码库,在开发Android应用程序时,程序员希望深入Android提供的API中去查看具体实现,也就是说更希望在调试应用程序时能浏览到Framework代码,从而能更深刻的理解Android的工作机制,下面我们讲解如何进行应用程序的Framework源码级别调试。

Framework的源码级别调试,说白了就是当我们单步调试时能直接进入到Framework源码中去,这也就意味着,我们要将Framework的源码添加到Eclipse中,添加步骤如下:

  • 修改Eclipse的缓存配置:

打开Eclipse的安装目录下的eclipse.ini文件,修改下面的三个变量的值:

--launcher.XXMaxPermSize
256m
-Xms128m
-Xmx512m

  •  将Android源码中的Eclipse配置文件.classpath(在development/ide/eclipse/目录下)拷贝到源码的*目录下:

$ cd ~/android/android_source/
$ cp development/ide/eclipse/.classpath ./

  •  把Android提供的两个配置文件(在development/ide/eclipse/目录下):android-formatting.xml和android-importorder.xml导入Eclipse:

打开 window -> preferences -> Java ->CodeStyle -> Formatter,点击Import,选择android-formatting.xml文件,点击Apply,应用设置。

打开 window -> preferences -> Java ->Code Style -> Organize Imports,点击Import,选择android-importorder.xml,点击Apply,应用设置。

  • 导入Android源码:

选择:File -> New -> Java Project,如图论x-x所示,创建新Java工程,在弹出的窗口中输入工程名:android_source,指定Location为Android源码的*目录:/home/linux/android/android_source(上一步.classpath被拷贝到这儿),点击Finish按钮。

Eclipse加载源码时间比较长,如果加载完出现找不到javalib.jar库的错误,打开.classpath文件,将下列内容删除掉:

<classpathentrykind="lib"path="out/target/common/obj/JAVA_LIBRARIES/google-common_intermediates/javalib.jar"/>
<classpathentrykind="lib" path="out/target/common/obj/JAVA_LIBRARIES/gsf-client_intermediates/javalib.jar"/>

重启eclipse,如果出现源码错误,说明项目配置文件.classpath里面的目录与源码中的目录不一致,将.classpath里的目录与源码目录匹配即可。

  •  查看Eclipse左侧的Package Explorer窗口,可以看到AndroidFramework源码被导入进来了,如图x-x所示。

深入显出 - Android系统移植与平台开发(六)- 搭建基于Linux的Android开发环境

图 xx-xx输入Android源码 

  •  源码级调试Android应用程序:

在开始调试之前,要保证上一步中Android源码工程编译完没有错误。

新建一个HelloWorld应用程序工程,在该工程上右键选择菜单Debug As->Debug Configurations ->Remote Java Application,右键点击New,在右侧窗口中Project选择刚才添加到工程中的Android源码工程:android_source,点击Apply应用设置。

打开HelloWorld源码文件,将断点设置在super.onCreate()方法上,点击调试按钮,开始调试。

深入显出 - Android系统移植与平台开发(六)- 搭建基于Linux的Android开发环境

图 xx-xx配置调试信息

 深入显出 - Android系统移植与平台开发(六)- 搭建基于Linux的Android开发环境

图 xx-xx配置调试信息

深入显出 - Android系统移植与平台开发(六)- 搭建基于Linux的Android开发环境 

图 xx-xx配置调试信息

 

当点击F5(Step Into)进入框架层代码时,会显示“Sourcenot found。”,选择“EditSource LookupPath…”,在新窗口中单击Add按钮,选择Java Project,选择android_source工程,这样就可以看到框架层代码了,如图xx-xx所示。

深入显出 - Android系统移植与平台开发(六)- 搭建基于Linux的Android开发环境

图 xx-xx设置源码目录

深入显出 - Android系统移植与平台开发(六)- 搭建基于Linux的Android开发环境 

图 xx-xx调试HelloWorld源码

 

  •  调试系统级应用程序

首先在模拟器里打开要调试的应用程序,比如计算器Calculator,打开Window ->Open Perspective -> DDMS ,弹出DDMS调试窗口。在Devices窗口中选择Calculator的进程com.android.calculator2。

深入显出 - Android系统移植与平台开发(六)- 搭建基于Linux的Android开发环境

图 xx-xx 选择要调试的进程

 

打开Run ->Debug Configurations -> RemoteJava Application,右键点击New,配置Name为:Calculator,在右侧窗口中Project选择刚才添加到工程中的Android源码工程:android_source,调试Port端口设置为:8700(默认AVD调试端口)点击Apply应用设置。

深入显出 - Android系统移植与平台开发(六)- 搭建基于Linux的Android开发环境

图 xx-xx 调试源码

 

再点击Debug,可以看到DDMS窗口中,com.android.calculator2进程前面出现了Debug标志,如图xx-xx所示。

深入显出 - Android系统移植与平台开发(六)- 搭建基于Linux的Android开发环境

图 xx-xx 调试Calculator源码

 

切换到Java视图,打开android_source工程中Calculator.java,在onCreate方法上设置断点,在模拟器里关闭刚才打开的Calculator,再次启动它,在Eclipse中就可以对Calculator进程进行调试了。

深入显出 - Android系统移植与平台开发(六)- 搭建基于Linux的Android开发环境

图 xx-xx 调试Calculator源码