题目要求: 参考常用的记账工具软件的功能,要求在 Android Studio 开发环境下开发一个可用于安卓手机或安卓平板设备上的记账本 APP。 APP 应该实现以下几个功能: 1.点击主界面中的“记一笔”按钮后,跳转至记账页面,输入金额、开销类别(娱乐、餐饮、教育、服饰等等)、备注、日期、账目性质(支出或收入)等信息后,点击“保存”返回至主页面;其中分类信息应该通过 Spinner 列表选择。 2.主页面中以列表方式显示出所有保存下来的账目的缩略信息。如果点击其中某一条账目,能够跳转到账面详细信息页面,详细的显示该条账目的所有信息,并能够重新编辑该条账目信息。 3.账目信息存储在数据库文件中,数据库文件采用代码建库方式创建,账目的增、删、改、查都通过数据库操作实现。 4.能够根据用户要求分别按照日期(月或天)、开销类别统计流水总额。 以下具体实现方案难度由易到难递增,根据实际选择的方案难度给项目起评分: 1)账目数据存储在手机本地数据库中; 2)账目数据存储在服务器中(例如:云端数据库)。
本项目用到三个插件。 1.ButterKnife(https://github.com/JakeWharton/butterknife) ButterKnife是一个专注于Android系统的View注入框架,以前总是要写很多findViewById来找到View对象,有了ButterKnife可以很轻松的省去这些步骤。是大神JakeWharton的力作,目前使用很广。最重要的一点,使用ButterKnife对性能基本没有损失,因为ButterKnife用到的注解并不是在运行时反射的,而是在编译的时候生成新的class。项目集成起来也是特别方便,使用起来也是特别简单。 ButterKnife的优势: 1、强大的View绑定和Click事件处理功能,简化代码,提升开发效率 2、方便的处理Adapter里的ViewHolder绑定问题 3、运行时不会影响APP效率,使用配置方便 4、代码清晰,可读性强 2.MMKV(https://github.com/Tencent/MMKV) MMKV 是基于 mmap 内存映射的 key-value 组件,底层序列化/反序列化使用 protobuf 实现,性能高,稳定性强。从 2015 年中至今在微信上使用,其性能和稳定性经过了时间的验证。近期也已移植到 Android / macOS / Win32 / POSIX 平台,一并开源。 3.QSHttp(https://github.com/tohodog/QSHttp) 一句代码联网,参数控制方便,支持泛型回调,使用简单 多年生产环境迭代,稳定可靠 支持http/自签名双向https(get post put head...) 文件上传、下载、进度监听、自动解析,基于Okhttp的支持cookie自动管理,缓存控制 支持自定义有效时间缓存,错误缓存(联网失败时使用) 详细的请求信息回调、错误类型(网络链接失败,超时,断网,解析失败,404...) 详细的访问日记打印,非常方便调试 支持多拦截器,可添加一些公共鉴权参数... 模块化设计,联网模块可更换,目前提供OkHttp和java原生两种实现
本项目用腾讯云服务器来搭建APP后端,系统为CentOS7.6,环境为:Nginx 1.16+PHP7.2+MySQL5.7,使用ThinkPHP6.0框架编写API接口。 ThinkPHP是一个免费开源的,快速、简单的面向对象的轻量级PHP开发框架,是为了敏捷WEB应用开发和简化企业应用开发而诞生的。ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简代码的同时,更注重易用性。