Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1501198
  • 博文数量: 218
  • 博客积分: 6394
  • 博客等级: 准将
  • 技术积分: 2563
  • 用 户 组: 普通用户
  • 注册时间: 2008-02-08 15:33
个人简介

持之以恒

文章分类

全部博文(218)

文章存档

2013年(8)

2012年(2)

2011年(21)

2010年(55)

2009年(116)

2008年(16)

分类: 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程序主要是由以下四个部分组成。他们分别是:ActivityBroadcast Intent ReceiverServiceContent Provider

AndroidManifest.xml:需要申明用到的四类组件的名称,以及为每个组件的功能和需求进行必要的描述。通过这个文件可以了解这个应用里面有几个Activity,有几个Service,有几个ContentProvider,还可以通过IntentFilter来告诉系统期望处理什么样的Intent。

Activity一般代表的是手机屏幕中的一屏,在Activity中可以添加一些的View,并对View进行一定的事件处理。一般一个Android应用是由多个Activity组成的。Android会把每一个应用的开始到当前的每一个屏幕都保存在堆栈中。

IntentIntent Filter

首先是IntentAn Intent is an abstract description of an operation to be performed.(一个Intent就是一次对将要执行的操作的抽象描述)Intent由两个重要的组成部分:动作action和对应的数据data(URL的形式进行表示)。如果说一个Intent是一个有效的请求,Intent Filter用于描述一个Activity能够操作哪些IntentIntent 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应用的配置文件。在这个文件中,必须声明应用的名称,应用所用到的ActivityService以及receiver

4.Activity

一个Android应用程序是由一个或者多个Activity组成的。Activity是一个UI的容器,其本身不在用户的界面上显示出来。

AndroidView是一个基本的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中的常用的布局主要是有LinearLayoutFrameLayoutRelativeLayout三种。

(1)LinearLayout:将自己包含的子元素按照一个方向进行排列,方向有两种:一种是水平,一种是竖直。

(2)FrameLayout:在一块在屏幕上提前预定好空白的区域,然后可以填一些元素到里面。需要注意的是所有的元素都被放置在FrameLayout的最左上的区域。

(3)Relative Layout:相对布局。注意出于性能上的考虑,如果一个可视化的组件B依赖于A,那么必须要让A出现在B的前面。

使用LayoutInflater将一个XML的布局文件变成一个View类。使用ActivityaddView可以将一个View绑定在相应的Activity中。LayoutInflater类需要通过getSystemService方法获得,而不能直接实例化。

5.UI

Android提供一系列标准化控件,并通过布局文件将其组织到相应的ActivityActivity获得具体的控件对象通过全局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

....

阅读(3589) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~