Android API Level10 汉文.docx
- 文档编号:30006597
- 上传时间:2023-08-04
- 格式:DOCX
- 页数:12
- 大小:48.64KB
Android API Level10 汉文.docx
《Android API Level10 汉文.docx》由会员分享,可在线阅读,更多相关《Android API Level10 汉文.docx(12页珍藏版)》请在冰豆网上搜索。
AndroidAPILevel10汉文
Android应用开发
1.1为什么会是Android?
谷歌的Android手机软件平台或许是应用软件开发的下一个大机会。
在2007年11月谷歌宣布开放手机联盟的Android平台,在同一时间推出的Android软件开发工具包(SDK)的第一个beta版本。
在几个月内,超过1万人,从Google的网站下载SDK版本。
在美国,2008年10月,T-Mobile宣布了G1的Android移动电话,估计几十万的G1S今年年底之前将被出售。
虽然已经有几个在市场竞争的手机软件开发平台,但是为什么会对Android那么感兴趣呢?
Android有成为新一代手机应用软件的开发和销售的成功潜力,为消除障碍。
正如标准化的PC和Macintosh平台创建,台式机和服务器软件市场,通过提供一个标准的手机应用环境,将创建一个市场,移动应用程序和应用程序开发人员可以从这些应用中获利。
为什么没有盈利,发展到现在的智能手机移动应用?
Android为什么可以得以生存呢?
1.1.1碎片
在2007年共售出约70万部智能手机,所以有很多可用来运行应用程序的手机,但每个品牌都有不同的应用环境。
这是由于Android是基于Linux的手机平台,每个手机厂商已组装几十件的第三方软件,以建立一个可行的移动电话平台。
他们将所有选择相同的组件,以建立一个移动的智能手机根本没有没有机会。
在这种情况下Java是应该提供帮助的,J2ME和无线Java的建议(疾病预防控制中心,CLDC,MIDP中,JTWI的,海事等)提供了跨手机常见的应用环境中。
不幸的是,几乎每一个支持J2ME的手机也支持厂商专有的扩展,限制了应用程序的可移植性。
1.1.2专有软件栈
大多数现有的智能手机使用专有的,相对封闭的软件栈,如诺基亚的S60系列的Symbian操作系统,或者微软的WindowsMobile。
这些栈的修改(例如添加驱动程序),要由雇主或由手机制造商来完成。
栈是不开源的,所以改变任何栈的东西都是最困难的。
迄今大多数基于Linux的手机有一个开放源码的内核(GPL许可证的规定),但保持软件堆栈的其他细节(应用程序框架,多媒体框架,应用程序)是专有的。
1.1.3封闭网络
诺基亚的s60系列和WindowsMobile除了允许第三方应用,但移动运营商常常锁定手机,所以不能添加应用。
经营者声称,这是需要保留其移动网络的完整性,确保病毒和垃圾邮件并不是由用户无意中安装。
这也符合运营商的业务模式,因为他们的移动电话客户只限于运营商的“围墙花园”的应用,无论是在手机和网络。
Android包括一个开放的应用程序目录,Android市场,用户可以通过空中下载到他们的Android手机应用。
它还可以通过USB连接直接装载应用。
Android为开发人员提供了一种方法来开发独特的,创造性的应用,并将这些应用程序放在客户手中。
成千上万的Android手机用户已经存在,寻找未来的聪明或有用的应用程序,该应用程序可以成为你的。
1.2Android应用程序的组件
你的Android应用程序由四个基本部分组成,这些在Android架构中定义的类型:
1.2.1活动
这些都是与桌面系统,如办公应用软件等相独立的模块。
活动件是定的,由用户或操作系统运行的可执行代码的实例,只要他们需要多久就能使用多久。
他们可以和其他活动交互,通过查询或意图(在某一时刻讨论)的服务与用户请求数据的服务。
大部分为Android编写的可执行代码将在一个活动的范围内执行。
活动通常对应屏幕显示:
每个活动显示给用户的一个屏幕。
当它不积极跑动,活动可以被操作系统杀害,以节省内存。
1.2.2服务
这些类似的服务或守护进程在桌面和服务器操作系统。
他们是可执行的代码,通常在后台运行,从服务被实例化到手机被关闭该服务才被取消。
他们一般不暴露用户界面。
服务的典型的例子是一个MP3播放器,需要继续播放队列中的文件,即使用户已经在使用其他应用程序。
你的应用程序可能需要执行在服务中执行后台任务,即使没有用户界面。
1.2.3广播和意图接收器
这些从另一个应用程序的服务请求作出回应。
广播接收器响应一个事件的通知。
这些通知可以从Android本身(例如,电池低),或从系统上运行的任何程序。
活动或服务提供了访问其功能的其他应用程序,通过执行一个Intent接收器,一个可执行代码的小块响应数据请求或其他活动的要求。
正在提出要求的(客户)活动问题的意图,让Android框架找出哪些应用程序可以接收和行动。
意图是构建Android的关键要素,促进创造新的应用,从现有的应用程序(移动混搭)。
你可以使用你的应用程序的意图,与其他应用程序和服务提供您的应用程序所需的信息交互。
在第13章更详细的意图和意图接收器覆盖。
1.2.4内容提供商
这些都是建立与其他活动或服务共享数据。
内容提供商在一个标准的接口使用URI的形式,完成数据从其他应用程序,甚至可能不知道他们正在使用的内容提供商的要求。
例如,当应用程序发出联系数据的查询,它涉及到形式的URI查询如下:
内容:
//联系人/人
操作系统看到内容提供商申请注册为自己指定的URI,将请求发送到相应的应用程序(启动应用程序,如果它尚未运行)。
如果有多个内容提供商注册请求URI,操作系统询问用户,他想用哪一个。
应用程序不使用所有的Android组件,但精心编写的应用程序将使用供应商所提供的,而不是重塑功能或硬编码到其他应用程序的引用的机制。
URI和意图允许Android提供了一个非常灵活的用户环境。
应用程序可以很容易地添加,删除,取代,这是意图和URI的的松耦合不断所共同努力的结果。
1.3Android活动生命周期
Android是围绕移动应用的独特需求而设计的。
Android的认识,特别是在大多数移动设备有限的资源情况下(内存和电池,例如)提供机制,用以保护这些资源。
在Android活动的生命周期,它定义了一项活动,通过从它创建,直到它运行结束时的状态或事件的机制。
在图1-1中的显示便是活动的生命周期。
图1-1。
Android活动生命周期
你的活动监视器和实例方法,每个事件的活动类方法覆盖这些事件的反应:
OnCreate中
您的活动第一次被创建时调用。
通常在创建是建议打开您的活动需要使用的任何持久的数据文件,一般初始化您的活动的地方。
当调用onCreate,Android框架是通过一个Bundle对象包含活动在运行前保存的任何活动状态。
OnStart中
之前调用您的活动成为在屏幕上可见。
一旦OnStart中完成的,如果你的活动能成为屏幕上的前景活动,控制将转移到onResume。
如果该活动不能成为前台活动,出于某种原因,控制转移到OnStop方法。
onResume
称为后缓动,如果你的活动是在屏幕上的前景活动。
在这一点上运行您的活动和与用户交互。
您收到键盘和触摸输入,屏幕显示您的用户界面。
如果您的活动的前景失去另一个活动,该活动的最终退出,弹出您的活动推到前台,onResume也被称为。
这是您的活动将开始(或简历)做事情,都需要更新用户界面(位置更新接受或运行一个动画)。
onPause
当Android只是恢复不同的活动,该活动的前景。
此时你的活动将不再有机会到屏幕上,所以你应该做的事情,就是没必要再消耗电池和CPU周期。
如果您正在运行的动画,没有人能够看到,所以你还不如暂停,直到你得到屏幕的背面。
您的活动需要采取这种方法的优点来存储任何状态,您将在需要在您的活动时再次获得活动的前景。
如果您正在运行的移动设备内存用完,并且没有在磁盘上的虚拟内存作为扩展,那么您的活动可能由于系统的更新而让路。
一旦你退出这个方法,Android可能随时杀死你的活动,没有控制权返回给你。
onStop
当你的活动不再可见后,无论是因为另一个活动要暂用前景,或者你的活动被销毁。
OnDestroy
活动的最后机会做任何处理之前,它被摧毁。
通常,你会得到这一点,因为活动已经完成,框架调用其完成的方法。
但如前所述,该方法可以调用,因为Android已经决定它需要你的活动消耗的资源。
重要的是,采取这些方法的优势是使提供最佳的用户体验成为可能。
这是首位在这本书中,我们已经讨论了桌面设备编程是不同的移动设备编程,当你通过后面的章节中去会有许多这样的地方。
你的用户会欣赏它,如果你写你的活动使用活动周期,你将最终受益。
1.4Android服务生命周期
服务的生命周期类似于活动,但在一些重要的细节有所不同:
OnCreate和onStart的差异
当客户端调用Context.startService(意向)方法,就可以开始服务。
如果该服务尚未运行,Android启动它,并调用它的onCreate方法和OnStart方法。
如果该服务已在运行,其OnStart方法再次被调用。
因此,它很可能和正常服务的OnStart方法,多次在单次运行的服务被调用。
onResume,onPause和onStop是不需要的
回想一下,服务一般没有用户界面,所以不存在任何需要的onPause,onResume和onStop方法。
每当一个服务正在运行,它始终是在后台。
onBind
如果客户端连接到服务需要一个持久的时间,它可以调用Context.bindService方法。
这将创建服务,如果它没有运行,将调用onCreate,但没有OnStart。
相反,onBind方法被称为与客户的意图,它返回一个可以使用的IBind客户端作为进一步的呼叫服务的对象。
这是相当正常的服务,有客户开始它和客户同时约束它。
OnDestroy
作为一项活动,在OnDestroy方法被称为调用时,将被终止。
Android将终止服务时,当没有更多的客户开始或绑定到它。
与活动,机器也可以终止服务当内存越来越低。
如果出现这种情况,Android将尝试重新启动该服务,当内存压力传递,因此,如果你的服务需要持久信息存储,重启,最好是在OnStart方法中。
1.5设置您的开发环境
Android应用程序,像大多数手机应用一样,在目标主机的开发环境中开发。
换句话说,你开发你的应用程序的主机计算机(资源丰富),并把它下载到目标测试和最终使用的移动电话。
应用程序可以测试和调试上一个真正的Android设备或模拟器上。
对于大多数开发人员,使用模拟器是在真实设备上的最后测试,最初的开发和调试更容易。
写自己的Android手机应用程序,你需要先收集所需的工具和您的PC或Mac上设置一个适当的发展环境。
在本章中,我们将收集你需要的工具,下载并安装您的计算机上,并写一个示例应用程序,将让你感受到的模拟器上运行Android应用程序。
Linux,Windows和OSX上所有支持的开发环境,我们会告诉你如何安装在每个最新的工具集。
然后,我们会告诉你你需要做安装的工具(设置PATH环境变量和类)后,为三个中的每个操作系统的任何配置。
最后,我们将写短的小的“Hello,Android”的应用程序,演示为了得到一个通用的应用程序运行需要做什么。
AndroidSDK的支持几种不同的集成开发环境(IDE)。
这本书中,我们将专注于Eclipse,因为它是最好的集成与SDK,嘿,它是免费的IDE。
无论您使用的是哪种操作系统,您将需要基本上是相同的工具集:
在EclipseIDE
Sun公司的Java开发工具包(JDK)
Android软件开发工具包(SDK)
Android开发工具(ADT):
一个特殊的Eclipse插件
因为你可能要开发只使用一个主机操作系统,跳过相应的部分到你选择的操作系统上。
1.5.1创建一个Android开发环境
Android软件开发工具包支持Windows(XP和Vista),Linux的(在UbuntuDapperDrake测试,但任何最近的Linux发行版应该工作)和MacOSX(10.4.8或更高版本,Intel平台)作为主机的开发环境。
SDK安装在任何操作系统是大致相同的,大多数这样的描述同样适用于所有。
程序不同的地方在每个环境,我们会清楚地告诉你做什么:
安装JDK:
AndroidSDK需要JDK版本5或第6版。
如果您已经有安装者之一,跳到下一步。
MacOSX附带,特别是与已经安装的JDK版本5,许多Linux发行版包括一个JDK。
如果未安装JDK,去下载,你会看到一个Java产品的清单。
您想更新您的操作系统的JDK6的n,其中n是在写这篇文章时的6。
Windows(XP和Vista)
选择“Windows脱机安装,多语言分配。
”
阅读,审查,并接受Sun的JDK的许可证。
(牌照已成为许可,但如果你有这样的问题存在,替代免费的JDK。
)
一旦下载完成后,一个对话框会问你是否要运行下载的可执行文件。
当您选择“运行”,“Windows安装程序将启动,并引导你通过一个对话框,在电脑上安装JDK。
Linux
选择“Linux自解压文件的分布。
”
阅读,审查,并接受Sun的JDK的许可证。
(牌牌照已成为许可,但如果你有这样的问题存在,替代免费的JDK。
)
您将需要下载的自解压二进制的位置,你想在你的文件系统上安装JDK。
如果这是一个全系统的目录(如/usr/本地),您将需要root权限。
下载文件后,它的可执行文件(使用chmod+xjdk-6version-LINUX-i586.bin),并执行它。
它会自解压到创建一个目录树。
MacOSX中
MacOSX附带的JDK版本5已加载。
安装Eclipse的AndroidSDK需要Eclipse版本3.3或更高版本。
如果你尚未安装该版本的Eclipse,你会需要去得到它,你可能需要3.4版本(也称为Ganymede),因为该软件包包括在未来提到所需的插件加强。
你想标记的EclipseIDE“EclipseIDE的Java开发人员的版本,”很明显,你想为你的操作系统需要这样的版本。
Eclipse会问你要选择一个镜像站点,然后会开始下载。
WINDOWS(XP或Vista)
Eclipse下载作为一个大的ZIP文件,你的安装文件解压缩到您最喜爱的目录。
这本书中,我们将假定您提取到C:
//eclipse。
Eclipse现在安装,但它不会出现在你的应用程序的开始菜单。
你可能想创建一个为C:
//eclipse/eclipse.exe的Windows快捷图标,并将其放置在桌面上,在“开始”菜单,或别的地方,在那里你可以轻松地找到它。
Linux和MacOSX的
请注意,截至记者发稿,如果您要求在UbuntuHardyHeron上是3.2.2,它不包含所有的Android插件所需要安装的Eclipse版本。
Eclipse下载作为一个大的tarball(.gz文件),安装文件解压缩到您最喜爱的目录。
这本书中,我们将假设你解压缩到/usr/lib//eclipse。
位于该目录中的可执行文件本身和被命名为/eclipse。
检查所需的插件:
如果你刚刚下载当前版本的Eclipse,我们建议,你可以跳过这一步。
如果您使用的是预装了Eclipse版本,你需要确保你有Java开发工具(JDT),Web标准工具(WST)插件。
您可以轻松地检查,看看他们是否安装启动Eclipse,选择菜单选项“Windows优先选项...”。
偏好清单应包括一个“Java”和“XML”或“Web和XML。
”如果他们不在名单上,最简单的办法是重新安装的Eclipse,在上一步中所述。
安装“Eclipse的Java开发IDE”将自动获得所需要的插件。
安装AndroidSDK:
这是你应该在哪里开始,如果你已经有正确的版本的Eclipse和JDK装。
AndroidSDK的分布,通过谷歌的Android网站。
你将需要阅读,审查,并接受许可条款才能进行。
当你到下载列表中,你会看到一个分布表。
选择您的操作系统(XP和Vista中使用相同的分布)之一。
包(文件)的名称,包括版本号。
例如,因为这是书面的,最新版本的SDK是1.1_r1,所以对Windows的文件名是android-sdk-winddows-1.1_r1.zip.
对于版本3.3和Eclipse,在Android下载网站提供了有关如何安装方向的插件通过Eclipse的软件更新工具。
如果你使用Eclipse3.2或软件更新的技术不适合你,从Android网站下载SDK并安装使用说明在未来一段时间内。
你下载的文件是另一个归档文件,用Eclipse:
ZIP文件上的Windows,Linux和MacOSXtar压缩文件为Eclipse做同样的事情:
你要安装的位置,提取归档文件目录Android和目录的名称(你需要在第6步)的说明。
提取将创建一个目录树,包含一堆子目录,其中包括所谓的工具。
更新环境变量:
为了更容易地推出了Android工具,工具目录添加到您的路径。
在WindowsXP中,单击开始,然后右键单击我的电脑上。
在弹出的菜单中,单击属性。
在系统属性对话框,选择“高级”选项卡。
附近的“高级”选项卡底部的一个按钮,“环境变量”,“带你到一个环境变量”对话框。
用户环境变量中列出的半框的顶部,并在下半区的系统环境变量。
向下滚动,直到你找到“路径”系统环境变量列表,选择它,单击“编辑”按钮。
现在,你将在编辑系统变量“对话框,允许您更改环境变量”路径“。
工具目录的完整路径添加到现有路径变量的末尾,并点击“确定”。
你现在应该看到在显示的列表中的变量的新版本。
点击“OK”,然后“确定”退出对话框。
WindowsVista上,在左下角的桌面点击微软的“标志”,然后在电脑上按一下滑鼠右键。
结果显示在上方,正下方的菜单栏,点击“系统属性。
”中产生的框左侧的列,单击“高级系统设置”。
Vista将警告你一个对话框,说:
“Windows需要您的许可才能继续”,点击“继续”。
“附近的“系统属性”框中的底部标有“环境变量”,把你带到一个环境变量“对话框中的按钮。
用户环境变量中列出的半框的顶部,并在下半区的系统环境变量。
向下滚动,直到你找到“路径”系统环境变量列表,选择它,单击“编辑”按钮。
现在,你将在编辑系统变量“对话框,允许您更改环境变量”路径“。
工具目录的完整路径添加到现有路径变量的末尾,点击“OK”。
你现在应该看到在显示的列表中的变量的新版本。
点击“OK”,然后“确定”退出对话框。
在Linux上,PATH环境变量可以被定义在〜/.bashrc文件〜/.bash_profile文件。
如果您有任何这些文件,使用如gedit,vi或Emacs的文本编辑器打开该文件,并寻找一条线,导出PATH变量。
如果你找到了这样一条线,编辑它添加工具目录的完整路径的路径。
如果没有这样的线,你可以加入这样一行:
导入PATH=${PATH}:
your_sdk_dir/tools
your_sdk_dir地方的完整路径。
MacOSX上,寻找一个文件名为.bash_profile文件在你的home目录(注意文件名中的初始点)。
如果有一个,使用编辑器打开该文件,并寻找一条线,导出PATH变量。
如果你找到了这样一条线,编辑它添加工具目录的完整路径的路径。
如果没有这样的线,你可以加入这样一行:
导出PATH=${PATH}:
your_sdk_dir/tools
your_sdk_dir地方的完整路径。
安装Android插件(ADT):
在这本书中,我们将利用Android开发工具插件,谷歌在构建Android应用程序使用的用品。
该插件被安装在任何其它Eclipse插件相同的方式:
启动Eclipse,如果它尚未运行。
从菜单栏中,选择“查找并安装软件更新...”。
在安装/更新“对话框中,选择”搜索新功能,安装“,点击”下一步。
“
在安装对话框中,单击“新建远程站点”。
一个“新的更新站点”对话框弹出。
输入一个名称的插件(“Android插件”会做),和更新的URL。
点击“OK”。
新的网站,现在应该出现在网站上安装“对话框的列表。
点击“完成”。
在搜索结果对话框中,选择“Android插件开发工具”复选框,单击“下一步”
出现插件的许可协议。
读它,如果你同意,请选择“接受许可协议条款”,点击“下一步”。
点击“完成”。
你会得到一个警告,没有签名的插件。
选择安装一下也无妨“全部安装”。
重新启动Eclipse。
Eclipse重新启动后,你需要告诉它的SDK位置。
从菜单栏中,选择“窗口首选项”。
在Preferences对话框中,选择“在左侧栏中的”机器人“。
使用“浏览”按钮导航到你安装AndroidSDK的地方,并点击“应用”,然后“确定。
”
恭喜你已经安装了一个完整的Android开发环境,不花一分钱。
正如你将看到在今年和随后的章节,环境包括一个非常复杂的工具集,使Android编程更容易,包括:
基于Eclipse中,可以说是为Java开发的首要IDE集成开发环境。
Eclipse本身带来了许多宝贵的发展特征。
谷歌和开放手机联盟已Eclipse的可扩展性的优势,提供Android的定制,包括调试功能,像你这样的移动应用开发的需求,调整功能。
一个Java开发环境和Dalvik虚拟机,在Sun的JDK基础上为您的应用程序建立一个非常复杂的编程环境。
一个完整的手机模拟器,让您测试您的应用程序,而无需将它们下载到目标手机。
模拟器包括用于测试您的应用程序,根据不同的移动电话通信条件(褪色,掉线等)的功能。
测试工具,如Traceview,它允许你调整你的应用程序以最好的利用手机上有限的资源优势。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Android API Level10 汉文