【Android源码 栏目提醒】:网学会员,鉴于大家对Android源码 十分关注,论文会员在此为大家搜集整理了“Android第2章 初识Android - 综合课件”一文,供大家参考学习!
第二章 初识
Android 由_www.eduexam.cn_提供下载本章目标 学会
Android环境搭建 了解
Android基本组件 编写第一个
Android “Hello World”程序 了解
Android应用程序的结构 API参考文档的使用
Android开发环境的结构
Android开发环境搭建 要开发
Android应用程序,需要由JDK 6 Eclipse IDE
Android SDK和ADT搭建
Android开发环境,接下来我 们将依次介绍(注意:我们以window OS为例,其它 操作系统请参考教材配置)。
下载JDK 6 从Sun网站http: //java. sun. com/javase/downloads/下载JDK6并安装。
只需要JDK,不需要其他程序包。
接下来,设置JAVA_HOME: 在Windows XP机器上,可以转到“开始”-“我的电脑”,右键单击并选择“属性” ,选择“高级”选项卡,然后单击“环境变量”。
单击“新建”添加JAVA_HOME变 量,如果该变量已存在,单击“编辑”修改它。
JAVA_HOME的值类似于 C:Program FilesJavajdk1.6.0_ 16。
对于Windows Vista和Windows 7,调出“环境变量”屏幕的步骤稍有不同,转 到“开始”-“计算机”,右键单击并选择“属性”,单击“高级系统设置”链接,然后 单击“环境变量”。
按照与Windows XP相同的指令更改JAVA_HOME环境变量 。
由_www.eduexam.cn_ 提供下载
Android开发环境搭建 下载Eclipse 3.5 所有Eclipse版本都可以从http://www.eclipse.org/downloads/下载。
Eclipse发布版是一个zip文件可以解压到任何位置。
Windows上最简单的 解压位置就是C:,这会创建C:eclipse文件夹,其中包含eclipse.exe。
首次启动Eclipse时,它将要求为工作区提供一个位置。
为了简化操作, 可以选择一个简单的位置,比如C:
android。
下载
Android SDK 从http: //developer.
android. com/sdk下载
Android SDK 。
Android SDK 以zip文件的形式发布,类似于Eclipse的发布方式,所以需要将其解压到 合适的位置。
Android SDK包含一个tools目录,需要将它添加到PATH中。
添加之后, 还需要加JDK bin目录,这会使以后的开发工作更轻松。
对于Windows, 返回到上面介绍的“环境变量”窗口。
编辑PATH变量,添加一个分号然后 添加
Android SDK tools文件夹的路怪,接着添加另一个分号和 JAVA_HOMEbin。
Android开发环境搭建 安装ADT 具体来讲与Eclipse集成,提供了一些工具来创建、测试和调试
Android应 用程序。
1选择Help菜单项并选择Install New Software选项。
这个选项在以前的 Eclipse版本中为“Software Updates。
2选择‘Work with”字段,键入hops://dl-ssl. google.com/
android/eclipse/ 并按回车键。
Eclipse将连接该网站并生成列表,如图所示。
3应该会看到一个名为Developer Tools的项启包含两个子节点:
Android DDMS和
Android Development Tools。
选择父节点Developer Tools,并 确认同时选中了两个子节点,然后单击Next按钮。
4 Eclipse现在要求验证要安装的两个工具。
再次单击Next。
5现在Eclipse将要求查看ADT和安装ADT所需工具的许可协议。
查看许 可协议,单击“accept”,然后单击Finish按钮。
Eclipse将下载ADT并安装。
安装完成之后需要重新启动Eclipse,新插件 才会在IDE中显示。
Android开发环境搭建 选择Window菜单并选择。
在Preferences对话框中,选择
Android节点并 将SDK Location字段设置为
Android SDK的路径参见图2-3,然后单击 Apply按钮。
安装
Android SDK之初,不会显示任何平台版本。
如果显示了,在设置 SDK Location之后将会在所示的
Android Preferences窗口中看到它们。
安装平台非常简单。
在Eclipse中,转到Window
Android SDK and AVD Manager,选择Available Packages,选择https://dl-ssl. google. com/
android/repository/repository. xml源,然后选择想要的平台和附加 项比如
Android 2.0。
如图:了解基本组件 每个应用程序框架都有一些关键组件,在开始编写基 于该框架的应用程序之前,开发人员必须理解这些组 件。
要为
Android开发应用程序,需要理解Activity View,Intent ContentProvider Service和 AndroidManifest.xml文件。
下面将简要介绍这些基本 概念,后面各章将更详细地介绍它们。
View View是UI元素,是构成用户界面的基本构建块。
View是分层的,它们知 道如何绘制自身。
View可以是一个按钮、标签或文本字段,或者各种其 他UI元素。
Activity Activity是一个用户界面的概念。
Activity通常表示应用程序中的一个屏幕 。
它通常包含一个或多个View,但也可以不包含View。
了解基本组件 Intent Intent通常定义执行某种工作的“意图”。
Intent封装了几种概念,所以理解 它们的最佳方法就是查看它们的使用示例。
可以使用Intent来执行以下任 务。
广播消息 启动Service 启动Activity 显示网页或一组联系人 拨出或接听电话 Intent并不总是由应用程序发起,系统也会使用它们来向应用程序传递特 定的事件比如收到一条文本消息。
Intent可以是显式的,也可以是隐式的。
如果只是希望显示一个URL,那 么系统将会决定哪些组件能满足此意图。
你也可以提供由什么来处理该 意图的具体信息。
Intent将操作和操作处理程序松散地连接在一起。
ContentProvider了解基本组件 我们常常需要在设备上的移动应用程序之间共享数据。
因此,
Android为 应用程序定义了一种标准机制来共享数据比如联系人列表,无需公开底 层存储、结构和实现。
通过ContentProvide。
可以公开数据,允许应用 程序使用来自其他应用程序的数据。
Service
Android中的Service类似于Windows或其他平台中的服务,它们都是可 能长时间运行的后台进程。
Android定义了两种类型的Service:本地Service和远程Service。
本地 Service是只能由承载该Service的应用程序访问的组件。
而远程Service 是供在设备上运行的其他应用程序远程访问的Service。
电子邮件应用程序用于轮询新邮件的组件,就是一个Service示例。
如果 这种Service不能被在设备上运行的其他应用程序使用,那么它就是本地 Service。
如果有多个应用程序使用该Service 那么它就是远程Service。
AndroidManifest.xml 类似于J2EE中的web.xml文件,它定义应用程序的内容和行为。
例如它 列出应用程序的Activity和Service,以及运行应用程序所需的权限。
了解基本组件 AVD AVD使开发人员无需使用
Android手机就可以测试应用程序。
可以在各种 配置下创建AVD来模拟不同类型的手机。
可以在eclipse Windows菜单下选择
Android SDK And AVD Manager创建avd 在弹出的对话框中选中“New…”开始创建。
如图: 在新建AVD对话框中填入合适信息创建AVD AVD成功配置好可以点击“
Android SDK And AVD Manager”对话框测试创建 好的AVD,如图:
Android Hello World 现在可以编写第一个
Android应用程序了。
首先编写一 个简单的“Hello World”程序。
执行以下步骤来创建应 用程序的框架。
1启动Eclipse并选择File New Project。
在New Project对话框中,选 择
Android,然后单击Next。
然后将看到New
Android Project对话框,如 图2-5所示。
Eclipse可能已将“
Android Project添加到New菜单中,如果 存在此菜单项,则可以使用它。
工具栏上还有一个New
Android Project 按钮可供使用。
,输入HeIloAndroid作为项目名称,HeIloAndroidApp作为应用程序名称 com.androidbook作为包名称,HelloActivity作为Create Activity的名称。
注意,对于真实的应用程序,将需要使用有意义的应用程序名称,因为 它将在应用程序的标题栏中显示。
另外请注意项目的默认位置将在 Eclipse工作区目录下。
单击Finish按钮,这将告诉ADT生成项目框架。
Android Hello World 打开src文件夹下的HelloActivity.java文件,将onCreate 方法修改为 :/Called when the activity is first created./ public void nCreateBundle savedlnstanceState super.onCreatesavedInstanceState /create a TextView and write Hello World/ TextView tvnew TextViewthis tv.setTextHello World” /set the content view to the TextView/ setContentViewtv Eclipse会自动为
android.widget.TextView添加一条import语句。
可能需 要单击第一个import语句旁边的“”号来查看所有导入语句。
如果没有自 动添加该导入语句,请自行添加。
保存HelloActivity.java文件。
要创建Eclipse启动配置,执行以下步骤。
1选择RunRun Configurations。
2在Run Configurations对话框中,双击左侧窗格中的
Android Application。
向导将插入一个名为New Configuration的新配置。
3习惯配置重命名为RunHeIloWorld。
Android Hello World 4单击Browse按钮,选择He1loAndroid项目。
5在Launch Action下选择Launch,然后从下拉列表中选择com. androidbook.HelloActivitv 。
弹出的对话框如图 6单击Apply,然后单击Run。
基本上完成了。
Eclipse已准备好运行应用程 序 运行成功,结果如图:剖析
Android应用程序的结构 尽管各种
Android应用程序的大小和复杂性可能相差甚 大,但它们的结构是类似的。
Android应用程序主要由3部分组成:应用程序描述文件、各种资源的集合 ,以及应用程序源代码。
如果暂时撇开AndroidManifest. xml文件,可以 通过一种简单的方式来看待
Android应用程序:代码实现业务逻辑,其他一 切都是资源。
一些与资源相关的限制也值得注意。
首先,
Android仅支持在res下创建 预定义文件夹,而且预定义文件夹下不能嵌套其文件夹。
例如,它不支持layout文件夹或res下的其他预定义文件夹下的嵌套文 件夹。
其次,assets文件夹与res下的raw文件夹具有很多相似性。
两个 文件夹都包含原始文件,但raw中的文件被当做资源,而assets中的文件 不是。
所以raw中的文件可以本地化,可以通过资源ID访问,但assets文 件夹的内容被视为通用内容,对它们的使用没有资源限制,不需要提供 支持。
注意,由于assets文件夹的内容未被当做资源,所以可以在其中 随意建立文件夹和文件。
剖析
Android应用程序的结构 提示:
Android大量使用了XML。
我们都知道,XML是一种臃肿的数据格 式,所以我们不禁质疑,在知道目标将是资源有限的设备时还采用XML 有意义吗事实上,我们在开发期间创建的XML会使用AAPT
Android Asset Packaging Tool
Android资产打包工具编译为二进制文件。
因此 ,当将应用程序安装在设备上时,设备上的文件将存储为二进制形式。
当在运行时需要某个文件时,将读取该文件的二进制形式,而不会将其 转换为XML。
这为我们提供了两方面的优势,我们既可以使用XML,又 不必担心占用设备上的宝贵资源。
API参考文档的使用 参考文档的内容: 包的索引 类的索引 包(Package)的内容: Interfaces Classes Enums ExceptionsAndroid API参考文档 Activity类的帮助信息: public class Activity extends ContextThemeWrapper implements ComponentCallbacks KeyEvent.Callback LayoutInflater.Factory View.OnCreateContextMenuListener Window.Callback java.lang.Object
android.content.Context
android.content.ContextWrapper
android.view.ContextThemeWrapper
android.app.Activity Known Direct Subclasses ActivityGroup AliasActivity ExpandableListActivity ListActivity Known Indirect Subclasses LauncherActivity PreferenceActivity TabActivityAndroid API参考文档 public class:表示只是一个公开的类; extends ……: 标明了这个类继承的父类(Java不支持多继 承,因此每个类只有一个唯一的父类),后面的内容 表示这个类从祖先开始继承的关系。
这里的类使用的 是包含了其所在包名称的全名,因此在这里可以得知 类及其祖先类属于哪个包; Implements ……: 标明了这个类实现的接口(可以有多个); Known Direct Subclasses ……:这个类的直接继承者; Known Indirect Subclasses ……:这个类的间接继承者。