Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

StellerSurgeCode/SeeeGreen

Repository files navigation

SeeGreen

一款简洁实用的垃圾分类识别应用

Android Version License

功能特性开发创新点技术栈快速开始未来展望


应用简介

SeeGreen 是一款帮助用户快速识别垃圾分类的 Android 应用。通过拍照识别,用户可以轻松了解垃圾的类别和处理方式,为环保贡献一份力量。

核心功能

  • 拍照识别 - 对准垃圾拍照,即刻获取分类结果
  • 识别历史 - 自动保存识别记录,方便随时查看
  • 统计面板 - 记录识别次数和环保贡献值
  • 简洁界面 - Material Design 设计语言,操作流畅自然

功能特性

智能识别

通过相机拍摄垃圾照片,应用会自动调用识别服务,返回垃圾的类别信息和处理建议。

历史记录

每次识别结果都会自动保存,用户可以在历史页面查看过往的识别记录,方便学习和回顾。

数据统计

实时统计用户的识别次数和环保贡献值,让垃圾分类变得更有成就感。


开发创新点

1. 架构设计

分层架构模式

  • 采用清晰的分层架构,将 API 层、业务逻辑层、数据层和 UI 层分离
  • 通过 api 包统一管理网络请求,便于后期维护和扩展
  • 使用 model 包封装数据模型,提高代码复用性

模块化设计

  • 每个 Activity 职责单一,主页负责导航,结果页专注展示,历史页独立管理记录
  • 工具类统一放置在 utils 包中,实现代码的高内聚低耦合

2. 用户体验优化

流畅的交互流程

  • 实现了启动页(SplashActivity)过渡,提升应用启动体验
  • 采用 ActivityResultLauncher 替代传统的 startActivityForResult,符合最新 Android 开发规范
  • 权限请求采用现代化的 API,用户体验更友好

数据持久化方案

  • 通过 StorageHelper 统一管理本地数据存储
  • 实时更新统计数据,用户每次返回主页都能看到最新的识别次数和贡献值
  • 历史记录自动保存,无需用户手动操作

3. 技术实现亮点

安全的文件处理

  • 使用 FileProvider 替代传统的 file:// URI,符合 Android 安全规范
  • 避免了 FileUriExposedException,确保应用在 Android 7.0+ 系统上稳定运行
  • 照片文件统一存储在应用私有目录,保护用户隐私

高效的图片加载

  • 集成 Glide 图片加载框架,自动处理图片缓存和内存管理
  • 避免了传统 Bitmap 加载可能导致的 OOM 问题

网络请求优化

  • 使用 OkHttp 进行网络请求,支持连接池复用,提高请求效率
  • 采用 Gson 进行 JSON 解析,代码简洁且性能优异

4. 代码质量保障

规范的命名和注释

  • 遵循 Java 命名规范,代码可读性强
  • 关键逻辑添加注释说明,便于团队协作和后期维护

合理的异常处理

  • 对文件操作、网络请求等可能出错的地方进行异常捕获
  • 通过 Toast 向用户反馈操作结果,提升用户体验

技术栈

开发环境

  • 语言: Java
  • 最低版本: Android 9.0 (API 28)
  • 目标版本: Android 14 (API 36)
  • 构建工具: Gradle 8.x

核心依赖

库名称 版本 用途
AndroidX AppCompat 1.7.0 兼容性支持
Material Components 1.12.0 UI 组件
OkHttp 4.12.0 网络请求
Gson 2.10.1 JSON 解析
Glide 4.16.0 图片加载
RecyclerView 1.3.2 列表展示

快速开始

环境要求

  • Android Studio Hedgehog (2023年1月1日) 或更高版本
  • JDK 11 或更高版本
  • Android SDK API 28+

克隆项目

git clone https://github.com/yourusername/SeeGreen1.git
cd SeeGreen1

构建运行

  1. 使用 Android Studio 打开项目
  2. 等待 Gradle 同步完成
  3. 连接 Android 设备或启动模拟器
  4. 点击运行按钮

手动构建

# Windows
gradlew.bat assembleDebug
# Linux/Mac
./gradlew assembleDebug

生成的 APK 文件位于 app/build/outputs/apk/debug/ 目录下。


项目结构

SeeGreen1/
├── app/
│ ├── src/
│ │ └── main/
│ │ ├── java/com/zjf/seegreen1/
│ │ │ ├── api/ # API 接口层
│ │ │ │ ├── ApiConfig.java
│ │ │ │ └── ApiService.java
│ │ │ ├── model/ # 数据模型
│ │ │ │ └── GarbageResult.java
│ │ │ ├── utils/ # 工具类
│ │ │ │ └── StorageHelper.java
│ │ │ ├── MainActivity.java # 主页面
│ │ │ ├── ResultActivity.java # 结果页面
│ │ │ ├── HistoryActivity.java # 历史记录页面
│ │ │ └── SplashActivity.java # 启动页
│ │ ├── res/ # 资源文件
│ │ └── AndroidManifest.xml
│ └── build.gradle.kts
├── gradle/
└── build.gradle.kts

核心实现

权限管理

应用需要以下权限:

  • CAMERA - 拍照识别
  • READ_EXTERNAL_STORAGE - 读取图片
  • INTERNET - 网络请求
  • ACCESS_NETWORK_STATE - 网络状态检测

图片处理

使用 FileProvider 安全地处理相机拍摄的照片,避免文件 URI 暴露问题。

数据持久化

通过 SharedPreferences 存储用户的识别历史和统计数据。


应用截图

待添加应用截图


未来展望

短期目标(1-3个月)

功能完善

  • 支持从相册选择图片进行识别,不局限于拍照
  • 优化识别结果展示页面,增加更详细的垃圾处理建议
  • 添加识别结果分享功能,方便用户分享到社交平台
  • 实现历史记录的搜索和筛选功能

性能优化

  • 优化图片压缩算法,减少网络传输时间
  • 实现图片识别的本地缓存机制,相同图片无需重复请求
  • 优化应用启动速度和页面切换流畅度
  • 减少应用包体积,提升下载安装体验

中期目标(3-6个月)

智能化升级

  • 集成本地 AI 模型,实现离线识别功能
  • 支持批量识别,一次拍摄多个垃圾物品
  • 添加语音识别功能,通过语音描述识别垃圾类别
  • 实现智能推荐,根据用户历史记录提供个性化建议

知识体系建设

  • 构建完整的垃圾分类知识库,包含各类垃圾的详细信息
  • 添加垃圾分类小课堂,以图文并茂的方式普及环保知识
  • 实现每日一题功能,通过答题方式加深用户对垃圾分类的理解
  • 增加垃圾处理流程可视化展示

长期目标(6-12个月)

社区化发展

  • 建立用户社区,用户可以分享垃圾分类心得和经验
  • 实现用户等级和成就系统,增加应用趣味性
  • 开发排行榜功能,展示环保达人榜单
  • 支持用户上传新的垃圾类别,共同完善数据库

生态拓展

  • 与本地环保部门合作,接入官方垃圾分类数据
  • 对接智能垃圾桶设备,实现物联网功能
  • 开发小程序版本,降低使用门槛
  • 支持多语言,推广到更多地区

技术演进

  • 迁移到 Kotlin 语言,提升开发效率
  • 引入 Jetpack Compose 构建现代化 UI
  • 实现深色模式和主题自定义
  • 采用 MVVM 架构,提升代码可维护性

社会价值

环保教育 通过应用的普及,帮助更多人掌握正确的垃圾分类方法,培养环保意识,为建设绿色家园贡献力量。

数据积累 收集用户识别数据(匿名化处理),为环保部门提供决策参考,优化垃圾分类政策。

技术创新 探索 AI 技术在环保领域的应用,为智慧城市建设提供技术支持。


贡献指南

欢迎提交 Issue 和 Pull Request!

  1. Fork 本项目
  2. 创建特性分支 (git checkout -b feature/AmazingFeature)
  3. 提交更改 (git commit -m 'Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 提交 Pull Request

开源协议

本项目采用 MIT 协议开源,详见 LICENSE 文件。


关于作者

占俊凡

来自光明区长育学校,在校初三生

联系方式:[zjf20110511@qq.com]


让垃圾分类变得更简单

Made with passion by 占俊凡

About

SeeeGreen

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

Contributors

AltStyle によって変換されたページ (->オリジナル) /