感受Android带给我们的新体验
By: 海市蜃楼 | In: Android开发
11 八 2009移动设备的新体验平台
黑莓和iPhone在智能手机领域是很受欢迎的移动平台(ms地球人都知道),且面向不同的消费群体。黑莓是企业业务用户的挚爱,但是和苹果一推出就红的发紫的iPhone相比,黑莓在易用性和“新奇特性”方面落了下风,难以和iPhone抗衡。而Android则是一个年轻的开源平台,它的潜力可以同时兼顾移动电话的两个不同消费群体,甚至于可能缩小工作和娱乐之间的距离。
现在有很多基于网络的设备都运行着某种Linux内核驱动的系统,这是一种可靠的平台:部署和提供的支持,经济有效,具备良好的面向部署的设计方法。这些设备的UI通常以HTML为基础,只要一个浏览器就可以查看。而Android也是一种基于LinuxV2.6内核的综合操作环境,也就是说上面说到的优点他都具备,而Linux没有的它也可能具备,当然这个就需要我们自己去研究和开发了。
接下来,我们开始了解Android平台,以及如何把它与移动和非移动的应用程序运用在一起。当然也要介绍一下Android SDK的安装了。
Android平台是Open Handset Alliance的成果,这个组织有一群共同致力于构建更好的移动电话的公司组成。领导者就是大名鼎鼎的Google了,包括移动运营商、手持设备制造商、零部件制造商、软件解决方案和平台提供商以及市场营销公司。而从软件开发的观点看,Android正处在开源领域的中心位置(有这么多大公司支持,且带头大哥是Google,不在中心都难。)
第一款正式上市的Android手机是由HTC制造并由T-Mobile供应的G1。这款设备从idea到推出花了大约一年的时间,唯一可用的软件开发工具是一些实行增量改进的SDK发行版。随着G1发型日的临近,Android团队发布了SDK V1.0,用于这个新平台的应用程序也付出水面。
Android是构建在Linux内核基础之上的一个分层的环境,它包含了丰富的功能。其中UI子系统包括:
Android包括一个在WebKit基础上构建的可嵌入式浏览器,这个和iPhone的Mobile Safari浏览器一样,后者也是基于WebKit的。Android提供的连接选项有WiFi、蓝牙和通过cellular连接的无线数据传输(例如GPRS、EDGE和3G)。还有Google地图的链接技术,以及GPS定位服务和摄像支持等。
我们可能都知道,在过去,移动应用程序不断努力地向桌面app看齐的两个领域:图形/媒体和数据存储方法。Android通过提供对2D和3D图形的内置支持,包括OenpGL库,解决了图形方面的挑战。对于数据存储,Android平台包括了流行的开源SQLite数据库,因此也缓解了这方面的负担。
下图显示了一个简化的Android软件层次结构:

Android 软件层次结构
Android应用程序是用Java语言编写的,它们在一个虚拟机(VM)中运行。这里要注意,这个VM不是我们常见的JVM,而是Dalvik Virtual Machine,这是一种开源技术。每个Android应用程序都在Dalvik VM的一个实例中运行,这个实例驻留在一个由Linux内核管理的进程中,如下图所示:

Dalvik VM
最上层的Android 应用程序由一个或多个组件组成:
接下来,我们讨论构建 Android 应用程序所需的开发环境。
开发Android应用程序最简捷的方式是下载Android SDK和Eclipse IDE。(可参见文后的下载地址)
上文中提到过,Android 应用程序是用 Java 语言编写的,所以使用Eclipse IDE也是个蛮不错的选择,只要结合Eclipse 的 Android Developer Tools 插件就可以开发Android应用程序了,不过它是在Dalvik VM(非Java虚拟机)中编译和执行的(这个在上文中也有介绍)。Eclipse提供了一个丰富的Java环境,Java代码通过编译后,Android Developer Tools 执行打包的工作,其中包括AndroidManifest.xml文件。
当然了,不用Eclipse也能开发Android应用程序,但是你需要熟悉Android SDK。
Android SDK是一个ZIP文件,可以把它解压到硬盘上的一个目录中。SDK包括:
Java 归档文件,其中包含构建应用程序所需的所有的 Android SDK 类。
本地和网上提供的 SDK 文档。这些文档的主要形式为 JavaDocs,以便于在 SDK 中导航大量的包。文档还包括一个高级开发指南和 Android 社区的链接。
samples 子目录包含各种应用程序的源代码,包括 ApiDemo,该应用程序演示了很多 API。这个示例应用程序可以作为 Android 应用程序开发的良好起点。
包含所有用于构建 Android 应用程序的命令行工具。最常用、最有用的工具是 adb 实用程序(Android Debug Bridge)。
该目录包含将开发环境连接到支持 Android 的设备(例如 G1 或 Android Dev 1 解锁开发手机)所需的驱动程序。只有 Windows 平台的开发人员才需要这些文件。
Android 应用程序可以在实际的设备上运行,也可以在 Android SDK 附带的 Android Emulator 上运行。下图显示 Android Emulator(模拟器) 的主屏幕。

Android模拟器
Android Debug Bridge
adb实用程序支持一些可选命令行参数,以提供强大的特性,例如复制文件到设备或从设备复制文件。可以使用shell命令行参数连接到手机本身,并发送基本的 shell 命令。下图显示在通过USB线连接到Windows笔记本电脑的一个实际设备上运行的adb shell命令。

使用 adb shell 命令
在这个 shell 环境中,可以:
lo 是本地或 loopback 连接。
tiwlan0 是 WiFi 连接,该连接由本地 DHCP 服务器提供一个地址。
从相同的命令提示符环境中,还可以与 SQLite 数据库交互,启动程序以及执行许多其他系统级任务。
上面这些就是我们这里要介绍的一些入门级的内容。
下一篇我会教你开发一个简单的手电筒(flashlight)应用程序,我们不见不散吧。
图源:Introduction to Android development

这里有一群热爱开发的人,我们的文章以原创、翻译为主,包含了我们对Android的认识,对Android的研究,以及一些开发心得和感想,如果 你喜欢我们的站点,喜欢我们的文章,欢迎拍砖,欢迎交流。希望新版的mo-Android能够为你带来更好的体验。
2 Responses to Android开发入门–简介
IBM
十月 10th, 2009 at 2:17 下午
http://www.ibm.com/developerworks/cn/opensource/os-android-devel/index.html
原创还是翻译的?
fennek
十月 12th, 2009 at 9:29 上午
应该是翻译的~~~不过是把项目按照自己的开发环境跑了一遍,也算是有点心得吧。