持之以恒
分类: Android平台
2011-02-24 16:50:13
因为工作的需要,本人最近在学习Android,在学习的过程中将不断的进行总结,下面的这几篇的文章将是学习的部分成果,可能理解和认识有误,请大家指正。
1.Android基本介绍
Android软件层次结构包括:一个操作系统、中间件和应用程序。其软件层次结构自上而下可以分成应用程序、应用程序框架、各种库和Android运行环境、操作系统。
Android应用程序框架主要是包括:Views(视图)、Content Providers(数据的互访和共享)、Resource Manager(非代码的访问)、Notification Manager(警示信息)、Activity Manager(应用的生命周期和应用页面的退出机制)。
2.Android的四个组成部分
一般来说Android程序主要是由以下四个部分组成。他们分别是:Activity、Broadcast Intent Receiver、Service、Content Provider。
AndroidManifest.xml:需要申明用到的四类组件的名称,以及为每个组件的功能和需求进行必要的描述。通过这个文件可以了解这个应用里面有几个Activity,有几个Service,有几个ContentProvider,还可以通过IntentFilter来告诉系统期望处理什么样的Intent。
Activity一般代表的是手机屏幕中的一屏,在Activity中可以添加一些的View,并对View进行一定的事件处理。一般一个Android应用是由多个Activity组成的。Android会把每一个应用的开始到当前的每一个屏幕都保存在堆栈中。
Intent和Intent Filter
首先是Intent:An Intent is an abstract description of an operation to be performed.(一个Intent就是一次对将要执行的操作的抽象描述)。Intent由两个重要的组成部分:动作action和对应的数据data(以URL的形式进行表示)。如果说一个Intent是一个有效的请求,Intent Filter用于描述一个Activity能够操作哪些Intent。Intent Filter一般在AndroidManifest.xml中定义。
Broadcast Intent Receiver 应用对一个外部的事件做出响应。首先需要进行注册(两种注册的方式:一种是在AndroidManifest.xml中进行注册,另一种是通过代码进行注册)。只要是注册了,当事件来临时,即使应用程序没有启动,系统也会在需要的时候启动应用程序。
Service:后台程序
Content Provider:在Android中数据(包括文件数据和数据库数据和其他一些类型的数据)是私有的。一个程序可以通过实现一个Content Provider的抽象接口将自己的数据暴露出去。外界可以通过这一套标准而统一的接口和程序里的数据打交道。
3.Android应用工程文件的组成:
(1)源文件(包含Activity):在src目录中。
(2) R.java。是Eclipse自动生成的文件,不需应用程序的开发者进行修改,由Eclipse自动进行维护。在这个文件中,Android对资源进行全局索引。
(3)Android Library。这个是应用运行的Android库。
(4)Asset目录:主要是放置相应的多媒体的文件。
(5)Res目录(drawable目录:图片文件、layout目录:布局文件、value目录:字符串,颜色,数组),Res目录对应R.java文件。
(6)AndroidManifest.xml应用的配置文件。在这个文件中,必须声明应用的名称,应用所用到的Activity,Service以及receiver。
4.Activity
一个Android应用程序是由一个或者多个Activity组成的。Activity是一个UI的容器,其本身不在用户的界面上显示出来。
在Android中View是一个基本的UI类,基本上所有的高级的UI组件都是继承自View类。一个View在屏幕上负责一块矩形的区域,它负责渲染这块矩形区域和处理这块矩形区域上发生的事件等。
//当Activity初次被创建的时候,该函数被调用
public void onCreate(Boundle savedInstanceState)
{
super.onCreate(savedInstanceState);
}
创建一个事件监听器的代码如下:
listener = new OnClickLister()
{
public void OnClick(View v)
{
//事件处理的代码
}
};
将控件和事件监听器进行绑定的代码:
控件.setOnClickListener(事件监听器)。
布局组件(Layout):一种方式是通过Activity.setContentView(布局文件在R文件中的索引)来建立页面和布局文件之间的关联,Android中的常用的布局主要是有LinearLayout和FrameLayout和RelativeLayout三种。
(1)LinearLayout:将自己包含的子元素按照一个方向进行排列,方向有两种:一种是水平,一种是竖直。
(2)FrameLayout:在一块在屏幕上提前预定好空白的区域,然后可以填一些元素到里面。需要注意的是所有的元素都被放置在FrameLayout的最左上的区域。
(3)Relative Layout:相对布局。注意出于性能上的考虑,如果一个可视化的组件B依赖于A,那么必须要让A出现在B的前面。
使用LayoutInflater将一个XML的布局文件变成一个View类。使用Activity的addView可以将一个View绑定在相应的Activity中。LayoutInflater类需要通过getSystemService方法获得,而不能直接实例化。
5.UI
Android提供一系列标准化控件,并通过布局文件将其组织到相应的Activity,Activity获得具体的控件对象通过全局R文件进行检索。布局文件中使用@+变量名标示相应的控件变量。
Android中提供一个叫做widget的包,其中包含各种UI元素在应用程序中使用。
主要的UI控件:
Button控件:点击事件的处理
TextView文本框控件:getText 和setText方法
EditText编辑框控件
多项选择CheckBox控件 isChecked()方法和getText方法
单项选择RadioGroup控件
下拉列表Spinner控件:两种数据的输入的方式:一种是在编程的时候载入数据列表,一种是在XML中预定义数据。
自动完成文本(AutoCompleteTextView)
日期选择控件(DataPicker)和时间选择控件(TimePicker)
滚动视图(ScrollView):直接在LinearLayout外面增加ScrollView组件声明即可。
进度条(Progress Bar)
拖动条(SeekBar)
评分组件(Rating Bar)
图片控件
图片Button
图片切换
Tab
Menu
ListView
....