大二开始做SRT,是做一个时间记录的app,做的很简单这里简单的记录一下
app主要集合了时间记录,图分析,查看记录,下步规划以及用户体验的一些功能,包括分享到第三方平台,手机验证码登录
1.前期准备工作
1.1 确认需求
大学生普遍存在时间观念不强,不能合理的安排时间,对未来有明确的时间规划,项目采用
随身携带的智能终端帮助大学生有效的记录时间分配,合理的规划时间安排。
1.2 app操作流程及功能规划
通过线框图规划app的操作执行界面,设计app的主要功能,分为注册登录,时间记录,
查看记录,图表分析,下步规划等功能,设计UI界面,仿微信6.0的主界面来设计本项目的
主界面,收集UI素材
1.3 开发知识的储备
以已有的java知识为储备,学习Android开发的基本步骤,方法,框架,学习云服务器
交互方法,了解云服务器端开发文档,学习基本的UI设计模板
1.4 数据库的设计
根据项目需要通过E-R图来设计所需的表与表中属性,了解云端数据库的交互方法,数据
库共有四个表:user(用户)表,plan(用户计划)表,records(用户总记录)表,dayrecords
(用户每天记录)表
User(username,password,mobilePhone,emailVerified,email)
Plan(username,email,main,level,freelessonnum)
Records(username,email,activity_time,sport_time,study_time,fun_time,
activity_per,sport_per,study_per,fun_per,freelesson_time)
Dayrecords(username,date,week,xiangmu,start_hour,end_hour)
2.项目开发阶段
2.1 项目结构设计与数据操作
App分为三层:
(1)视图层:用户的操作. 视图对象的主要目的之一是将应用模型对象中的数据显示出来,
并允许用户编辑该数据
(2)控制器层:控制器层是在视图层和若干个模型层的中间人,负责响应视图层并操作模
型层
(3)模型层:封装了应用的一系列数据, 并定义了操作, 处理这些数据的逻辑和计算规则。
数据来源于用户输入与服务器反馈,格式为Json,操作在视图层完成,处理在模型层完成,
最终存储到云端服务器。
2.2 项目开发环境选择
采用Android 6.0版本的SDK,使用Android Studio1.5.1为开发工具,云端服务器采用
Bmob云服务器,对应SDK为bmob-sdk:3.5.0、bmob-sms:1.0.1
2.3.项目开发
根据前期规划与设计,完成对App的开发,并对每个模块相应功能进行单独测试,最终将
各个模块组合,完成app的开发,项目结构流程图如下
2.4 主要功能介绍
2.4.1用户记录相关功能
主要包括用户设置相应的时间记录计划,进行时间的记录,查看记录,查看过去记录的
图分析,对用户过去的时间分配进行简单的建议与规划,查看计划完成情况与各项活动所
占的百分比,修改计划
2.4.2 用户体验相关功能
主要包括用户的注册与登录,手机验证码登录,忘记密码时的找回,修改资料,分享到
第三方平台
3.项目测试阶段
3.1 测试环境
3.1.1 硬件环境
硬件名称 数量 配置
三星Galaxy S5 1 分辨率1920 x 1080 RAM 2GB 核心数 4
Genymotion模拟器 1 同上
3.1.2 软件环境
Android OS 4.2.2
3.2 测试中出现的问题
存在问题 解决方法
1.云端服务器查询数据不同步 Handler异步查询
2.实际记录数据与服务器数据不一致 重复提交bean导致,采用sharedpreferences暂时存储
3.主页面fragment崩溃重叠 采用底色填充
4.其他编码漏洞 修改
3.3 项目存在问题
对android底层结构不熟悉,对activity与fragment生命周期认识不足,主页面崩溃问题
重叠问题解决不彻底,app启动卡顿明显,暂时采用载入页面背景透明掩盖,主要由于项目成
员对android了解不足,底层框架认识不清导致
3.4 项目发布
目前项目已在应用宝发布,版本更新依托蒲公英第三方代码托管平台
项目中用到的几个服务器和第三方接口以及Github上的几个开源UI
Bmob云服务器:http://www.bmob.cn/
第三方分享平台:http://www.mob.com/
github上的开源UI:
Hellocharts图表库:https://github.com/lecho/hellocharts-android
Context-Menu.Android:https://github.com/Yalantis/Context-Menu.Android
circular-progress-button:https://github.com/dmytrodanylyk/circular-progress-button
android-floating-action-button:https://github.com/futuresimple/android-floating-action-button
项目是简单的一个练手app做的有很多不足之处,但是对初学者可能有很多帮助,尤其是用Bmob平台开发app的开发者,项目地址
https://github.com/yaoxunji/app