版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Android 开发简介简介黑莓和 iPhone 都提供了受欢迎的、 高容量的移动平台, 但是却分别针对两个不同的消费群 体。黑莓是企业业务用户的不二选择。但是,作为一种消费设备,它在易用性和 “新奇特 性” 方面难以和 iPhone 抗衡。 Android 则是一个年轻的、有待开发的平台,它有潜力同 时涵盖移动电话的两个不同消费群体,甚至可能缩小工作和娱乐之间的差别 如今,很多基于网络或有网络支持的设备都运行某种 Linux 内核。这是一种可靠的平台: 可经济有效地进行部署和提供支持, 并且可直接作为面向部署的良好的设计方法。 这些设备 的 UI 通常是基于 HTML 的,可通过 PC 或
2、Mac 浏览器查看。 但并不是每个设备都需要 通过一个常规的计算设备来控制。想象一下传统的家用电器,例如电炉、微波炉或面包机。 如果您的家用电器由 Android 控制,并且有一个彩色触摸屏,会怎么样?如果电炉上有一 个 Android UI ,那么操控者甚至可以烹饪点什么东西。在本文中,了解 Android 平台,以及如何将它用于移动和非移动应用程序。安装 Android SDK ,并构建一个简单的应用程序。Android 简史Android 平台是 Open Handset Alliance 的成果, Open Handset Alliance 组织由一群共同致力 于构建更好的移动电话的公
3、司组成。 这个组织由 Google 领导, 包括移动运营商、 手持设备 制造商、 零部件制造商、 软件解决方案和平台提供商以及市场营销公司。 从软件开发的观点 看, Android 正处在开源领域的中心位置。市场上第一款支持An droid的手机是由 HTC制造并由T-Mobile供应的G1。这款设备从设想到推出花了大约一年的时间, 惟一可用的软件开发工具是一些实行增量改进的 SDK 发 行版。随着 G1 发行日的临近, Android 团队发布了 SDK V1.0 ,用于这个新平台的应用程 序也浮出水面。为了鼓励创新, Google 举办了两届 “Android Developer Chal
4、lenges ”,为优胜的参赛作品提 供数百万美金的奖励。 G1 问世几个月之后,随后就发布了 Android Market ,它使用户可以 浏览应用程序, 并且可以将应用程序直接下载到他们的手机上。 经过大约 18 个月,一个新 的移动平台进入公众领域。Android 平台An droid有丰富的功能,因此很容易与桌面操作系统混淆。An droid是一个分层的环境,构建在Linux内核的基础上,它包括丰富的功能。UI子系统包括:?窗口?视图?用于显示一些常见组件(例如编辑框、列表和下拉列表)的小部件An droid包括一个构建在 WebKit基础上的可嵌入浏览器,iPho ne的Mobile
5、 Safari浏览器 同样也是以 WebKit为基础。An droid提供多种连接选项,包括WiFi、蓝牙和通过蜂窝(cellular)连接的无线数据传输(例如 GPRS、EDGE和3G)。An droid应用程序中一项流行的技术是链接到Google地图,以便在应用程序中显示地址。An droid软件栈还提供对基于位置的服务(例如GPS)和加速计的支持,不过并不是所有的An droid设备都配备了必需的硬件。另外还有摄像支持。过去,移动应用程序努力向桌面应用程序看齐的两个领域分别是图形/媒体和数据存储方法。An droid通过提供对 2D和3D图形的内置支持,包括Ope nGL库,解决了图形方
6、面的挑战。由于An droid平台包括流行的开源SQLite数据库,因此缓解了数据存储的负担。图1显示一个简化的An droid软件层次结构。图1. Android软件层次结构ApplicationsBuilt-in (phone, contacts, browser), TTiirdjsarty/CustomApplication frameworks Telepnone Mgr Location Mgr, Notification Mgr, Content provicter?. Windowing, Resource Mgr etc.LibrariesGraphics, media阳BK
7、itAndriod njnfimoDalvik Virtual MachineUnus Kernel Power; File system, drlvera. prewas managonierrt, etc.应用程序架构如前所述,An droid运行在Linux内核上。An droid应用程序是用 Java编程语言编写的, 它们在一个虚拟机(VM )中运行。需要注意的是,这个VM并非您想象中的JVM,而是Dalvik Virtual Machi ne ,这是一种开源技术。每个An droid应用程序都在 Dalvik VM 的一个实例中运行,这个实例驻留在一个由Linux内核管理的进程中,如
8、下图所示。图 2. Dalvik VMLinux KernelLinux processDahrik Virtual MachineAndroid applicationAn droid应用程序由一个或多个组件组成:活动具有可视 UI的应用程序是用活动实现的。当用户从主屏幕或应用程序启动器选择 一个应用程序时,就会开始一个动作。服务服务应该用于任何需要持续较长时间的应用程序,例如网络监视器或更新检查应用 程序。内容提供程序可以将内容提供程序看作数据库服务器。内容提供程序的任务是管理对持久数据的 访问,例如 SQLite数据库。如果应用程序非常简单,那么可能不需要创建内容提 供程序。如果要构建一
9、个较大的应用程序,或者构建需要为多个活动或应用程序提 供数据的应用程序,那么可以使用内容提供程序实现数据访问。广播接收器An droid应用程序可用于处理一个数据元素,或者对一个事件(例如接收文本消息) 做出响应。An droid 应用程序是连同一个 An droidMa nifest.xml文件一起部署到设备的。An droidMa nifest.xml包含必要的配置信息,以便将它适当地安装到设备。它包括必需的类名和应用程序能够处理的事件类型,以及运行应用程序所需的许可。例如,如果应用程序需要访问网络一例如为了下载一个文件 一那么man ifest文件中必须显式地列出该许可。很多应用程序可能
10、启用了这个特定的 许可。这种声明式安全性有助于减少恶意应用程序损害设备的可能性。下一节讨论构建An droid应用程序所需的开发环境。所需的工具开始开发An droid应用程序的最简捷的方式是下载 An droid SDK和Eclipse IDE (参见参考资料)。An droid 开发可以在 Microsoft? Win dows? Mac OSX 或Linux 上进行。本文假设您使用的是 Eclipse IDE 和用于Eclipse 的An droid Developer Tools插件。An droid应用程序是用Java语言编写的,但是是在 Dalvik VM(非Java虚拟机)中编译
11、和执行的。在Eclipse 中用Java语言编程非常简单;Eclipse提供一个丰富的Java环境,包括上下文敏感帮助和代码提示。Java 代码通过编译后,An droid Developer Tools可确保适当地将它打包,包括An droidMa nifest.xml 文件。虽然没有Eclipse 和An droid Developer Tools插件也可以开发An droid 应用程序,但是那样就需要熟悉 An droid SDK。An droid SDK是作为一个ZIP文件发布的,可以将该文件解压到硬盘上的一个 目录中。由于有多个SDK更新,建议有意识地组织开发环境,以便在不同的SDK
12、 安装之间轻松地切换。SDK包括:android.jarJava归档文件,其中包含构建应用程序所需的所有的An droid SDK类。documention.html 禾口 docs 目录本地和网上提供的 SDK文档。这些文档的主要形式为JavaDocs,以便于在 SDK中导航大量的包。文档还包括一个高级开发指南和An droid社区的链接。Samples 目录samples子目录包含各种应用程序的源代码,包括ApiDemo,该应用程序演示了很多API。这个示例应用程序可以作为An droid应用程序开发的良好起点。Tools目录包含所有用于构建 An droid应用程序的命令行工具。最常用、
13、最有用的工具是 adb 实用程序(An droid Debug Bridge )。usb_driver该目录包含将开发环境连接到支持An droid的设备(例如 G1或An droid Dev 1解锁开发手机)所需的驱动程序。只有Windows平台的开发人员才需要这些文件。An droid应用程序可以在实际的设备上运行,也可以在An droid SDK附带的An droid Emulator 上运行。图 3 显示 An droid Emulator的主屏幕。图 3. Android EmulatorAndroid Debug Bridgeadb实用程序支持一些可选命令行参数,以提供强大的特性,
14、例如复制文件到设 备或从设备复制文件。可以使用shell命令行参数连接到手机本身,并发送基本的shell命令。图4显示在通过USB线连接到 Windows笔记本电脑的一个实际设备上运行的adb shell 命令。图4.使用adb shell命令 C:WtMD0WSXiyilMn32 cmd jtmcn:tDcls>A(lb -d flhBll $ FlCtcf ShetcFg,loUP127-t.fl.l25S.H.H.HdunnyBMHo.nM.e.e.etjx»e0ttau82FRintBPQLfN25.1.1S4.1332SS.2S5.2SS.2S2WxHHWlflHSD
15、O州e.a.e.oe.e.a.efbcMeeamrnmi&tZDGWHe.fl.B.aa.a.a.BttxElHWl W2tIwlnOUP192,168.2.105$ echo SPfiTHBth* SFAT1I/sb in :sbinicyitenh in :Zsyj:tBRZXttinI It cd dnlAapp Ld zdAtaZ&ppS 1« -1SG1S 20«-H3-22 1B:38 con,i,flashlight.AphIs -1'-rw-r-r - - sstens VEten1!tt ping gbdgXe.cAAp ing g
16、ovglcCQnP1HG ?oa9l?.DQn <?4*12S 5»<84> bvtci of dat«>64 bCtt3f winjpe-in-f 丄DR-gooyLtJ-coe<7.125 .4lS.10S>:icnp_£efl=ltt1=241tino-9'7.3 ns64 htesfromyx-in-f ldtt.gtDDyle.con17吨£cnp_s&Q-2tt1-241t £neDlilt z右弓f rnnx-ln-flHA. sai)a Ln can<?4.12S. t
17、A3> Jlcmp_5tfQ-3tt1*241tihe-12& 代*C在这个shell 环境中,可以:*显示网络配置,网络配置可显示多个网络连接。注意这多个网络连接:o Io是本地或 loopback连接。o tiwlanO 是 WiFi连接,该连接由本地DHCP服务器提供一个地址。*显示PATH环境变量的内容。*执行su命令,以成为超级用户。将目录改为/data/app,其中存放用户应用程序。列出包含某个应用程序的目录。An droid应用程序文件实际上是归档文件,可通过Win Zip之类的软件查看。扩展名为apk。* 发出pi ng命令,查看 G 是否可用。从相同的命令提示符
18、环境中,还可以与SQLite数据库交互,启动程序以及执行 许多其他系统级任务。想像一下您正在连接到电话,因此这是非常了不起的功能。在下一节,您将创建一个简单的 An droid应用程序编与一个基本的应用程序本节展示如何构建一个An droid应用程序。示例应用程序非常简单:一个修改 后的“ Hello An droid ”应用程序。您将进行一个微小的修改,使屏幕背景全部变为白色,以便把手机用作手电筒。这个例子不是很有创意,但是可以作为一 个有用的例子。请 下载 完整的源代码。为了在Eclipse中创建应用程序,选择File > New > An droid project ,这将启
19、动 New An droid Project 向导。图 5. New Android project 向导接下来,创建一个简单的应用程序,该应用程序有一个活动,并且在main.xml中 有一个UI布局。布局包含一个文本元素,您将修改这个文本元素,以显示An droid FlashLight。下面的清单显示了这个简单的布局。清单1. Flashlight布局<?xml versio n="1.0" en codi ng="utf-8"?><Lin earLayoutxml ns:a ndroid=" ndroid"an
20、 droid:orie ntati on="vertical"an droid:layout_width="fill_pare nt"an droid:layout_height="fill_pare nt"an droid:backgro un d="color/all_white"> vTextViewan droid:layout_width="fill_pare nt"an droid:layout_height="wrap_c on te nt"android
21、:text="string/hello" android:textColor="color/all_black"an droid:gravity="cen ter_horiz on tal"/>v/Lin earLayout>在stri ngs.xml中创建两个颜色资源。清单2. strings.xml中的颜色<?xml versio n="1.0" en codi ng="utf-8"?><resources>vstri ng n ame="hel
22、lo">A ndroid FlashLight</stri ng>vstring name="app_name">FlashLight</string>vcolor n ame="all_white">#FFFFFF</color>vcolor name="all_black">#000000</color></resources>主屏幕布局有一个定义为all_white的背景色。在strings.xml文件中,可以看到all_white被定
23、义为一个值为#FFFFFF的RGB三元组,即纯白。布局包含一个TextView,这实际上是一块静态文本。它是不可编辑的。文本被 设为黑色,并通过gravity属性设为水平居中。该应用程序有一个名为FlashLight.java 的Java源文件,如以下清单所示。清单 3. Flashlight.javapackage com.msi.flashlight;import an droid.app.Activity;import an droid.os.B un dle;public class FlashLight exte nds Activity /* Called when the act
24、ivity is first created. */public void on Create(B un dle saved In sta nceState) super.o nCreate(savedI nsta nceState);setC onten tView(R.layout.mai n);该代码是直接来自NewProject向导的模板代码:* 它是 Java包 com.msi.flashlight 分。* 它有两个 import:的一部7:51 PMFlashLighto一个用于类一个用于类activitybun die当该活动发起后,on Create方法被调用,传 入一个sav
25、ed In sta nceState 。对 于我们来说,不必关心这个 bun dle。只有在暂停然后恢 复活动时才会用到。* on Create方法覆盖了同 名的activity类方法。它调 用超类的on Create方 法。* 对 setContentView() 的调用将关联 ma in .xml文 件中定义的 UI布局。main .xml 禾口 strings.xml 中的任何内容都自动映射到 R.java源文件中定义的常 量。任何时候都不要直接编 辑这个文件,因为它随着每 次构建而改变。Android FlashlightMENU运行该应用程序可以看到一个 白色屏幕,其中有黑色文本。6. flashlight的白色屏幕F面显示用于FlashLight 应用程序的AndroidManifest.xml 文件。清单 4.用于 FlashLight 的 AndroidManifest.xmlv?xml versio n="1.0" en codi ng="utf-8"?><
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 安全管理隐患排查表(矿山、金属冶炼、建筑施工、危险化学品)
- 人教统编版语文七年级上册第1课《春》教学设计
- 2026年新进场员工安全教育培训考试试题(附答案)
- 2026年过敏性休克应急预案试题(+答案解析)
- 2026年浙江初级专业技术资格考试(药学专业知识)经典试题及答案
- 2026年妊娠合并糖尿病知识考核试题与答案
- 2026年应急预案试题及答案院感
- 2026年医药商品购销员(药品购销员)练习题库(含答案)
- 2026年陕西省榆林市公务员遴选笔试题库及答案解析
- 2026年护理三基考试试卷(含答案)
- 2025-2026学年湖南师大附中七年级(上)期中数学试卷
- (2025)义务教育英语课程标准【2025年版】测试题(含参考答案)
- 药事管理学考试真题及答案
- 浙江省精诚联盟2025-2026学年高一上学期10月月考化学试题(含答案)
- LNG消防安全培训内容课件
- 养殖蝎子知识培训课件
- 急性重症有机磷农药中毒护理疑难病例讨论
- 水下测绘培训课件下载
- 2024-2025学年度自考专业(学前教育)真题(考试直接用)附答案
- 人工智能通识 课件 第七章 智能之躯-具身智能
- T/CHES 54-2021取水权交易可行性报告编制导则
评论
0/150
提交评论