目录
1 项目基本信息
1.1 项目名称
美食点餐APP的设计与实现
1.2 开发运行环境
1. Android 操作系统,不同版本的 Android 操作系统可能对应不同的 SDK 版本。
2. Android SDK:Android SDK 是 Android 软件开发工具包,包括 Android Studio 集成开发环境(IDE)、各种 Android API、相关工具和平台等。使用 Android SDK 可以进行 Android 应用程序的开发。
3. Java 开发环境:Java 开发环境包括 JDK 和 Java IDE 工具。在 Android 开发中,需要使用 JDK 运行 Java 代码,而 Java IDE 工具则可以提高开发效率。
4. Android 设备或模拟器:在进行 Android 应用程序开发和测试时,需要准备一台 Android 设备或者使用 Android 模拟器。Android 设备包括智能手机、平板电脑等多种类型,而 Android 模拟器则可以在电脑上运行 Android 应用程序,方便开发和测试。
1.3 使用的核心类及组件
1. Activity:Activity 是 Android 应用程序中的基本组件,用于表示用户界面和交互行为。在美食点餐 APP 中,许多页面都是通过继承 Activity 实现的,包括主界面、菜品分类界面、菜品详情界面、订单界面等。
2. Fragment:Fragment 是 Android 应用程序中的组件,它可以嵌入到 Activity 或其他 Fragment 中,用于构建灵活的用户界面。在美食点餐 APP 中,也使用了 Fragment 来创建一些复杂的界面,例如展示不同分类菜品的 Fragment。
3. RecyclerView:RecyclerView 是 Android 应用程序中的组件,用于显示大量数据,并支持固定数量的元素视图。
4. Adapter:数据适配器,用于将数据与视图进行绑定。Adapter 通常被用于将数据源包装成 Android 中的各种视图,例如 ListView、RecyclerView等。
5. LitePal或 SQLite数据库:用于存储应用程序的数据。
6.自定义 ActionBar :通过自定义 ActionBar 可以进行样式定义、布局定义、事件处理等等。
7.工具类:StatusBarUtil用于全屏显示,状态栏工具类,SPUtils用于数据持久化工具类。
8.Glide:Android图片加载库,能够高效加载本地和远程的图片资源,并且提供了缓存图片、裁剪图片、变换图片等高级功能。Glide能够自动处理多个图片资源的缩放和变换,能通过流式API、灵活的配置选项和回调机制,内置了活跃内存管理和生命周期支持,大大减少内存问题和开发难度。
9.JSON:JSON用于数据交换。解析Web Service返回的JSON数据,用于展示和处理服务器上的数据;将Java对象转换为JSON格式数据,然后将数据通过网络请求发送到服务器; 将来自服务器的JSON数据持久化存储在APP中,以供离线使用;在运行过程中,动态地从本地文件或者网络中加载JSON配置数据,然后应用此配置来驱动程序的行为和配置;使用JSON结构化存储数据,通过SQLite数据库和SharedPreferences等组件来持久化存储和读取数据。
10.Intent:是一种用于在不同组件之间进行通信的机制。可用于请求组件执行操作,或者传输数据。可以用来执行各种操作,包括启动Activity、启动Service、发送Broadcast以及启动ContentProvider等。
11.JUnit是一个流行的Java测试框架。它提供了一组用于测试Java代码的类和方法。使用JUnit,开发人员可以编写测试用例,测试这些用例以确保代码的正确性和可靠性,可以减少在开发过程中出现错误的可能性,它支持自动化测试,并能够生成报告以提供反馈和记录测试结果。
2 项目需求分析
2.1 APP管理员
(1)首页模块:用于展示推荐菜单信息和类别等信息,并提供操作入口。
(2)订单模块:订单模块包括查看所有订单、对订单进行管理和编辑等功能。
(3)我的模块:用于展示和修改个人信息,以及重置密码等账号安全功能。
2.2 APP用户
(1)首页模块:展示 APP 的主要功能,包括推荐菜单信息、类别等信息。
(2)订单模块:实现用户对订单的查看、创建、修改和取消等功能。
(3)我的模块:展示用户的个人信息、账号安全以及浏览记录。个人信息包括对账号、昵称、年龄和邮箱的修改功能。账号安全可以重置密码。还可查看历史浏览记录。
3 项目开发过程
3.1 APP功能模块
APP的主要功能是首页模块展示 APP 中的主要功能和推荐菜单等信息,通过分类和搜索等功能快速定位用户所需要的信息;订单模块实现用户对订单的查看、创建、修改和取消等功能。用户可以浏览菜品,将喜欢的菜品进行点餐; 用户管理模块实现用户的修改、查看和删除等功能。用户可以修改个人信息,包括昵称、年龄和邮箱等,也可以查看和管理自己的订单和收藏。我的模块:展示用户的个人信息、账号安全以及浏览记录。个人信息包括对账号、昵称、年龄和邮箱的修改功能。账号安全可以重置密码。还可查看历史浏览记录。
3.2 数据库设计
APP在设计数据库时需要4个表来实现,主要包括用户表(user)、菜品表(fruit)、 浏览记录表(browse)、订单表(orders)。
用户表(User)主键为id,存储用户的注册信息,其中account、password、email、nickname、age为用户的相关信息;菜品表(Fruit)主键为id,存储菜品信息,其中title、content、img、issuer、date等字段为菜品的相关信息;浏览记录表(Browse)主键为id,存储用户浏览过的菜品,其中account存储用户账号,title存储浏览过的菜品的标题; 订单表(Orders)主键为id,存储用户购买的菜品订单信息,其中account存储用户账号,title存储订单的标题,number存储订单编号,amount存储购买数量,date存储下单时间等信息。
表3-1 用户表(user)
字段 |
数据类型 |
主键 |
外键 |
是否为空 |
说明 |
id |
integer |
是 |
否 |
否 |
用户id |
account |
text |
否 |
是 |
否 |
账号 |
password |
text |
否 |
否 |
否 |
密码 |
|
text |
否 |
否 |
否 |
邮箱 |
n |