# 安卓自动打包 **Repository Path**: Marthkoper/android-automatic-packaging ## Basic Information - **Project Name**: 安卓自动打包 - **Description**: 安卓自动打包 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-07-03 - **Last Updated**: 2025-10-09 ## Categories & Tags **Categories**: Uncategorized **Tags**: 安卓, 安卓自动打包 ## README ```markdown # Android 自动打包系统 这是一个基于 Spring Boot 的 Android 自动打包系统,支持上传 Android 信息、生成数据点、并通过 Kafka 消息队列进行异步处理。系统具备完整的日志记录、限流、JWT 认证和全局异常处理机制。 ## 功能特性 - **Android 信息上传**:通过接口上传 APK 包名、图标、路径等信息。 - **数据点生成**:支持数据点与数据类型的管理。 - **Kafka 消息处理**:使用 Kafka 实现异步消息处理,包括 APK 信息处理和密钥生成。 - **限流机制**:防止接口滥用,支持基于 UUID 的限流。 - **JWT 认证**:基于 Token 的用户认证机制。 - **日志过滤器**:记录请求和响应内容,支持调试和监控。 - **二维码生成**:支持生成带图标的二维码,用于 APK 下载链接分享。 - **全局异常处理**:统一的异常响应格式,提升系统健壮性。 ## 技术栈 - Spring Boot - MyBatis Plus - Kafka - JWT - Java Mail Sender - Swagger(通过 `@Tag` 注解支持) - Redis(限流依赖) ## 模块结构 - **Controller 层**:处理 HTTP 请求,如 `AndroidInfoController`。 - **Service 层**:业务逻辑处理,如 `AndroidInfoServiceImpl`。 - **Mapper 层**:数据库操作接口,如 `AndroidInfoMapper`。 - **Domain 层**:实体类定义,如 `AndroidInfo`。 - **Config 层**:系统配置类,如 `KafkaConfig`、`FilterConfig`。 - **Utils 层**:工具类,如 `QRCodeUtils`、`MD5Utils`。 - **Kafka 消费者**:监听 Kafka 消息并处理,如 `SimpleListener`。 - **异常处理**:全局异常处理器 `GlobalExceptionHandler`。 ## 安装与部署 1. **依赖环境** - JDK 1.8+ - Maven 3.5+ - Kafka 2.0+ - MySQL 5.7+ - Redis(用于限流) 2. **构建项目** ```bash mvn clean package ``` 3. **配置数据库** 修改 `application.yml` 中的数据库连接信息。 4. **启动 Kafka** 确保 Kafka 服务已启动,并创建以下 Topic: - `android` - `android_generate` 5. **启动应用** ```bash java -jar target/your-app.jar ``` ## 使用说明 ### 上传 Android 信息 **接口地址**:`POST /Upload_A_info` **请求体**: ```json { "packageName": "com.example.app", "url": "http://example.com/app.apk", "appName": "Example App", "iconName": "icon.png" } ``` **响应示例**: ```json { "code": "200", "message": "上传成功", "data": { "uuid": "abc123xyz" } } ``` ### 获取 Android 信息 **接口地址**:`GET /get_A_info?uuid=abc123xyz` **响应示例**: ```json { "packageName": "com.example.app", "url": "http://example.com/app.apk", "appName": "Example App", "iconName": "icon.png", "uuid": "abc123xyz" } ``` ### 生成密钥 **接口地址**:`GET /generate?userId=12345` **响应示例**: ```json { "code": "200", "message": "生成成功", "data": { "keystorePath": "/path/to/keystore.jks" } } ``` ## 日志与监控 - **日志路径**:`logs/info/` 和 `logs/error/` 目录下记录了系统运行日志。 - **限流日志**:通过 `@Limit` 注解实现接口限流,日志中会记录限流触发情况。 - **Kafka 消费日志**:`SimpleListener` 中记录了 Kafka 消息消费情况。 ## 贡献指南 欢迎提交 Pull Request 和 Issue。请遵循以下规范: - 提交前确保单元测试通过。 - 保持代码风格一致。 - 提交时附带清晰的提交信息。 ## 许可证 本项目采用 MIT License。 ```