教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 实用模板 >

基于安卓的聊天App的设计与实现毕业论文(5)

来源:网络收集 时间:2026-08-23
导读: Android的中间层多以Java 实现,并且采用特殊的Dalvik 虚拟机(Dalvik Virtual Machine)。Dalvik虚拟机是一种“暂存器型态”(Register Based)的Java虚拟机,变量皆存放于暂存器中,虚拟机的指令相对减少。 Dalvi

Android的中间层多以Java 实现,并且采用特殊的Dalvik 虚拟机(Dalvik Virtual Machine)。Dalvik虚拟机是一种“暂存器型态”(Register Based)的Java虚拟机,变量皆存放于暂存器中,虚拟机的指令相对减少。

Dalvik虚拟机可以有多个实例(instance), 每个Android应用程序都用一个自属的Dalvik虚拟机来运行,让系统在运行程序时可达到优化。Dalvik 虚拟机并非运行Java字节码(Bytecode),而是运行一种称为.dex格式的文件。

安全权限机制:Android本身是一个权限分立的操作系统。系统更多的安全功能通过权限机制提供。Android安全架构的核心设计思想是,在默认设置下,所有应用都没有权限对其他应用、系统或用户进行较大影响的操作。安装应用时,在检查程序签名提及的权限,且经过用户确认后,软件包安装器会给予应用权限。

- 5 -

姚旭斌:安卓聊天室App的设计与实现

2.2 Android的架构

Android的系统架构采用了分层架构的思想,如图1所示。从上层到底层共包括四层,分别是应用程序层,应用程序框架层,系统库和运行时,Linux内核。

图2- 1 分层架构图

应用程序层:在这层中,系统提供了一些基础的核心应用包,如短信、联系人管理、电子邮件、日历、系统设置、浏览器等。同事,开发者可以利用Java语言编写属于自己的应用程序,这些程序与核心应用程序是平等的。

应用程序框架层:该层作为应用程序开发的基础,在绝大多数情况下,开发人员都在与她打交道。应用程序框架层包括活动管理器、窗口管理器、内容提供者、视图系统、包管理器、电话管理器、资源管理器、位置管理器、通知管理器和XMPP服务十个部分。在Android平台上,开发人员可以完全访问核心应用程序所使用的API框架。并且,任何一个应用程序都可以发布自身的功能模块,而其他应用程序则可以使用这些已发布的功能模块。基于这样的重用机制,用户就可以方便地替换平台本身的各种应用程序组件。

系统库和Android运行时:系统库包括九个子系统,分别是图层管理、媒体库、SQ-Lite、OpenGLEState、FreeType、WebKit、SGL、SSL和libc。Android运行时包括核心库和Dalvik虚拟机,前者既兼容了大多数Java语言所需要调用的功能函数,又包括了Andr-oid的核心库,比如android.os、android.net、android.media等等。后者是一种基于寄存器的java虚拟机,Dalvik虚拟机主要是完成对生命周期的管理、堆栈的管理、线程的管理、安全和异常的管理以及垃圾回收等重要功能。

Linux内核:目前市场上广泛流行的Android版本中,以Linux3.8为服务核心的Andr-oid 5.0系统大幅度提高了RAM的读取速度和多任务处理能力,拥有良好的用户体验。

- 6 -

安徽工程大学毕业设计(论文)

2.3 Android的工作机制

一个Android程序由四大组件组成,它们分别是“Activity”,“Service”,“Content P-rovider”和“BroadCast Receiver”。但并不是每一个应用程序都包含这四个组件,在应用程序中使用这些组件时,必须先在AndroidMainfest.xml中进行配置。Android的应用构成和工作流程图如下:

图2-2 工作流程图

2.3.1 Activity

Activity是用户接口程序,几乎所有的Activity都要和用户打交道,原则上它会提供给用户一个交互式的接口功能。Activity自身是没有界面的,所以它会创建一个窗口,通过setContentView(View)接口来加载UI界面。Activity可以全屏显示,也可以通过更改主题使得其窗口化。Activity一共有七大生命周期:

图2-3 Activity的生命周期

- 7 -

姚旭斌:安卓聊天室App的设计与实现

(1)Activity生命周期

由图2-3可知,一个Activity正常启动过程中,调用的方法为onCreate() -> onStart() -> onResum();在Activity被Kill的时候调用的方法为onPause() -> onStop() -> onDesto-ry();这是一个完整的生命周期。

onCreate():在此方法中创建界面,做一些初始化操作。 onStart():变成“用户可见不可交互”状态。 onResume():变成“和用户可交互”状态。 onPause():变成“用户可见不可交互”状态。 onStop():不可见,被下一个Activity所覆盖。

onDestory():Activity被Kill前调用的最后一个方法。 (2)Activity之间的通信

在Android中一个进程中可能会运行多个不同的Activity实例,也可能在不同的进程中运行不同的Activity实例,所以,我们需要一些特别的机制来实现多个Activity之间传递消息,为此引入了Intent机制。

Intent负责对操作的动作、动作涉及数据、附加数据进行描述,Android则根据此Int-ent的描述,负责找到对应的组件,将 Intent传递给调用的组件,并完成组件的调用。因此,Intent在这里起着一个媒体中介的作用,专门提供组件互相调用的相关信息,实现调用者与被调用者之间的解耦。

在应用中,我们可以以两种形式来使用它:

直接Intent:指定了component属性的Intent(调用setComponent(ComponentName)或者setClass(Context, Class)来指定)。通过指定具体的组件类,通知应用启动对应的组件。

间接Intent:没有指定comonent属性的Intent。这些Intent需要包含足够的信息,这样系统才能根据这些信息,在在所有的可用组件中,确定满足此Intent的组件。

2.3.2 Service

android中Service是运行在后台的东西,级别与activity差不多。既然说service是运行在后台的服务,那么它就是不可见的,没有界面的东西。你可以启动一个服务Ser-vice来播放音乐,或者记录你地理信息位置的改变,或者启动一个服务来运行并一直监听某种动作。

Service和其他组件一样,都是运行在主线程中,因此不能用它来做耗时的请求或者动作。你可以在服务中开一个线程,在线程中做耗时动作。

服务一般分为两种:

本地服务:Local Service 用于应用程序内部。在Service可以调用Context.startSer-vice()启动,调用Context.stopService()结束。在内部可以调用Service.stopSelf() 或 Servi-ce.stopSelfResult()来自己停止。无论调用了多少次startService(),都只需调用一次stop-Service()来停止。

远程服务: Remote Service 用于android系统内部的应用程序之间。可以定义接口并把接口暴露出来,以便其他应用进行操作。客户端建立到服务对象的连接,并通过那个连接来调用服务。调用Context.bindService()方法建立连接,并启动,以调用 Context.

- 8 -

安徽工程大学毕业设计(论文)

unbindService()关闭连接。多个客户端可以绑定至同一个服务。如果服务此时还没有加载,bindService()会先加载它。 2.3.3 Content Provider

当应用继承ContentProvider类,并重写该类用于提供数据和存储数据的方法,就可以向其他应用共享其数据。虽然使用其他方法也可以对外共享数据,但数据访问方式会因数据存储的方式而不同,如:采用文件方式对外共享数据,需要进行文件操作读写数据;采用sharedpreferences共享数据,需要使用sharedpreferences API读写数据。而使用C-ontentProvider共享数据的好处是统一了数据访问方式。 2.3.4 Broadcast Receiver

广播接收器是一个专注于接收广播通知信息,并做出对应处理的组件。很多广播是源自于系统代码的──比如,通知时区改变、电池电量低、拍摄了一张照片或者用户改变了语言选 …… 此处隐藏:2383字,全部文档内容请下载后查看。喜欢就下载吧 ……

基于安卓的聊天App的设计与实现毕业论文(5).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/519401.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)