android手机通讯_录的设计与实现_本科毕业论文(编辑修改稿)内容摘要:

支援各种先进的网络、绘图、 3D 处理能力,可以用来提供更好的使用者体验。 Android它的开放性就优于其它 封闭式的手机系统,因此,任何人都可能根据自己的喜好将手机系统中的所有功能重新编写。 这使得越来越多的人关注这个操作系统 [9]。 Android软件平台主要由五部分构成 , 它们分别是 :关键应用程序、应用程序框架和组件、 C /C ++函数库、 Java程序运行环境、优化了的 Linux内核。 关键应用程序: Android 平台内包含一些关键应用程序 , 如邮件收发客户端程序、短信收发程序、日历、网页浏览器等 , 而更多有特色的 Android应用程序还有待于广大开发者共同参与开发。 应用程序框架及组件: Android 应用程序开发 基于框架和组件。 Android 本身已在其框架中提供了许多组件供应用程序调用 , 开发者也可在开发应用程序时顺带开发新的组件 , 并将该组件放入应用程序框架中 , 以供自己和其它应用程序调用 [10]。 C/C++函数库: Android应用程序框架之下是一套 C/C ++函数库 , 它们服务于 Android应用程序组件 , 其功能通过组件间接提供给开发者。 这些函数库包括 : 标准 C 函数库、媒体功能库、浏览器引擎、 2D和 3D图形库等 [11]。 Java程序运行环境: Android的 Java程序运行环境包含一组 Java核心函数库及 Dalvik 虚拟机 ,它们有效地优化了 Java程序的运行过程。 Linux内核: Android系统平台基于优化了的 Linux内核 , 它提供诸如内存管理、进程管理、设备驱动等服务 , 同时也是手机软硬件的连接层。 Android 应用程序以各种组件 (API)为基础 , API 是 Android 软件平台的重要组成部分 , 也是开发 Android应用的关键所在 [12]。 当前活动程序 Activity:作为最常用的应用程序组件 , 几乎所有 Activity都会通过创建 U I窗口与用户进行交流。 Activity具有生命周期 , 它包含运行、暂停、停止 等几个状态 , 状态间的转换可通过调用 onCreate()、 onStart()、 onRestart()、 onResume()、 onFreeze()、 onPause()、 onStop ()、 onDestory()等方法来实现。 要开启新的 activity, 可以调用 startActivity(Intent), 或调用startSubActivity(Intent, int), 后者通常和 onActivityResult(int, int, String, Bundle)联合使用 , 以从一个 activity获取某结果并返回给打开 它的 activity[13]。 图像显示 View: View是最基本的 UI 构件 , 它在屏幕中占据一个矩形区域可用来显示文本、图滁州 学院毕业论文 6 像等内容 , 还可完成图像事件处理。 常用的 View方法有 :inflate() (由 XML 文件生成 View)、 onDraw (Canvas)(对 View进行填充 ) 、 onMeasure (int, int)(测量 View的高度和宽度 ) 、 onLayout() (完成 View 的布局 ) 、 onKeyDown(int, KeyEvent)(View 中有按键操作时被调用 ) 、 onFocusChanged (boolean, int)(当 View得到或失去关注时被调用 )、 setOnClilckListener()(设置 View点击事件监听器 )。 View也包含一些子类 , 如 : TextView(布局文件中的文本显示 )、 EditText(布局文件中的文本编辑 )、 Button(按钮 )、 ListView(显示列表 )。 事件 Intent: Intent抽象描述了想要执行的某种操作 , 它与 startActivity一起使用可以开启新的 activity, 与 startService 一起使用可以开启后台服务。 Intent 最重要的作用还是加载activity, 它是不同 activity 间的桥梁。 Intent 也可以被认为是一种概括操作行为的数据结构 ,它主要包括 action (动作 )和 data(数据 )两部分 , 此外它还具有一些附加属性如 category(intent种类 )、 type (数据类型 )等。 常用的 Intent方法有 intent() (构造 intent)、 addcategory() (添加 intent类型 )、 getAction()(获取 intent动作 )、 getData()(获取 intent数据 )等。 数据存取与共享机制 ContentProvider: ContentProvider为应用程序提供一些访问方法 , 包括 : Query(Uri, String [ ] , String, String[ ] , String, String, String)(数据信息的查询 ) ,insert (Uri, Contentvalues) (在 Contentp rovider 中添加新数据 ) , updata(Uri, Contentvalues, String, String[ ])(更新 Conntp rovider中的数据 ), delect(Uri, String,String[ ])(删除数据 ) , Gettype (Uri)(获取数据类型 )。 其中 , Uri标明了 ContentProvider存储的数据类型 , 在执行访问方法时都需依据 Uri作为路径标识来确定要访问哪个 ContentProvider。 后台服务 Service: Service是运行在后台的应用程序组件 , 不直接与用户交互。 当前活动程序可以使用 Context. StartService()开启一项后台服务 , 还可以通过 Context. bindService()与后台服务通信 [14]。 Android 架构 Android的架构是 Linux内核、 C/C++函数库、 Dalvik虚拟机、应用框架以及关键应用程序构成的,如图 21。 通过编译基于框架的应用程序可以降低开发负荷。 应用软件原则上是在 Dalvik VM上运行的 [15]。 滁州 学院毕业论文 7 图 21 Android 架构图 关键应用程序 Android 平台内包含一些关键应用程序,如邮件收发客户端程序、短信收发程序、日 历和网页浏览器等,开发者可以在其平台上开发更多有特色的应用程序 ,所用开发语言是 Java。 应用 程序框架 Android应用程序的开发基于框架和组件。 Android本身已在其框架中提高了许多的组件供应用程序调用,当然开发者也开放新的组件,并将组件放入应用程序框架中,以供自己和其它应用程序调用。 C/C++函数库 Android应用程序框架之下是一套 C/C++函数库,它们服务于 Android应用程序组件,其功能通过组件间接提供给开发者。 这些函数库包括:标准 C 函数库、媒体功能库、浏览器引擎、 2D 和 3D图形库、基于 WEB 应用的的安全协议 SSL、用于点阵和矢量字体渲染的 FreeType 以及 SQLite 引擎等。 Java 程序运行环境 Android的 Java程序运行环境包含一组 Java核心函数库及 Dalvik虚拟机,它们有效地优化了Java 程序的运行过程。 所有的 Android 应用都运行在它自己的进程里,该进程是一个 Dalvik 虚拟机的实例, Dalvik被设计成能在一台设备上高效的运行多个虚拟机实例。 Dalvik虚拟机的可执行文件被封装成 Dalvik可执行格式 (.dex)。 这是被优化过的最小内存依赖的格式。 Java编译器 (dx工具 )将注册了的和运行时用到的类编译成 .dex格式。 Dalvik虚 拟机依赖于底层 Linux内核提供的功能,滁州 学院毕业论文 8 如线程机制,和内存管理机制等。 Linux 内核 Android 系统平台是基于优化了的 Linux 内核,是其系统平台的核心。 它提供诸如内存管理、进程管理、设备驱动等服务,同时也是手机软硬件的连接层,提供了一个屏蔽层用于屏蔽硬件和上层软件 [16]。 Android 应用的构成和工作机制 对于一个 Android 应用程序来说,是由 Activity、 Intent Receiver 、 Service、 Content Provider四部分组成,但并不是每一个 Android应用程序都必须由这四部分组成。 在应用程序中使用时,需要在配置文件 AndroidMainfest. xml中进行配置。 这个配置文件是每个 Android应用程序所必需的,用于定义应用程序的组件、组件的功能以及必要条件等。 Activity Activity是构成应用程序中最重要的构造块, 在 Android应用程序中,几乎都是通过 Activity来与用户进行交互,所以 Activity主要负责的就是创建与用户进行交互的显示窗口,你可以在这些窗口里通过调用 setContentView(View)方 法来显示你自己的用户界面。 活动生命周期 活动 (Activity)在系统中以活动栈的形式进行管理。 当一个新的活动启动后,被放到了栈顶,成为了运行活动,而新活动之前的活动在活动栈里总位于新活动之下,直到新的活动退出才重新回到前台 [13]。 从图 22可以看出, Activity有三个关键的循环: (1)活动的整个生命期:从首次调用 onCreate(Bundle)开始,到最终调用 onDestroyO结束。 在onCreate()中进行所有初始化,在 onDestroyO时进行清理工作,释放资源。 (2)活动的可见生命 期:从调用 onStart()开始,到 onStop()被调用为止。 在这段时间内,即使活动不与用户进行交 互,用户也可以在屏幕上看到它。 在这两个方法调用之间,可以维护活动显示给用户的资源。 onStart()和 onStop()方法可以多次调用,因为活动随时可以在可见和隐藏之间进行转换。 (3)活动的后台生命期:从调用 onResume()开始,到 onPause()被调用为止。 在这段时间内活动处于其它所有活动之前,并与用户进行交互。 一个活动可以不断在 resumed状态和 paused状态之间变换。 活动之间的切换 Android使用了 Intent类来实现活动之间的切换工作。 Intent负责对应用中一次操作的动作、动作涉及的数据和附加数据进行描述。 根据 Intent 的描述,负责找到对应的组件,将 Intent传递给调用的组件并完成组件的调用。 因此, Intent起着一种媒体中介的作用,专门提供组件互相调用的相关信息,实现调用者与被调用者之间的解耦。 在应用中,我们可以以两种形式来使用 Intent:直接 Intent,指定了 ponent属性的 Intent,通过指定具体的组件类,通知应用启动对应的组件。 滁州 学院毕业论文 9 间接 Intent,没有指定 ponent属性的 Intent,则需要包含足够的信息,这样系统才能根据这些信息,在所有的可用组件中,确定满足此 Intent的组件。 A c t i v i t y S t a r t so n C r e a t e ( )o n S t a r t ( )N e w A c t i v i t y i s s t a r t e do n R e s u m e ( )A c t i v i t y i s r u n n i n go n S t o p ( )Y o u r A c t i v i t y i s n o l o n g v i s i b l eo n P a u s e ( )o n D e s t r o y ( )A c t i v i t y i s s h u t d o w nU s e r n a v i g a t e s b a c k t o y o u r A c t i v i t yP r o c e s s i s k i l l e dO t h e r a p p l i c a t i o n n e e d m e m o r yO n R e s t a r t ( )Y o u r A c t i v i t y c o m e s t o t h e f o r e g r o u n dY o u r A c t i v i t y c o m e s t o t h e f o r e g r o u n d 图 22 Activity 状态变换路径图 Intent Receiver Intent Receiver是用于对外部事件的响应,当外部事件发生时,会使用 Notification Manager通知用户。 当一个 Intent Receiver 被触发时,系统会在需要的时候启动对应的应用程序。 如在本系统中,当用户 正在其它界面进行操作时,有好友发送消息过来,就会以通知的形式发送到当前界面的正上方。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。