软件工程毕业论文android平台的巴士服务系统内容摘要:

程序员可以很方便的开发 android 平台上的应用程序。 其整个系统由应用程序( Application),应用程序框架( Application Framework),应用程序库( Libraries), Android 运行库( Android Runtime), Linux 内核( Linux Kernel)五个部分组成。 Android 操作系统内置了一部分应用程序, 包括电子邮件客户端、 SMS程序、日历、地图、浏览器、 通讯录以及其他的程序, 值得一提的是这些所有的 程序都是用 java 编写的。 我这个软件使用 android 开发平台开发 [3],利用其提供的先进的网络、丰厚的 UI控件,开发出人性化的界面。 [2] 杨丰盛 .Android 应用开发揭秘 [M] 第一版 .北京:机械工业出版社, 2020 年 .7 页 [3] 姚昱旻 ,刘卫国 .Android 的架构与应用开发研究 [J].计算机系统应用 ,2020(11):1101 毕业设计 (论文 ) 7 Dalvik 虚拟机 Dalvik 虚拟机是 Android Runtime 的一个组成部分,之所以要把他拿出 来单独进行研究是因为, Dalvik 虚拟机作为一个 Java 虚拟机,但它和普通的 Java 虚拟机有着一些不同。 Google 的工程师结合传统的 Java 虚拟机,根据 Android 使用的平台一般为移动终端设备这样一个特点重新设计的虚拟机,这个虚拟机在移动终端设备上运行效率上明显比传统的 Java 虚拟机要高许多。 Dalvik 虚拟机对内存的高效使用和在低速的 CPU 上表现出的高性能,确实让人们刮目相看。 Android的上层应用程序虽然是用 Java开发的,但是 Dalvik虚拟机却和传统的 Java虚拟机有着很大的区别,两者是 不兼容的。 首先,众所周知在 Java 中,所有的程序代码会被编译器编译成字节码( .class)文件,然后再打包成 JAR 文件,在执行时 Java 虚拟机就从 JAR 文件中提取出相应的字节码文件来执行。 在 Android 中不再使用字节码文件而是一种 Android 所特有的 DEX( Dalvik EXecutable)文件。 DEX 文件的生成还是需要经过生成字节码文件的这个过程的。 使用 Java 语言编写好的 Android 程序代码,同样是先用 Java 编译器编译成为字节码文件,但是在这之后还需通过 Google 提供的一个 DX工具将编译 好的字节码转换成为DEX文件,然后 Dalvik 虚拟机通过 DEX 文件获得执行的代码。 Google 弃用字节码文件而采用特有的 DEX 文件格式,这表明在 Android 实际运行中DEX文件格式相对于字节码文件格式应该有一些独特的优势。 在 Java 中当一个应用程序定义了多个类后,通过编译则会产生相应数目的 class 字节码文件,在这些字节码文件中则必然会有冗余信息,例如一些相同的类库会冗余等。 而 DEX 文件格式则是把这些class 字节码文件整合到一个 DEX 文件中,使得字节码中的冗余减少了,同时使整体文件的尺寸也减少了。 这样 一来,对于同一个应用程序来说,相对于 Java 的字节码文件Android 的 DEX 文件格式在 I/O 操作中所需要的时间也减少了,同时也减少了查找类所需要的时间。 另外 DEX使用等长的指令,这样的话能够使得 DEX 文件尽量的简洁,从而提高了解析速度。 通过上面的研究可以看出 DEX 文件格式是一种专为 Dalvik 虚拟机设计的压缩格式,该格式的高性能很适合内存和处理器速度有限的平台,从中可以看出Android 是定位于嵌入式平台的一个操作系统。 在这也体现出了 Google 给 Android 所定义的发展以及战略方向,如今移动平台的网络 应用已经成为当前移动终端设备的发展方向,作为网络搜索的龙头大哥, Android 就是其打入该移动平台网络应用的利器。 Android 的进程管理机制 Android 虽然是基于 Linux,但是它却采用了一种有别于 Linux 的一种管理机制。 毕业设计 (论文 ) 8 Linux 在一个进程活动停止后就立刻结束该进程,而 Android 在一个进程活动停止后不会立刻结束该进程,并使该进程常驻内存中。 直到系统资源不够需要更多内存或者当某个结束进程的事件发生时才将该进程结束。 在 Android 中进程被分成了前台进程( foreground)、可见进 程( visible)、次要服务( secondary server)、后台进程( hidden)、内容供应节点( content provider)、空进程( empty)六种。 ⑴前台进程是指一些系统进程和当前屏幕上正在显示的进程。 比如说你打开 Google 地图查找路线,此时 Google 地图就是一个前台进程。 ⑵可见进程则是那些虽然不在前台,但是用户依然可见的进程,如输入法,时钟等,这些进程虽然不是在前台运行的,但是其存在和我们的使用却是密切相关的,如果关闭了这些应用程序将给我们的使用带来非常大的不便⑶次要服务是一些与 系统功能息息相关的服务,如Google 企业套件等。 ⑷后台进程,可以这么说后台进程就是一个前台进程被另一个前台进程替换后,进程没有结束,但是已经不再是前台进程的一个状态。 在实际应用中就是当一个前台进程运行时按 HOME 键后的进程状态⑸内容供应节点是没有程序实体,而是仅仅提供内容给别的程序使用的比如说日历节点⑹空进程是没有任何东西在运行的进程,在一个程序退出后会有一个没有任何数据和代码在运行但是依然驻留在进程空间中的进程,该进程仅仅是作为一个能够提高该程序下次启动速度和记录程序历史记录的进程。 Android 在调 度以上几种进程时使用了一个系统值作为系统对进程的一个评估,当要结束一个进程时该值的数值越大的进程被系统选中并结束的概率越大。 一般的,前台进程的值为 0,这表明前台进程不可能被系统选中并结束。 当进程进入后台以后,系统将会分配一个更高的值给该进程。 相对于 Linux 的最近最早未使用的调度策略, Android在其基础上提供了一套独特的进程管理模块,他能让程序员使用脚本来对内存管理进行定制。 比如当内存小于某个值时可以结束这个系统值大于另外一个值的进程,还可以当内存小某个值时结束上面六类进程中的一类(但顺序必须是空进程, 内容供应节点,后台进程,次要服务,可见进程,最后才是前台进程)。 根据这种特性 该系统值至少由两部分组成,一个是基值,另一个根据 LRU(最近最久未使用)调度算法产生的一个值。 对于以上说的六种进程应该分别有一系统给其赋予的值,其大小顺序应该是空进程大于内容供应节点大于后台进程大于次要服务大于可见进程大于前台进程,而这个系统赋予的值则是基值。 这样就能保证一些这六种进程总是当一种进程被结束完了以后另外一种进程才会被结束,同时只需要根据这个系统值就能轻易做到对内存管理的定制。 应用程序层 应用程序层包括了如名片 管理、 Google maps、浏览器等本地应用程序( native 毕业设计 (论文 ) 9 apps),如 、 MSN、 QuickOffice 等第三方应用程序( third part apps),以及 developer apps。 同样,该层的应用程序也都使用 Java 语言进行开发的。 系统开发环境与数据库选择 系统开发环境 Android 的上层应用程序是用 Java 语言开发的,同时需要基于 Dalvik 虚拟机,所以 Google 公司推荐使用主流的 Java 继承开发环境 Eclipse。 有了 Eclipse 还不够,因为使用 Java 语 言进行开发,应该有由 SUN 公司提供的 Java SDK(其中包含了 JRE: Java Runtime Environment)。 另外, Android 的应用程序开发还是和 Java 开发有一定区别,所以还需有一个 Google 提供的 Android SDK。 有了这三个软件就可以开发 Android 应用程序了。 数据库选择 由于 pc 机的内存小,难以存储像电影,电子书等耗内存的文件,所以本系统没有采用 Android 自带的微型数据库 sqlite,而是直接把数据保存在服务器端的 MySQ 中,需要数据时,比如播放视频,直接通 过服务器拿到视频在服务器上存储的地址,播放视频。 MySQL 是一个开放源码的小型关系型数据库管理系统,开发者为 MySQLAB 公司。 它被广泛地应用在 Inter 上的中小型网站中。 MySQL 具有体积小、速度快、总体拥有成本低。 基于以上的优势,本系统采用 MySQL 数据库。 数据库名为 busdata。 为了使 MySQL便于操作,选用了 SQLyod 来配合使用。 SQLyod 是一款 MySQL 的图形界面程序。 可以很方便的操作、管理 MySQL 数据库。 毕业设计 (论文 ) 10 第 4 章 系统 设计 系统结构图 该系统主要有六个功能模块:播放 器,电子书,服务,收发邮件,游戏,系统设置。 系统的结构图如图 所示。 图 系统结构图 数据库的设计 巴士系统要实现 播放器 , 电子书 , 服务 , 收发邮件,游戏 等功能模块。 据此分析出数据需求。 要实现以上所述功能,系统采用的数据库需具备以下的基本存储信息: (1)电子书种类表: 书的种类 Id、书种类 (2)电子书信息表:书 Id、书的种类 Id、书名、书的地址,书的描述 (3)电影种类表:电影的种类 Id、电影种类 长途巴士服务系统 播放器 电 子书y 游戏娱乐 设置 播放电影 播放音乐 电子书的翻页 实现了球碰砖块 游戏 选择任意的书籍 收 邮件功能 可以点茶,点咖啡 人工服务 发邮件功能 收取邮件 设置亮度 呼叫服务员 设置声音 毕业设计 (论文 ) 11 (4)电影信息表:电影 Id、电影的种 类 Id、电影名、电影的地址,电影的描述。 (5)音乐种类表:音乐的种类 Id、音乐种类 (6)音乐信息表:音乐 Id、音乐的种类 Id、音乐名、音乐的地址,音乐的描述。 (7)游戏种类表:游戏种类 Id,游戏种类 (8)游戏信息表:游戏 Id、游戏种类 Id、游戏名、游戏的描述 数据字典 电子书 种类表 : ( 书的种类 Id, 种类)。 其中书的种类 Id 是主键,电子书种类表如表 所示。 电子书 信息表 : ( 书 Id, 书的种类 Id, 书名 , 书的地址 , 书的描述)。 其中书 Id 是主键,书的种类 Id 是外键,电子书信息表如 表 所示。 电影 种类表 : ( 电影的种类 Id, 种类)。 其中电影的种类 Id是主键,电影种类表如表。 电影信息表 : ( 电影 Id, 电影的种类 Id, 电影 , 电影的地址 , 电影的描述)。 其中电影 Id是主键,电影的种类 Id是外键,电影信息表如 表。 音乐 种类表 : ( 音乐的种类 Id, 种类)。 其中音乐的种类 Id是主键,音乐种类表如表。 音乐 信息表 : ( 音乐 Id, 音乐的种类 Id, 音乐 名 , 音乐 的地址 , 音乐 的描述)。 其中 音乐 Id 是主键,音乐的种类 Id 是外键, 音乐 信息表如 表。 游戏 种类表 : ( 游戏的种类 Id, 种类)。 其中游戏的种类 Id是主键,游戏种类表如表。 游戏 信息表 : ( 游戏 Id, 游戏的种类 Id, 游戏 名 , 游戏 的描述)。 其中 游戏 Id是主键,游戏的种类 Id 是外键, 游戏 信息表如 表。 表 电子书种类表 字段名称 字段说明 类型 位数 属性 ebookid 书的种类 Id Number 10 主键 EbookCatalog 书的种类 Varchar 50 毕业设计 (论文 ) 12 表 电子书信息表 字段名称 字段说明 类型 位数 属性 Id 书的编号 Number 10 主键 EbookCatalog 书的种类 Id Number 10 非空 EbookFile 书名 Varchar 50 EbookUrl 书的 url 地址 Varchar 50 EbookDesc 书的描述 Varchar 50 表 电影种类表 字段名称 字段说明 类型 位数 属性 id 电影的种类 Id Number 10 主键 MovieCatalog 电影的种类 Varchar 50 表 4. 4 电影信息表 字段 名称 字段说明 类型 位数 属性 Id 电影 的编号 Number 10 主键 movieCatalog 电影的种类 Id Number 10 非空。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。