而Android中的画图操作与基本的J2ME方法基本相同,主要流程就是首先生成Canvas画布,如果有需求,对画布上的一些对象进行操作,例如将图片通过流转换为Bitmap对象(这一对象在Android中提供了许多工具类,像BitmapFactory等),然后使用Paint画笔类进行一些操作。其他相关类有Matrix、Color类等,都是于Android中提供好的封装接口,非常方便用户使用。
2.2 Android中的重要组件
在Android的应用程序开发中,最重要的就是Android的四大组件了,他们几乎组成了Android在Application层面的所有部分。
图2.1 Android系统结构图
2.2.1 Activity
一个Activity通常展现为一个可视化的用户界面。例如,一个Activity可能展现为一个用户可以选择的菜单项列表或者展现一些图片以及图片的标题。一个消息服务应用程序可能包含一个显示联系人列表的Activity,一个编写信息的Activity,以及其它一些查看信息和修改应用程序设置的Activity。虽然这些Activity一起工作,共同组成了一个应用程序,但每一个Activity都是相对独立的。每一个Activity都是Activity(android.app.Activity)的子类。
2.2.2 Service
Service没有用户界面,但它会在后台一直运行。例如,Service可能在用户处理其它事情的时候播放背景音乐,或者从网络上获取数据,或者执行一些运算,并把运算结构提供给Activity展示给用户。每个Service都扩展自类Service。与Activity以及其它组件一样,Service同样运行在应用程序进程的主线程中。所以它们不能阻塞其它组件或用户界面,通常需要为这些Service派生一个线程执行耗时的任务。
2.2.3 Broadcast Receiver
Broadcast Receiver不执行任何任务,仅仅是接受并响应广播通知的一类组件。大部分广播通知是由系统产生的,例如改变时区,电池电量低,用户选择了一幅图片或者用户改变了语言首选项。应用程序同样也可以发送广播通知,例如通知其他应用程序某些数据已经被下载到设备上可以使用。
2.2.4 ContentProvider
应用程序可以通过ContentProvider访问其它应用程序的一些私有数据,这是Android提供的一种标准的共享数据的机制。共享的数据可以是存储在文件系统中、SQLite3数据库中或其它的一些媒体中。ContentProvider扩展自ContentProvider类,通过实现此类的一组标准的接口可以使其它应用程序存取由它控制的数据。然而应用程序并不会直接调用ContentProvider中的方法,而是通过类ContentResolver。ContentResolver能够与任何一个ContentProvider通信,它与ContentProvider合作管理进程间的通信。
2.3 SQLite技术
SQLite是一款轻型的数据库,是遵守ACID的关联式数据库管理系统,它是为了嵌入式而设计的的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。它能够支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如TCL、C#、PHP、Java等,还有ODBC接口,同样比起MySQL、PostgreSQL这两款开源世界著名的数据库管理系统来讲,它的处理速度比他们都快。SQLite第一个Alpha版本诞生于2000年5月。至今已经有10个年头,SQLite也迎来了一个版本SQLite3已经发布。
Android和很多设备中都使用了SQLite3这样一个版本来进行数据的保存。它的语句很多都是基本的SQL语句,很容易上手。而在Android中可以使用ContentProvider进行数据库的操作,使得就算开发人员并不会SQL语句也能进行一定的操作。而Google官方对于ContentProvider的解释,又不仅是一个便于应用层开发者的封装类,有时更加是提供了一种方便、安全的数据库操作。例如Android中多数是使用Cursor这一链表形式来保存数据库查询出来的信息,管理Cursor就显得十分必要,在Framework层,Android已经提供好了许多可以直接调用的接口,去完成对数据库的操作。 基于Android系统的图片浏览器开发与设计(3):http://www.youerw.com/jisuanji/lunwen_2596.html