Files
arc/.planning/codebase/STACK.md
2026-03-30 15:21:07 +08:00

109 lines
3.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Technology Stack
**Analysis Date:** 2026-03-30
## Languages
**Primary:**
- Dart 3.9.0+ - Flutter 插件层代码(`lib/*.dart`
- Java 11 - Android 原生实现(`android/src/main/java/**/*.java`
**Secondary:**
- Kotlin - 未使用(纯 Java 实现)
- C/C++ (Native) - 虹软 SDK native 库(`libarcsoft_face.so`, `libarcsoft_face_engine.so`, `libarcsoft_image_util.so`
## Runtime
**Environment:**
- Flutter SDK 3.18.0+ (stable channel)
- Dart SDK 3.9.0+ (<4.0.0)
- Android SDK compileSdk 36, minSdk 24
**Package Manager:**
- pub (Flutter/Dart 包管理器)
- Gradle 8.9.1 (Android 构建)
- Lockfile: `pubspec.lock` (present), `pubspec.yaml` (present)
## Frameworks
**Core:**
- Flutter SDK - 跨平台移动应用框架
- Flutter Plugin Architecture - 平台通道通信机制
**Testing:**
- flutter_test - Flutter 单元测试框架
- flutter_lints 5.0.0 - Dart/Flutter 代码规范检查
- JUnit 4.13.2 - Java 单元测试
- Mockito 5.0.0 - Java mock 测试框架
**Build/Dev:**
- Gradle 8.9.1 - Android 构建系统
- Android Gradle Plugin 8.9.1 - Android 构建插件
- Flutter CLI - Flutter 命令行工具
## Key Dependencies
**Critical:**
- `plugin_platform_interface` 2.0.2 - Flutter 插件平台接口抽象层
- `arcsoft_face.jar` - 虹软人脸识别核心 SDK
- `arcsoft_image_util.jar` - 虹软图像处理工具库
- `libarcsoft_face.so` (~87MB) - 虹软人脸识别 native 库arm64-v8a
- `libarcsoft_face_engine.so` (~1.3MB) - 虹软人脸引擎 native 库
- `libarcsoft_image_util.so` (~80KB) - 虹软图像处理 native 库
**Infrastructure (Example App):**
- `camera` 0.11.1 - 摄像头访问插件(用于实时人脸检测)
- `cupertino_icons` 1.0.8 - iOS 风格图标
## Configuration
**Environment:**
- Dart SDK 版本约束: `^3.9.0``pubspec.yaml`
- Flutter SDK 版本约束: `>=3.3.0``pubspec.yaml`
- Java 版本: 11`android/build.gradle`
- Pub 仓库源: `https://pub.flutter-io.cn`(中国镜像)
**Build:**
- `pubspec.yaml` - Dart/Flutter 包配置
- `pubspec.lock` - 依赖锁定文件
- `analysis_options.yaml` - Dart 代码分析配置(继承 flutter_lints
- `android/build.gradle` - Android 构建配置
- `android/settings.gradle` - Android 项目设置
## Platform Requirements
**Development:**
- Flutter SDK 3.18.0+ 安装
- Dart SDK 3.9.0+ 安装
- Android Studio / Android SDKcompileSdk 36
- JDK 11
**Production:**
- Android 设备API 24+,即 Android 7.0+
- ARM64-v8a 或 armeabi-v7a 架构支持
- 摄像头权限(用于人脸检测)
- 虹软 SDK 有效激活AppId、SdkKey、ActiveKey
## Architecture Support
**Native Libraries:**
- `arm64-v8a` - 64位 ARM 设备(主流现代设备)
- `armeabi-v7a` - 32位 ARM 设备(兼容旧设备)
**SDK 功能掩码常量:**
```java
ASF_FACE_DETECT = 0x00000001 // 人脸检测
ASF_FACE_RECOGNITION = 0x00000004 // 人脸特征
ASF_AGE = 0x00000008 // 年龄检测
ASF_GENDER = 0x00000010 // 性别检测
ASF_LIVENESS = 0x00000080 // RGB 活体检测
ASF_IMAGEQUALITY = 0x00000200 // 图像质量检测
ASF_MASK_DETECT = 0x00001000 // 口罩检测
ASF_UPDATE_FACEDATA = 0x00002000 // 人脸信息更新
```
**默认功能掩码:** 0x85 = 人脸检测 + 人脸特征 + RGB活体检测
---
*Stack analysis: 2026-03-30*