[关闭]
@Tyhj 2017-09-05T05:48:56.000000Z 字数 1386 阅读 1298

WallPaper项目说明

作业


总体设计:

系统架构

系统采用Android+SQLLite+MySQL+Tomcat+JAVA架构方式。操作系统为Android,数据库为SQLLite(Android端)和MySQL(服务器端),服务器为Tomcat,编程语言为JAVA,以这些技术为基础实现了该系统所需要的功能模块。
Android端框架:MVP+AndroidAnnotations+Dagger+Retrofit+RxJava+Lite-orm。Android架构为MVP,使用AndroidAnnotations框架优化代码,使用依赖注入框架Dagger2.0来降低模块耦合度,使用Retrofit+RxJava来进行网络请求和数据处理,使用SQLLite框架Lite-orm来进行数据储存。

数据库设计

合理的构建数据库,提高存储的效率,保证系统能够高效的运行以及数据的完整和统一性。整个系统一共设计了六张表:APP版本信息表、视频壁纸信息表、用户反馈表、反馈回复表、用户信息表、用户界面风格表。

项目模块:

用户模块

不用注册、登录操作,直接以手机IMEI作为id,收集用户的手机信息,以此来了解APP的使用情况,还可以设置相应的用户强制下线,默认虚拟机会强制下线。

聊天模块

开发者可以通过留言和留言反馈的形式和用户进行实时通信,支持离线消息和实时聊天,接受用户的反馈,以此改进APP。

壁纸模块

壁纸模块是APP的核心功能,由于壁纸基于系统服务,所以不会被系统关闭,根据壁纸的不同分为以下几种:

视频壁纸

就是将下载好的视频设置为桌面壁纸,APP自带两个视频,在线视频需要在APP内下载后才可以使用,在线视频支持在线播放,并且在非WiFi下回提示正在使用流量。

摄像头壁纸

打开摄像头,将摄像头拍摄的事实画面作为壁纸,需要相机权限。

画布壁纸

在画布上画出来的图象作为壁纸,非常灵活,可以做出非常炫的壁纸,支持手势交互,原理和一些手机自带的动态壁纸类似,APP内暂时自带一种画布壁纸。

系统壁纸

利用Android系统自带的壁纸功能选择设置壁纸。

微动态图壁纸

将gif图片作为壁纸

界面模块

APP的风格可以根据后台获取的数据来改变,分为两种,一种是图片,获取到图片后设置为背景,另一种是将APP内置的视频作为背景显示。

自动更新模块

每次打开APP,都会从后台检测版本,如果版本低于最高版本,就会提示下载更新,下载完成后会自动进行安装。更新分为两种,强制性更新和非强制性更新,APP更新界面也会根据后台返回的数据的不同有所改变。这样设计主要是提高APP的灵活性,便于控制APP。

下载模块

就是将在线视频、最新版的APP下载到本地,后台下载,显示下载进度,在线视频会不定时更新。

资源同步模块

APP主要功能是视频壁纸,而视频壁纸需要下载,把视频放在哪里就是一个问题,放在自己的服务器,下载太慢,放在第三方,有流量限制,要给钱。第一版,我把视频放在Leancloud上,并且没有写后台,调用Leancloud的API,第一天流量就超出了限制。第二版,自己写了后台,并且把视频放在Leancloud上,调用Leancloud的API来把视频信息同步到我的后台(每次更新数据调用一次即可),APP内调用自己写的接口,这样完美解决。

缓存模块

APP支持离线模式,会缓存数据和图片,当没有网络的时候APP还是可以正常预览。

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注