基于android的wifi文件传输系统的设计与实现内容摘要:

任务个数有限制。 系统界面的加载:由于应用中涉及到应用图标,图片、电影、音乐等文件的缩略图的获取及显示,为了提升系统的流畅度,系统应采用图片等耗时资源的异步加载技术。 西南科技大学本科生毕业论文 7 第 3章 系统概要设计 应用模块划分及 模块功能介绍 根据需求分析,可以划分出 5 个模块: 1) 传输记录管理模块 2) 数据库操作模块 3) 设备连接管理模块 4) 文件 /数据传输模块 5) 文件管理模块。 每个模块都具有独立的完整的功能,模块之间又具有一定的的联系,所有的模块中,文件的传输模块是核心,它与其他的几个模块都存在之间或者间接的关系。 模块之间的关系如图 31 所示: 图 31 系统各模块关系图 各个模块又包含了许多具体的功能: 1) 传输模块记录:记录的管理。 2) 数据库操作模块:保存记 录到数据库,读取数据库中的记录,更新数据库中的记录。 西南科技大学本科生毕业论文 8 3) 设备连接管理模块:搜索设备,连接设备,断开设备连接,修改本机名。 4) 文件 /数据传输模块:发送文件 /数据,接收文件 /数据,从对方设备下载文件,自定义文件发送个数。 5) 文件管理模块:选择要发送的文件,移除要发送的文件,浏览本机文件 ,浏览对方设备文件目录(需先连接设备)打开文件,查看文件属性。 如果不区分模块,而只看功能,系统功能结构图如图 32 所示: 图 32 应用功能结构图 应用的数据存储 中介软件是 android 操作系统应用程序的桥梁,主要分为函数和虚拟机。 函数就是 AndoridSDK 中的一系列接口,应用开发会经常用到这些接口方法。 Android 的数据存储采用 sqlite 数据库系统和 文件存储 ,用户可以用ContentProvider 类获取数据 [3]。 android 中数据存储技术主要有:文件存储、Sharedpreference、 sqlite、 ContentProvider 和网络存储,在本软件中主要使用到了文件存储和 Sharedpreference 和 sqlite 存储。 文件存储是以流的形式读 写文件,可以以文格的格式,也可以以二进制的形式,在 java 语言中要使用流,则写入文件的对象必须进行序列化, sqlite 是嵌入式移动设备中常用的轻量级数据库 [4]。 因为程序运行时,保存在内存中的数据是暂存的,当应用程序退出后,保存这些数据的内存会被系统回收,清除,所以,需要把一些中要的数据输出到文件,或者保存到数据库,或网络 [5]。 西南科技大学本科生毕业论文 9 数据库设计 Android数据库介绍 Android 使用开源的、与操作系统无关的数据库 — SQLite[6]。 其优点如下: 轻量级: SQLite 和 C\S 模式的 数据库软件不同,它是进程内的数据库引擎,因此不存在数据库的客户端和服务器。 使用 SQLite 一般只需要带上它的一个动态库,就可以享受它的全部功能。 而且那个动态库的尺寸也相当小。 独立性: SQLite 数据库的核心引擎本身不依赖第三方软件,使用它也不需要“安装”,所以在使用的时候能够省去不少麻烦。 隔离性: SQLite 数据库中的所有信息(比如表、视图、触发器)都包含在一个文件内,方便管理和维护。 跨平台: SQLite 数据库支持大部分操作系统,除了在电脑上使用的操作系统之外,很多手机操作系统同样可以运行,比如 Android、 Windows Mobile、Symbian、 Palm 等。 多语言接口: SQLite 数据库支持很多语言编程接口,比如 C\C++、 Java、Python、 dotNet、 Ruby、 Perl 等,得到更多开发者的喜爱。 安全性: SQLite 数据库通过数据库级上的独占性和共享锁来实现独立事务处理。 这意味着多个进程可以在同一时间从同一数据库读取数据,但只有一个可以写入数据。 在某个进程或线程向数据库执行写操作之前,必须获得独占锁定。 在发出独占锁定后,其他的读或写操作将不会再发生。 命 名规则: 表名:应用名 _表记录的内容名(如传输记录表名: wifi_direct_records) 字段名:字段意义的英文 _(如名字: name_) 本系统只需要建一张表即可,来保存传输记录,每一行就是一条记录。 Records 记录表字段结构如图 33 所示。 图 33 Records 表结构 西南科技大学本科生毕业论文 10 各个字段的含义如表 31 所示: 表 31 Records 表字段含义 字段名 id_ name_ path_ length_ state_ transfer_lenght_ transfer_mac_ 字段类型 Int string string string string string string 字段意思 记录id 文件名 文件路径 文件长度 传输的状态 已传长度 对方设备的地址 由于只有一张表,所以数据库的设计比较简单。 Android 开发相关技术介绍 Android的发展历史 Android 系统最开始是由 2020 在美洲加州成立的一家公司所开发, 2020 年,google 发现了这款操作系统并且预估其前景极好顾收购注资了该公司,并且加速了 Android 系统的研发。 2020 年 9 月 23 日, google 官方发布了。 但是 的系统还不支持触摸操作。 2020 年 4 月 30 日, 发布,并且创新型的支持了 CDMA 制式的网络,也就是说可以支持中国电信了。 在 版本发布之后不久, google 发布了 ,这个版本后来被视为 Android 系统发展史上的里程碑。 2020 年, 发布。 同年, 发布,最大的优点就是支持 NFC(近场通讯协议,是发展快捷支付消费的方向)。 2020 年 发布,开启了 系统的神话级的飞跃, Android 系统的使用量急剧增长。 现如今,很多老一点的手机都是基于 的系统。 2020 年, 发布,代号 L,改变了 Android 系统的 UI 风格,新增了许多炫酷的动画效果,启用了老式的 DALVIK 虚拟器而采用 ART 虚拟机,系统流畅度明显提升。 2020 年, google 继续发力,将 Android 的版本提升到了 ,系统原生支持指纹功能,虽然其他的一些基于 的第三方系统(如小米 MIUI,魅族 FLYME等)也支持指纹识别,但是其接口不统一,第三方 APP 无 法一次开发而在所以的系统中使用指纹功能,而需要针对不同的系统做适配,很麻烦,而在 系统中同意了 API 接口,第三方应用就可以很好的一次开发而在不同的定制系统中使用指纹功能,这是个很大的改进。 正式版目前尚未发布,但是由于 虽然已经发布一年了,但是现在的手机升级到 系统的只有少部分,西南科技大学本科生毕业论文 11 原因是那些手机的 OEM 厂商没有做相应的升级适配,鉴于这种情况, google 据说会从 开始逐渐收回系统的升级权限,即由 google 官方直接推送升级,而不在由 OEM 厂商来升级 了,这对于广大的 Android 智能手机用户来说是个好消息,以后就不用苦苦等手机厂商来升级了 [7]。 Android系统结构介绍 Android 是基于 Linux 操作系统的一款开源的移动操作系统,也可以说Andorid 就是 Linux 上的一个较为复杂的应用程序。 Android 主要应用与只能手机与平板行业,市场份额高,是全球最大的手机操作系统。 Android 系统现在发布的版本稳定版本是 ,代号为 M。 代号为 N 的 也在开发中。 原生加入了应用的权限管理,加入了指纹模块并提 供给开发者相应的 api,加入了新的省电模式有效的增加了手机的续航时间等等,相信 会加入更多令人激动的新功能。 Android 系统可以分为 4 层,如图 35 所示,由上到下分别是应用层,应用框架层,底层的库, Linux 内核。 应用层很简单,就是所有的 Android 应用。 应用框架层主要是给上层的应用封装一些 API,供其使用。 底层的一些库就是系统的一些必须的库了,包括动态连接库等等。 Linux 内核主要是集成了一些算法来管理硬件,包含了很多相关的算法,如磁盘调度算法等等 [8]。 图 35 Android 系统结构分 层图 西南科技大学本科生毕业论文 12 Android 系统中由虚拟机来解释执行应用程序,而且每隔应用都由一个单独的虚拟机来执行,且每个应用对应底层 Linux 系统中的一个进程。 这是 Android进程间安全的一种机制。 Android 的虚拟机称为 Dalvik,但从 开始,google 官方推出了新的虚拟机 Art,在 系统上,用户可以选择使用哪个虚拟机来执行应用程序,但是 系统开始, Android 系统彻底放弃了 Dalvik 虚拟而选择了 Art 虚拟机 [8]。 原因是 Art 具有如下的优点: 1) 应用启动速度变快,体验更流程,触 感反馈及时。 2) 更长的电池续航能力。 3) 支持更低的硬件。 4) 系统性能显著提升。 尽管 ART 虚拟机有一些有点,但是还是有一些缺点。 学过 java 的人知道,java 语言编译出来的是 .class 类型的中间码,而 Android 对其优化为 .dex 格式的中间码,这也是为什么 Android 需要虚拟机的原因,因为这些中间码必须专门的程序来翻译执行。 但 ART 虚拟机与 DALVIK 虚拟机不同的是, ART 虚拟机在应用安装的时候会将应用的那些中间码翻译为机器码并保存,而 DALVIK 则是边翻译边执行。 所以 ART 相对与 DALVIK 启动应用程序的速度更快,运行应用程序更加流畅,但是安装时间也会更长,也更加暂用存贮空间。 Android四大组件 Android 的 四 大 组 建 包 括 : Activity , Service, BraodcastRecevier ,ContentProvider。 Activity:通俗的将就是应用程序的界面,在 Activity 上面可以任意的摆放一些控件来达到想要的 UI 效果。 在 MVC 编程思想中充当 VIEW 和 CONTORLER的角色 [9]。 Activity 的生命周期如图 36 所示 : 在实际应用开发时,在 Activity 的几个重要生命周期函数里面做一 些必要的操作。 例如,在 onCreate()方法里面,通常会根据布局的 xml 文件来生成布局,在 onPause()中,经常会做一些暂停工作,如游戏开发中,会在 onPause()方法中来暂停游戏。 又如 onDestory()方法在 Activity 销毁的时候调用,可以在这里做一些保存的工作。 Service:即服务,在后台默默的工作,没有界面不可见,如后台音乐播放等一般就是使用的 Service。 Activity 与 Service 可以有不同的关系,如果 Activity直接启动的 Servcie,那么当这个 Activity 结束是,刚才启动的 Service 也会结束,西南科技大学本科生毕业论文 13 但是如果 Activity 以绑定的方式启动 Service,那么在 Activity 结束后, Servcie并不会对应结束 [10]。 图 36 Activity 生命周期 BraodcastRecevier:广播接收器,用于接收广播,这是 Android 系统进程间通信的方法之一。 广播分为系统广播和自定义广播,系统广播是系统发送的一些重要广播,如开机完成,电池电量改变等等一些系统活动都会发送广播。 当然用户在应用程序也可以自定义发送一 些 广 播 , 然 后 在另 外 的 地 方 一 用BraodcastRecevier 来接收。 ContentProvider:这是应用程序间共享数据的有效途径。 Android 系统中的应用程序都运行在单独的虚拟机中,对应底层 Linux 系统中的一个单独进程,也西南科技大学本科生毕业论文 14 就是说应用程序之间的数据是相互分开的,这也是 Android 系统中进程间安全的机制。 但是,应用程序有时候就是想把数据给别的应用看,如系统中的联系人,就会把所有的联系人信息利用 ContentProvider 提供给其他应用程序,对应的,自己的应用程序也可以利用 ContentProvider 来读取手机上保存的联系人信息。 ContentProvider 的使用方法和数据库的读取方式是类似的。 西南科技大学本科生毕业论文 15 第 4章 系统详细设计及实现 开发工具和软件平台 开发工具: Android Studio, Android 的 SDK 管理器 软件运行平台: 及以上 传输记录模块 这个模块主要是负责管理文件传输的记录,包括新增记录,修改记录,保存记录到数据库,从数据读取等一些记录的基本操作。 与数据库模块联系非常紧密。 程序中主要的文件: 1) ../src/provider/ 2) ../sr。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。