毕业设计基于Android的家校互动平台开发(内含完整代码和所有文档)——爱吖校推(你关注的,我们才推)南尘

内容摘要:学校教育与家庭教育的不一致,容易产生教育断层的局面,而现有的校讯通等家校互动平台,又存在教师与家长单向沟通等方面的问题。如今信息技术的飞速发展为家校共育的健康发展提供了强有力的保障,“互联网+”已成趋势。学校和教师要一改过去传统的沟通交流方式,借用互联网与手机短信相结合的家校互动信息平台,扩展沟通交流渠道,架起家校沟通的桥梁,从而让家校教育形成合力,提高教育的时效性,促进学生健康成长。因此,本文就目前“互联网+教育”的新趋势进行了说明,以明确进行研究的目的。随后,将对本平台实现的过程和原理进行一一探讨,以让读者能了解实现其的具体方法。最后,为了实现这个软件平台,本文对这个软件作了系统分析和系统设计,最终实现了该软件。通过测试,该平台能正常运行在Android系统下的智能设备,也验证了本文所探讨的设计正确性和重要性。

关键词:互联网、家校互动、家校协作、功能应用

DevelopmentofhomeschoolcontactplatformbasedonAndroid

目录

1概述.1

1.1研究背景和意义.1

1.2国内现状.1

1.3论文的思路和结构.2

2研究方案和架构概述.3

2.2软件开发设计方案.3

2.3本课题的设计目标.3

2.4架构概述.4

3需求分析.5

3.1软硬件需求.5

3.2功能需求.5

3.3用户需求.6

3.4用例图.6

3.4.2班圈板块.7

3.4.3消息板块.8

3.4.4发现板块.9

3.4.5我的板块.10

3.5用例说明.10

3.5.2UC2用户注册.11

3.5.3UC3找回密码.12

3.5.4UC4发布信息.12

3.5.5UC5查看所有信息.13

3.5.6UC6查看信息详情.14

3.5.8UC8查看联系人和会话.15

3.5.9UC9聊天.15

3.5.10UC10音视频通话.16

3.5.11UC11修改个人信息.16

3.5.12UC12修改孩子信息.17

4概要设计.19

4.1系统功能总体设计图.19

4.1.1Android端功能总体设计图.19

4.1.2服务器端功能总体设计图.20

4.2数据库E-R图设计.21

4.3系统类图.22

4.3.2APP端主页板块.22

4.3.3APP端班圈板块.23

4.3.4APP端发布板块.24

4.3.5APP端消息板块.25

4.3.6APP端发现板块.25

4.3.7APP端我的板块.26

4.4界面设计.26

5详细设计.33

5.1数据库详细设计文档.33

5.1.1用户表设计(aiya_user).33

5.1.2班级信息表设计(aiya_class).33

5.1.3主贴表设计(aiya_main).34

5.1.5点赞表设计(aiya_praise).35

5.1.6主贴图片表设计(aiya_pic).35

5.2CS协议通信文档.35

5.2.1用户系统.35

5.2.2信息系统.37

5.3时序图.38

5.3.2发布时序图.39

5.3.3圈子信息时序图.40

5.3.4聊天时序图.41

6系统实现.43

6.1开发工具简介.43

6.2开发界面总览.43

6.2.1Android开发界面总览.43

6.2.2PHP开发界面总览.46

6.2.3数据库操作页面总览.47

6.3核心功能代码.47

6.3.1图片压缩处理.47

6.3.2相机适配处理.51

7软件测试.57

7.1功能模块测试.57

7.1.2信息发布模块测试.58

7.1.3信息交流模块测试.59

7.1.4即时通讯模块测试.60

7.3性能测试.60

7.4安全测试.61

7.5交叉事件测试.61

7.6兼容性测试.61

8结论.62

9谢辞.63

参考文献.64

社会的发展,智能手机的普及让各种各样的手机应用APP成为我们生活中必不可少的一部分,教育行业也搭上了这趟车,走上了“互联网+”教育,为了方便学生、家长、学校三体互动,让家长和学生能及时收到学校发送的消息,满足用户之前的实时交流,“爱吖校推”应运而生。

“爱吖校推”是一款基于Android的家校互动平台。随着社会的发展,各种APP在手机行业发展的助推下应用越来越广泛。某权威调研机构表示,2016年,Android系统已经占领市场份额高达81.3%,而大名鼎鼎的iPhone屈居第二,仅占17.8%,更令人惊奇的是,Android的市场份额还在持续增多。

该论文分十个部分进行逐一讲解:

首先把概述作为了第一部分,该系统平台的研究背景和意义以及国内现状作为主要讲述内容。

第四部分是概要设计,主要从Android端和服务器端分别阐述了功能总体设计,然后画了数据库E-R图,最后是系统类图和界面设计。

第五部分是详细设计,主要从数据库设计、CS协议通信、时序图三个方面阐述。

第六部分是系统实现,主要介绍了本次系统实现所用到的开发工具,并展示了开发界面总览和核心功能代码的讲解。

第七部分是软件测试,分版块进行功能、性能、安全、交叉事件以及兼容性板块进行测试并修改系统bug。

第八、九部分是本次毕业设计中的收获和结论以及自己的感想。

最后是本文所参考的各种有价值的资料列表。

1)花费7天查阅了关于即时通讯的资料以及小米推送的官方文档,并对其进行分析整理。

3)花费15天进行数据库设计,并对系统框架做一个全局性思考;

4)花费10天编写后台API数据接口,并做简单测试;

5)花费1个月编写Android端代码,并对后台数据可行性进行验证修改;

6)最后进行常规测试,并在各大机器上运行,以保证不会出现致命Bug。

采用MVC开发模式,按照功能可划分为:发通知,发作业,互评点赞,图片并茂,即时通讯,小米推送等模块。

功能模块细化:

1)班级圈:班级圈包含教师可发放通知、作业,基本支持图文并茂社区化和微视频上传。家长可查看自己班级的每一条信息,以及进行互评回复点赞。

2)即时通讯:即时通讯板块主要依赖于环信,在环信SDK的大前提下,引入基本的即时通讯和音视频通话。

3)社区板块:社区板块是用户只要在一个班级即可进行类似朋友圈的交流,依然可以进行互评点赞回复。

5)我的板块:我的板块主要是提供用户信息的更改设置等。

6)推送板块:当前推送继承了Google推送、华为推送和小米推送,以最大的可能提高推送接收率。

模块功能实现的目标:

1)班级圈:保证班级圈数据的正常显示,非本班人员应该不具备查看该班信息权限的能力。采用广播、接口回调及其其它方式完成数据的传递和更新。

2)即时通讯:保证音视频通话的离线呼起,保证长连接的引用,保证用户能正常收发消息。

3)社区:同班级圈。

5)我的板块:保证用户信息的修改处理正常,做到信息不泄漏。

6)推送:保证推送成功率与正确率。

7)交互性良好:采用materialdesign风格设计,以及动画效果的引用,使用户和软件具有更加青睐的交互体验,并通过信息圈子推送,增加了用户粘性。

8)代码风格佳:在编码过程中,严格要求分包逻辑,采用模块化分包,并对代码进行合理的封装处理,使代码更加模块化,让其他人能更易上手。

9)实用性:通过不断的更新产品功能和接收用户反馈,让该产品更加地符合消费者思维。

本系统采用C/S架构,分为客户端和服务器端。

客户端被分为了表现层、业务逻辑层和数据访问层三个层面。

1.表现层:主要通过Android应用页面来展示数据,以及一系列事件响应的UI控件。

2.业务逻辑层:主要用于业务逻辑的处理。通常由业务服务Service类和业务实体类Entity组成。

3.数据访问层:本系统采用的数据库是MySQL,采用XAMPP进行服务器搭建,采用PHP作为后台数据接口编写,用花生壳做域名解析,以达到Android客户端与服务器之间的访问。

需求分析是“爱吖校推”应用分析的必要阶段,下面分软硬件需求、功能需求和用户需求三方面做介绍,

本系统的软硬件需求如下:

(1)在Android平台上运行,系统在4.0以上;

(2)后台数据库:MySQL

(3)开发环境:JavaJDK1.7,Windows10

(4)开发工具:AndroidStudio、EclipseForPHP、XAMPP、

(5)个人计算机:华硕飞行堡垒笔记本

“爱吖校推”作为一款功能性软件,其功能需求相当重要。以下为“爱吖校推”的功能需求:

1)发通知、发作业

2)传视频、传照片

传视频是在社区和通知作业板块均具备的功能,紧跟微视频的时代步伐,教师可以把孩子在学校的精彩表演,录制下来发到班群里,家长便可以看到。家长也可以把孩子在家里做的有意义的事情放到社区,让同一个班级的家长朋友们借鉴。良好的图文并茂社区化,不仅增进了家长和学校的交流,还增进了家长之间的联系和友谊。

3)即时通讯

4)发现板块

发现板块主要是轮播的一些优秀且有利于教师家长的APP功能板块,并且会组织一些活动,邀请大家参加。

5)离线推送

离线推送在家校互动平台软件中是一个必备功能,也算是一个核心功能,有它才能保证用户真正收到来自教师发放的信息,以及即时通讯过来的消息。同时音视频通话等即时性要求较高的功能,也得依赖它。并且,推送信息到通知栏的方式向用户传递信息,也是可以增加用户粘性。

在“爱吖校推”应用的开发过程中,为了尽量满足学校老师和家长用户的要求。目前得到的需求有:

1)图片显示清晰,但不能太大,以免浪费流量;

2)微视频的压缩要处理好,不能太浪费流量;

3)即时通讯要通畅;

4)要具备离线推送,确保家长用户能收到教师发送的作业和通知;

5)要有权限管理,不能让外班人员看到本班的消息;

7)应用不能经常闪退;

8)应用不能太大,也不能太占内存;

9)运行要流畅,不能出现卡顿现象;

图2班圈模块用例图

图3消息模块用例图

图4发现模块用例图

图5我的模块用例图

参与者

触发条件

前置条件

用户打开了APP

后置条件

正常流程

1、打开APP;

扩展流程

2a.输入信息有误

表2UC2用户注册用例

UC2用户注册

所有用户

用户点击注册账号

用户打开了APP,并点击注册账号

1.打开APP;

2.点击用户注册;

3.输入手机号;

4.验证成功,进入注册页面;

5.输入注册信息

6.注册成功;

3a.输入信息有误

4a.验证码验证失败

5a.输入信息不正确

表3UC3找回密码用例

UC3找回密码

所有使用APP的教师和家长

该用户忘记了自己的密码并希望能找回

2a.输入信息不符合产品提供的正确的逻辑规范

4a.验证码输入不匹配;

表4UC4发布信息用例

UC4发布信息

教师和发布公告和作业,其他用户只可以发布圈子

用户点击发布信息按钮

发布信息到对应的班级,并且班级的用户都能收到信息,信息类型包括公告、作业、社区。其中教师发布的公告和作业会推送到家长的手机上。

6a.输入信息有误

表5UC5查看所有信息用例

UC5查看所有信息

所有用户、管理员

用户滑动tab

当前班级的用户可以查看到该班级的公告作业和社区

暂无

表6UC6查看信息详情用例

UC6查看信息详情

用户点击一条信息

用户查看到指定信息详情

4a.信息访问错误,不存在,提示用户该条信息不存在。

3a.该信息不存在;

1、该信息已经被作者删除,但前段未下拉刷新,弹出相应提示;

表8UC8查看联系人和会话用例

UC8查看联系人和会话

用户点击消息

3a.获取消息或联系人失败,提示用户数据获取失败,请稍后再试。

表9UC9聊天用例

UC9聊天

用户点击会话或者联系人

发起聊天,聊天对象收到自己发送的消息

表10UC10音视频用例

UC10音视频通话

用户发起音视频通话

发起音视频通话,聊天对象能接收到自己的音视频呼起,对象可以选择接听或者拒绝。

4a.用户可能收不到;

表11UC11修改个人信息用例

UC11修改个人信息

用户点击我的页面的头像或者点击我的信息按钮

修正后的信息成功同步更新到服务器,提示用户信息更改成功。

11a.数据更新失败,提示用户稍后再试。

表12UC12修改孩子信息用例

UC12修改孩子信息

用户点击我的页面的孩子信息入口

孩子信息修改成功,并同步更新到服务器。

5a.更新失败,提醒用户稍后再试。

图6Android端功能总体设计图

图7服务器端功能总体设计图

图8数据库设计E-R图

图10APP端主页类图

图11APP端班圈类图

图12APP端发布类图

图13APP端消息类图

图14APP端发现类图

图15APP端我的板块类图

图16图片选取界面设计

图18手机号验证界面设计

图19主界面设计

图20课程表界面设计

图21联系人列表界面设计

图22聊天界面设计

图23音频呼叫界面设计

图24发布信息界面设计

图25发现界面设计

图26我的板块界面设计

图27按住拍界面设计

本软件的数据库为MySQL数据库,主要是搭建在XAMPP上结合PHP存在。主要分为以下几个数据表:

表14用户表设计

字段

属性

备注

username

varchar(20)(主键)

账号(手机号)

password

varchar(20)

密码

nickname

用户昵称

type

int(1)

用户类型

(1教师、2家长、3管理员)

classid

int(10)(外键)

班级id

avatar

Varchar(100)

用户头像地址

birthday

date

address

text(null)

用户地址

child_name

varchar(20)(null)

孩子姓名

child_avatar

孩子头像地址

表15班级信息表设计

int(10)(主键自增)

classname

varchar(50)

班级名称

schoolname

text

学校名称

表16主贴表设计

mainid

int(10)(主键自增)

帖子id,

int(10)(外键)

varchar(20)(外键)

用户名

time

timestamp

infotype

主贴类型(1代表公告2代表作业3代表动态)

content

帖子内容

infoid

int(11)(主键自增)

信息id

int(10)(外键)

用户名,用于识别发布人信息

bigint(20)

发布内容

reply

用户表username作为外键,用于回复@功能

表18点赞表设计

praiseid

点赞信息id

主贴表外键,用于识别赞的是哪一条主贴

用户表外键,用于识别是谁点赞了

表19用户表设计

picid

图片id

int(10)(主贴表外键)

主贴id

url

图片存放地址

说明:返回格式为code,msg,data三个字段,code为0是代表请求逻辑正确,-1为请求异常;

1、获取用户是否注册APP

接口地址:/user/usable_mobile.PHP

方式和返回:GETJSON

请求参数:

表20获取用户是否注册APP接口

名称

类型

说明

mobile

string

用户手机号

2、注册

接口地址:/user/register.PHP

方式和返回:POSTJSON

表21注册APP接口

用户密码

昵称

头像上传的地址

接口地址:/user/login.PHP

String

4、重置密码

接口地址:/user/reset_pwd.PHP

表23重置密码接口

用户新密码

5、上传头像

接口地址:/user/avatar.PHP

表24上传头像接口

file

File

需要上传的文件

6、更新头像url:

接口地址:/user/update_avatar.PHP

表25更新头像URL接口

iconUrl

头像地址

int

类型1为自己

2为孩子

1、异步获取主贴等信息

接口地址:/info/info_main.PHP

表26异步获取主贴接口

班级id,用于识别可见度

信息类型

1公告2作业3动态

count

信息起始数,默认一次获取10条,需要更改联系后台

2、获取发布信息人的信息

接口地址:/info/get_user.PHP

表27获取发布信息人的信息接口

接口地址:/info/insert_comment.PHP

mainId

回复人用户名

4、更新点赞信息

接口地址:/info/praise.PHP

表29更新信息接口

该时序图是实现用例UC4发布信息。

4.如果发布成功,则返回到主页面,并发送广播提示主页面进行数据刷新。

图29发布时序图

该时序图是实现用例UC6查看信息详情。

图30圈子信息时序图

该时序图是实现用例UC9聊天。

1.用户可以从会话页面或者联系人页面进入聊天页面ChatActivity。

2.可以发送任何的文本消息,也可以点击下方“加号”按钮进行语音图片视频等文件的发送。

3.可以直接调用音视频通话,向对方发起通话。

4.任何的与服务器交互逻辑均交给EMClient类进行处理。

图31聊天时序图

AndroidStudio:AndroidStudio是Google推广的一款全新的Android开发工具,采用全新的Gradle方式进行编译,同时对原有的Eclipse开发的项目进行了支持。在2016年年底,Google宣布停止对Eclipse的支持与维护,彻底地宣布了AndroidStudio作为“Google亲儿子”的地位。其强大的市场占有率成为了使用趋势,我们不能墨守成规,需要向着新趋势看齐。

XAMPP:XAMPP(Apache+MySQL+PHP+PERL)原来的名字叫LAMPP,但最新的几个版本被更名为XAMPP,主要是为了避免误解。它作为一款建站集成软件包,功能非常完善,其强大的兼容性更是征服了用户,不仅提供了Windows、Mac等主流操作系统,更是对Linux、Solaris等其它操作系统做了支持。更完美的是,它还支持包含简体中文、繁体中文、英文、韩文等多国语言包。但XAMPP最著名的还是它的便捷性,使用XAMPP只需要下载、解压、启动三个步骤就能让Apache服务器运行在机器上,并且还支持读取PHP文件以及集成了MySQL的使用。EclipseForPHP:这款软件是Eclipse分支下专用于开发PHP的一款IDE,支持PHP5和PHP7,在这里,我们主要用它来开发后台接口板块。

图32Android源码分包预览

图33Android资源文件预览

图34PHP端代码整体预览

图35数据库操截图

思路:

1)Bitmap是一个相当大的对象,特别容易导致OOM,所以我们在压缩的时候并不能直接采用Bitmap,而采用BitmapFatory.Options。它有一个相当强大的属性:inJustDecodeBounds,当这个属性为true的时候,调用decode前缀的方法返回的就不是一个完整的Bitmap对象,而是null。因为它禁止这些方法为Bitmap分配内存,当设置这个属性为true时,便会复制Options的三个属性,它们分别是outWidth,outHeight和outMimeType。相当于不读取这个图片,却获取到了它的参数,的确很厉害。

2)另外一个不得不说的属性就是inSampleSize了,可以理解为压缩比率,设置好这个比率,就能调用decodeXXXX方法获得缩略图了,如果图片大小都一致,则可以定死它。可问题是我们的图片大小通常是不一致的,那我们压缩的重中之重就是获得这个正确的比率。因此,咱们完全能够经过我们想要的长宽,通过多次循环比对,从而达到等比例压缩。

3)然而,inSampleSize官方注释告诉我们一个必须注意的点:因为inSampleSize只能是2的整数次幂,意味着如何我们通过循环算出来inSampleSize为6的话,这时候只能向下取得整数次幂,也就是4。这样明显是达不到我们想要求的标准的。

4)Bitmap的createScaleBitmap这个方法成功消除了我们的焦虑,我们可以借用这个方法把我们之前得到的较大的缩略图进行二次缩小,直到完全符合我们的要求。

核心代码为:

针对Android的适配上也是下了不少功夫,主要表现在Android6.0的动态权限处理,以及Android7.0的相机打开限制,当然还有必不可少的MIUI系统坑和三星机器的图片旋转问题。

下面谈下解决方案:

2)对于调用系统相机拍照后图片旋转:

经常会遇到一种情况,拍照的时候看到照片是正的,但是当APP获取到这张图片的时候,却发现旋转了90度(也有可能是180,270,不过90度比较多见,这应该是手机传感器导致的)。为了解决这种不一定在所有机器上都出现的问题,我们可以引入Android系统提供的ExifInterface类来解决各个属性的操作。ExifInterface可以不用加载图片就获取到图片的长宽、旋转角度等多种属性,我们可以通过ExitInterface获取图片的旋转角度degree来进行处理,当满足degree不为0的时候,调用Matrix的postRotate进行角度旋转,核心代码为:

3)对于部分机型调起相机会回不去APP的适配处理(拍完照闪退问题):

这也是相机适配中必须处理的地方,由于Android系统厂商的ROM不一致,会让一些ROM对自带相机应用做优化,当某个APP通过Intent进入相机拍照界面时,系统会把这个APP最上层的Activity销毁回收,只需要重写onSaveInstanceState和onRestoreInstanceState方法对数据进行恢复和保存即可,核心代码为:

4)Android7.0调用系统相机的处理:

由于Android7.0手机开始推广,所以我们也不得不处理7.0的权限问题。在Android7.0以后,file://不被允许作为一个附件的Uri的意图,否则会抛出FileUriExposedException,在这样的情况下,我们只需要用FileProvider即可解决。核心代码如下:

Android:authorities="${APPlicationId}.provider"

Android:name=".ImagePickerProvider"

Android:exported="false"

Android:grantUriPermissions="true">

Android:name="Android.support.FILE_PROVIDER_PATHS"

Android:resource="@xml/provider_paths"/>

功能模块的测试是最基本的测试。我通过找出APP的测试点,然后采用两款手机,小米3S(Android5.0)和小米5S(Android7.0)以及Windows抓包工具Fidder分别对“爱吖校推”的功能模块和网络接口进行完整测试,在测试过程出现了几个小问题。

1)图片选择页面出现选择异常,而后得以解决,因为导包错误,导致指向了另外一个文件。

2)发布信息后没有刷新页面的Bug,后面采用广播提醒UI刷新得以解决。

测试项目

测试方法

预期结果

结论

用户注册

在注册界面输入用户名,密码,其他信息(符合要求)

注册成功

与预期结果一致

在注册界面不输入内容或者输入信息不符合要求

注册失败

没有退出当前账号,第二次进入该系统

该模块测试主要是验证能否正常发布信息和上传图片及微视频,当没有输入信息时候应当不能点击发送按钮。附件上传前要注意压缩,并且上传后应该在班圈信息中得到正常显示,中间有任何出错需要提示相应错误。而且在6.0以上系统的手机应该动态申请权限。在发布通知或者作业页面,应当发起推送到该班级圈子下的家长手机中。

表31信息发布模块测试

信息发布

不输入任何文字点击发布

发布按钮不能点击

输入信息点击发布

发布成功,班圈显示刷新显示本条内容

点击图片上传,进入图片选择页面,选择后点击确定返回

选择图片后在信息发布页面能显示正常的图片信息,并且首次使用该功能应该弹出申请权限的对话框

点击微视频上传,进入微视频录制页面,点击上传后返回

信息发布页面正常显示该条微视频的缩略图,点击缩略图能正常播放视频,首次使用该功能应该弹出动态申请权限的对话框

发布信息,查看Fidder抓包情况

Fidder抓包信息应当显示和接口预期一致

发布班级通知或者作业的时候,查看Fidder抓包情况和该班级圈子的家长用户手机情况

Fidder抓包信息应该和接口预期一致,并且该班级圈下的家长应该收到信息推送

表32信息交流模块测试

信息交流

点击班圈的某条信息

应该能正常进入详情页面

点击点赞按钮

在未点赞的时候应该为灰色,点赞后应该为红色,可以取消点赞,相应数目应该变化

进入信息详情页面,并且弹出键盘

应该直接开始弹出软键盘,并且置为回复该用户的状态

点击返回

即时通讯模块测试主要是测试添加好友,音视频通话,聊天,发送附件,好友列表等能否正常显示,以及APP置于后台能否正常收到离线推送的即时通讯消息。

表33即时通讯模块测试

即时通讯

点击消息Tab

能查看到最近联系人

点击联系人Tab

点击某条会话或者联系人

能正常进入聊天页面,并能正常显示信息和聊天

点击音视频通话

进入音视频通话页面,被呼叫用户应当能正常收到此信息,并可选择挂断,发起者可以收到用户B接受或者拒绝的反馈,若是接受,应当正常进行音视频聊天

用户B应用置于后台,用户A给用户B发送文本消息

用户B手机能收到信息推送

用户B应用置于后台,用户A向用户B发起音视频呼叫

用户B应当直接呼起音视频通话页面,并能选择接受或者拒绝

1)图片压缩不要将整个图片以Bitmap读入内存,防止OOM的发生,替换为ExitInterface类获取图片信息,并采用BitmapFatory的decodeXXX方法以及Bitmap的createScaleBitmap进行尺寸压缩,最后再进行质量压缩得以解决。

2)项目中有些地方采用了static静态对象,持有Context等导致内存久久不能释放,后面替换了ApplicationContext得以解决。

3)测试过程中发现启动白屏现象较为严重,所以增加闪屏页得以缓解。

1)没有任何的泄密权限或者非法访问情况;

2)没有出现任何的自启动,没有捆绑其他任何软件;

3)数据加密均正常,不存在泄密危险。

在交叉事件测试中,我着重检查了几个方面:

APP运行时,前台后切换或者横竖屏切换出现了数据的丢失,经过修改后得以解决;

在Android众多的第三方定制系统的大背景下,各种各样奇葩的兼容性问题一定存在,虽然在我们开发中采用的测试真机是公认最容易出问题的MIUI手机,但依然不能以偏概全,在兼容性测试阶段,我采用腾讯云真机租用做了基本所有定制系统的兼容性测试。在兼容性测试中,我着重处理了:

Android7.0后不能直接通过Uri调用系统相机,检查出问题后,采用了文件FileProvider得以解决。

在三星手机的测试中,出现了拍照后旋转问题,最后在代码中通过ExitInterface等操作解决了这个问题。

8结论

本次毕业设计针对越来越被看好的“互联网+”教育,着眼于促进教育现代化发展,加强学校与家长的沟通交流。设计过程中采用较多的Design美学理念和动画效果,增加用户粘性。提供推送服务,极大的满足了用户不丢失重要班级信息。社区化的设计,帮助用户群体更好的交流。

9谢辞

感谢自己最近一学期来的努力与付出,让自己按时完成了毕业设计和毕业论文的撰写。

感谢四年来所有教过我的老师,感谢你们的不辞劳苦,辛勤教诲,让我从计算机文盲走到现在。

同时,感谢我的同学们,四年同窗,终身为友,今天我们在此同学,明天我们团结向上!

参考文献

[1]明日科技.Android从入门到精通[M].北京:清华大学出版社,2012.9

[2]郭霖.第二行代码[M].北京:清华大学出版社,2016.11

[3]李刚.疯狂Android讲义(第3版)[M].北京:电子工业出版社,2015.

[4]郭金尚.Android经典项目案例开发实战宝典[M].北京:清华大学出版社,2013.9

[5]刘金桥.基于web的贝佳宠物医院管理系统设计与实现2015-06-03

[6]许瑾.第一次开发Android程序的历程[J].科技资讯,2014.29.20

[7]丁丽萍.Android操作系统的安全性分析[J].信息网络安全,2012.3:58-60

[8]王珊.数据库系统概论.北京:电子工业出版社,2015

[9](美)赞德斯彻.深入PHP:面向对象、模式与实践(第3版)[M].机械工业出版社,2009.4

[10]杨宇.PHP典型模块与项目实战大全[M].清华大学出版社,2012.1

[11](美)林恩.贝伊利,迈克尔·莫里森着苏金国,徐阳译O’Reilly:HeadFirstPHP&MySQL(中文版)中国电力出版社2010386

[12]马千里.基于安卓手机的“视界”应用程序的设计和实现2016-05-31

THE END
1.宠物医院管理系统思维导图模板宠物医院管理系统 大纲/内容 输入全称查询结果 输入关键字查询结果 输入乱码查询结果 输入超长字符查询结果 不输入查询结果 特殊情况测试 搜索查询功能 填写信息确认新增 空缺信息确认新增 取消增加进程 增加信息 删除信息后查看信息残留情况 删除信息 预约就诊https://www.processon.com/view/644909c15431710b70b80bcd
2.宠物诊所管理系统设计.docx宠物诊所管理系统设计.docx,1 绪论 1.1 研究目的及意义 基于移动因特网的迅速发展、一些企业或是医院的管理做法和管理理念都发生了极大的变化。在我国许多工业或是商人更多采用了新的管理模式管理, 已经急剧地改变,从而大大提高了工作的效率和水平和质量以及商业服务。 对https://m.book118.com/html/2023/1228/7031143112006023.shtm
1.Springboot宠物医院管理系统的设计与实现附源码84724各个宠物医院管理系统在功能上会存在差异,但都在不断完善,静态网站的宠物医院也在向动态网站的宠物医院过渡。随着Internet的不断快速发展,静态Web站点的开发与维护越来越困难,一方面是信息不断更新和增加,不得不让站点维护人员经常修改页面内容;另一方面静态网页不能及时的与浏览者进行有效交互,使浏览者感觉到乏味。所以...https://blog.csdn.net/m0_73244000/article/details/135689966
2.基于Java的“沐沐”宠物医院管理系统的设计与实现6系统测试 43 6.1测试目的 43 6.2测试用例 43 6.3测试分析 46 总结47 致谢48 参考文献 49 通过深入调研宠物医院的管理需求,了解到系统需要具备前台信息浏览、档案查看和治疗处理功能,以及后台对治疗处理信息、美容造型和系统信息的全面管理功能。从功能角度来看,系统主要分为前台和后台两部分,并根据用户角色划分为会员...https://blog.51cto.com/u_15745565/11859292
3.boardmix模板社区商品管理系统用例图 81 34 用户 微信用户803164 免费 boardmix 日志后台管理系统用例图 679 21 boardmix博思白板 会员免费 boardmix 旅馆订票系统用例图 589 21 boardmix博思白板 会员免费 boardmix 灾害预警系统用例图 250 177 用户 微信用户EgUCX2Y3 免费 boardmix 宠物医院用户用例图 180 6 用户 微信用户8ZbHD...https://boardmix.cn/community/search?keyword=%E8%87%AA%E5%B7%B1%E7%94%A8