基于安卓的聊天App的设计与实现毕业论文(5)
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字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [实用模板]第八章:法国“新浪潮”与“左岸派”
- [实用模板]2021年北京上半年临床医学检验技师生物
- [实用模板]SAP GUI 7.10客户端安装配置文档
- [实用模板]2001年临床执业医师资格考试综合笔试试
- [实用模板]36机场工作实用英语词汇总结
- [实用模板](一)社会保险稽核通知书
- [实用模板]安全教育主题班会材料
- [实用模板]濉溪县春季呼吸道传染病防控应急演练方
- [实用模板]长沙房地产市场周报(1.30-2.3)
- [实用模板]六年级数学上册典中点 - 图文
- [实用模板]C程序设计(红皮书)习题官方参考答案
- [实用模板]中国证监会第一届创业板发行审核委员会
- [实用模板]桥梁工程复习题
- [实用模板]2011学而思数学及答案
- [实用模板]初中病句修改专项练习
- [实用模板]监理学习知识1 - 图文
- [实用模板]小机灵杯四年级试题
- [实用模板]国贸专业毕业论文模板
- [实用模板]教育学概论考试练习题-判断题4
- [实用模板]2015届高考英语一轮复习精品资料(译林
- 00Nkmhe_市场营销学工商管理_电子商务_
- 事业单位考试法律常识
- 诚信教育实施方案
- 吉大小天鹅食品安全检测箱方案(高中低
- 房地产销售培训资料
- 高一地理必修1复习提纲
- 新概念英语第二册lesson_1_练习题
- 证券公司内部培训资料
- 小学英语时间介词专项练习
- 新世纪英语专业综合教程(第二版)第1册U
- 【新课标】浙教版最新2018年八年级数学
- 工程建设管理纲要
- 外研版 必修一Module 4 A Social Surve
- Adobe认证考试 AE复习资料
- 基于H.264AVC与AVS标准的帧内预测技术
- 《食品检验机构资质认定管理办法》(质
- ABB变频器培训课件
- (完整版)小学说明文阅读练习题及答案
- 深思洛克(SenseLock) 深思IV,深思4,深
- 弟子规全文带拼音




