1.4 Andr oid开发框架
Android系统作为一个开放的系统,它体积庞大,对于不同的开发者来说,其在开发过程中并不需要掌握整个Android系统,只需要进行其中某一部分的开发。从功能上,将Android开发分为移植开发移动电话系统、Android应用程序开发,以及Android系统开发3种。
从商业模式的角度来讲,移植开发移动电话系统和Android应用程序开发是Android开发的主流。对于移植开发移动电话系统主要由移动电话的制造者来进行,其产品主要是Android手机;而公司、团体和个人一般进行对于Android应用程序的开发,产生各种各样的Android应用程序。
对于Android 移植开发来讲,其主要工作集中于Linux 内核中的相关设备驱动程序,以及 Android 本地框架中的硬件抽象层接口的开发;对于Android应用程序开发,其开发的应用程序与 Android系统的第四个层次的应用程序是一个层次的内容;对于Android系统的开发,涉及Android系统的各个层次,一般情况下是从底层到上层的整体开发。
Android开发框架包括基本的应用功能开发、数据存储、网络访问三大块。
1.4.1应用方面
一般而言,一个标准的Android程序包括Activity、Broadcast Intent Receiver、Service、Content Provider 4部分:
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);
BroadcastReceiver还为各种不同的Android应用程序间进行进程间的通信提供了可能。例如,当电话呼入时,它可以通过BroadcastReceiver发布广播消息。对于用户而言,用户是无法看到BroadcastReceiver 事件的,它对用户是不透明的,BroadcastReceiver 通过NotificationManager 通知用户这些事件发生了,它既可以在资源 AndroidManifest.xml中注册,也可以在代码中通过Context.registerReceiver()进行注册,注册以后,当事件来临时,即使程序没有启动,系统也会在需要的时候自动启动此应用程序;另外,各应用程序很方便地通过Context.sendBroadcast()将自己的事情广播给其他应用程序。
3.Service
Android中的Service和Windows中的Service是一个概念,用户可以通过startService (Intent Service)启动一个Service,也可以通过Context.bindService来绑定一个Service。
4.Content Provider
Content Provi der 提供了应用程序之间数据交换的机制,一个应用程序通过实现一个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等。
1.4.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数据访问接口)。
1.4.3 网络访问方面
主要通过java.net.*;Android.net.*来进行HTTP 访问技术的封装;利用其下提供的HttpPost、DefaultHttpClient、HttpResponse等类提供的访问接口来实现具体的Web服务访问。