Android程序员指南(21)

6.3 在Linux上开发Hello World!

许多程序员,特别是那些对开源软件感兴趣的程序员,将Linux选作他们的平台。Google和开放设备联盟也为他们准备了一套Android SDK。.这套实际上是一样的(这是因为Java程序是可移植的),但是其中的工具是专门设计用来在Linux上运行的。

当我开始写本书时,我使用的是一个较旧版本的Red Hat Linux (Red Hat 9) 。我下载并安装了Eclipse和Android SDK。然而,很快我便了解如果要安全的运行Android ,Linux的版本是有一些限制的。您的Linux版本必须支持libstdc++.so.6。

Android文档表明Ubuntu Dapper Drake是经过测试的Linux版本。如果您还没想好用什么版本,那么用这个版本应是放心的。 不幸的是,我使用的PC硬件,安装最新版本的Ubuntu遇到了问题。所以我决定放弃它并尝试一下新东西。

我卸下Red Hat,并使用其他的Linux版本,最终我决定使用Fedora 8。在版本余下的Linux例子都来自Fedora 8。不过,他们在您选择的版本上正常运行应不是个问题。

注意:如果您也选择使用Fedora 8,会发现有一个Eclipse的定制版本叫做Fedora Eclipse。如果您试着安装Android plugin (使用版本前述过的步骤,它将会出现错误,提示需要org.eclipse.wst.sse.u插件。您可以通过两种方法来解决:下载最新版本的Eclipse for Linux,或使用Fedora自动更新程序,它会自动更新Fedora Eclipse到最新版本。

6.3.1 配置PATH变量

配置PATH变量是第一步。PATH是一个目录表,操作系统用来搜索要执行的命令的文件。看一下您的PATH是怎样的,在终端中运行:

echo $PATH

您看到的信息类似这样:

/usr/lib/qt-3.3/bin:/usr/kerkebros/bin:usr/lib/ccache/bin:/usr/bin:/bin:/usr/X11R6/bin:/home/jfdimazio/bin

使用export命令将Android的目录加入PATH

export PATH=$PATH:<android path>

如这样

export PATH=$PATH:/home/jfdimazio/Android/tools

如此编辑PATH的方法只能在当前的终端会话期间起作用。为了永久的改变PATH,您必须编辑.bash_profile。使用vi来编辑它。

vi .bash_profile

在vi编辑器中打开.bash_profile,如下图。当你找到PATH语句时,使用命令:i将vi设置为插入模式,然后将Android目录加入。最后按ESC键,使用命令:w写文件,再使用:q退出。



 

 Android SDK的Linux版本提供了一个Python脚本,activityCreator.py,它可以用来创建您的最初的项目。当运行Python脚本时,它为您的项目创建了一个输出目录。不过,我喜欢手动创建目录这样我可以把它放在我希望存放的地方。 使用mkdir创建目录如下。

mkdir androidHelloWorld

当您创建了项目目录后,您可以运行activityCreator.py 脚本。这个脚本的语法与Windows批处理文件非常接近。使用activityCreator.py 脚本来设置您的项目。从下图中,您可以看到activityCreator.py的输出。



 

注:activityCreator.py前面有一个sudo。当您没有足够的权限运行需要的命令时,sudo命令可用来拟用其他用户的权限(这里是root)。在我的Fedora上,我的user帐号没有如root那样可以访问特定目录的权限。

当项目创建好以后,编辑HelloWorldLinux.java以加上TextView。在Linux上,您可以选择很多方法来编辑这个文件,如再次使用vi,或者 使用一个标准的文本编辑器如下图所示:



 

最后,从main.xml中移除已定义的TextView。完成这两处改动以后,您就可以编译Hello World!应用程序的Linux版本了。编译仍然需要ANT (参考前面小节Windows环境下编译工具。对于Fedora 8,Apache ANT已预装了。如果您没有使用Fedora 8,您需要下载、安装并设置Apache ANT Linux版本的路径。

运行的结果如下图:



 

 最后,您需要启动Android Emulator,安装编译好的应用程序。Emulator启动完成并正在运行时,执行命令:

adb install HelloWorldLinux.apk

这将把程序安装到Linux Android服务器。如果命令成功运行,您就可以在Android Emulator上运行您的Activity了。下一章,我们将探索如果使用Android SDK与电话事件交互。

 

实验:在命令行CLI方式下创建基于图形的Hello World!

使用本章所述的命令行工具,重新创建第五章中提到的基于图形的Hello World!项目。当您实验时,请注意如下几点:

● 将图形放在res文件夹中.

● 研究需要什么文件来创建包涵了指向图形Handle的R.java文件

● 使用ANT编译项目

● 使用adb install安装程序

 

Q&A

Q: 在开发Android是,哪一种操作系统会比其他的更好?

A: 在使用了几种操作系统以后,我没有注意到哪一种比其他的更方便、更有优势。这完全取决于个人偏好。不过,您可能会看到,一些“工具”——尤其是非官方的那种,通常是在Linux上发布的。因为无论Linux 还是Android都是开源项目,许多开源开发者倾向于为开源平台创造工具。这种关系的存在,与其对Android,不若说对Linux来说益处更大。

Q: adb shell环境中能否运行其他的命令?

A: 是的。比如,一个有趣的命令是service,它可以用来检查进程的状态,如

service check phone

假设电话正在运行,您将会看到

Service phone: found

service的另一个用法是用于拨号。Emulator运行中,键入下面的命令,看看会发生什么:

service call phone 2 s16 "15555551212"

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值