Android 开发框架
Android 开发框架包括基本的应用功能开发、数据存储、网络访问三大块。
1 应用方面
一般而言,一个标准的Android 程序包括Activity、Broadcast Intent Receiver、Service、Content Provider
四部分。
1).Activity
Activity 是在Android 应用开发中最频繁、最基本的模块。在Android 中,Activity 类主要与界面资源
文件相关联(res/layout 目录下的xml 资源,也可以不含任何界面资源),包含控件的显示设计、界面交互
设计、事件的响应设计以及数据处理设计、导航设计等Application 设计的方方面面。
因此,对于一个Activity 来说,它就是手机上的一个界面,相当于一个网页,所不同的是,每个Activity
运行结束时都返回一个返回值,类似一个函数。Android 系统会自动记录从首页到其他页面的所有跳转记
录并且自动将以前的Activity 压入系统堆栈,用户可以通过编程的方式删除历史堆栈中的Activity Instance。
2).Broadcast Intent Receiver
Intent 为不同的Activity 进行跳转提供了机制,譬如从A Activity 跳转到B Activity,使用Intent 来实现,
语句如下。
Intent in = new Intent(A.this, B.class);
startActivity(in);
Broadcast Intent Receiver 为各种不同的Android 应用程序间进行进程间的通信提供了可能。如当电话
呼叫来临时,可以通过Broadcast Intent Receiver 发布广播消息。对用户而言,用户是无法看到Broadcast Intent
Receiver 事件的,它对用户是不透明的,Broadcast Intent Receiver 通过Notification Manager 来通知用户这
些事件发生了,它既可以在资源AndroidManifest.xml 中注册,也可以在代码中通过Context.registerReceiver()
进行注册在AndroidManifest.xml 中注册以后,当事件来临时,即使程序没有启动,系统也会自动启动此应
用程序。另外,各应用程序可以很方便地通过Context.sendBroadcast()将自己的事件广播给其他应用程
序。
3).Service
Android 中的Service 和Windows 中的Service 完全是一个概念,用户可以通过StartService(Intent service)
启动一个Service,也可通过Context.bindService 来绑定一个Service。
4).Content Provider
Content Provider 提供了应用程序之间数据交换的机制,一个应用程序通过实现一个Content Provider
的抽象接口将自己的数据暴露出去,并且隐蔽了具体的数据存储实现,这样实现了Android 应用程序内部
数据的保密性。标准的Content Provider 提供了基本的CRUD(Create、Read、Update、Delete)接口,并
且实现了权限机制,保护了数据交互的安全性。
一个标准的 Android 应用程序的工程文件包含以下几大部分。
Java源代码部分(包含Activity)——放置在src目录中。
R.java文件——由Eclipse自动生成与维护,开发者不需要修改,提供了对Android资源的全局索引。
Android Library——应用程序运行的Android库。
assets目录——主要用于放置多媒体等文件。
res目录——放置的是资源文件: drawable包含的是图片文件,layout里面包含的是布局文件,values
里面主要包含的是字符串(strings.xml)、颜色(colors.xml)以及数组(arrays.xml)资源。
AndroidManifest.xml——应用的配置文件,在这个文件中,需要声明所有用到的Activity、Service、
Receiver等。
2 数据存储
Android 中提供的存储方式包括:SharedPreferences、文件存储、SQLite 数据库存储方式、内容提供器
方式Content Provider 以及网络方式 5 种,具体介绍如下。
1).SharedPreferences
作为Android 提供的一种配置文件读/写方式,默认保存在应用的目录data/<package name>/shared_prefs
下,通过方法getSharedPreferences(xx, 0);来获取SharedPreferences 对象进行读/写操作。
2).文件存储
Android 系统提供了进行数据读/写访问的API,例如,openFileInput、openFileOutput 等,需要特别注
意的是,Android 中应用程序的数据是私有的,也就是说,其他应用程序无法访问当前应用程序产生的文
件。
3).SQLite 数据库存储方式
通过继承 SQLiteOpenHelper 类提供的CRUD 接口来进行数据库操作,方便了应用程序的数据存储操
作。
4).内容提供器方式(Content Provider)
通过调用其他应用程序的数据接口来实现数据的读/写访问。
5).网络方式
主要通过下面要提到的网络访问该网络提供的网络服务接口,实现数据的读/写服务(如WebService
数据访问接口)。
网络访问方面
Android 主要通过java.net.*及Android.net.*来进行HTTP 访问技术的封装;利用其提供的HttpPost、
DefaultHttpClient、HttpResponse 等类提供的访问接口来实现具体的Web 服务访问。