fist commit

This commit is contained in:
renjianbo
2026-01-07 11:13:33 +08:00
parent 48fa1e2922
commit 963f37010e
49 changed files with 11948 additions and 11117 deletions

View File

@@ -0,0 +1,452 @@
# Android 项目配置环境文档
## 一、项目基本信息
### 1.1 项目信息
- **项目名称**: HouseProperty (房产物业管理)
- **包名**: com.sl.HouseProperty
- **命名空间**: com.sl.house_property
- **版本号**: 1.1.9
- **版本代码**: 119
- **项目路径**: D:\Users\86181\AndroidStudioProjects\HouseProperty
### 1.2 应用配置
- **ApplicationId**: com.sl.HouseProperty
- **最小SDK版本**: 21 (Android 5.0 Lollipop)
- **目标SDK版本**: 29 (Android 10)
- **编译SDK版本**: 33 (Android 13)
- **测试运行器**: androidx.test.runner.AndroidJUnitRunner
---
## 二、开发环境配置
### 2.1 Java 环境
- **系统Java版本**: 1.8.0_101 (Java 8)
- **项目要求Java版本**: Java 11+ (推荐使用 Android Studio JDK 21)
- **JAVA_HOME**: C:\Program Files\Android\Android Studio1\jbr
- **编译目标**: Java 8 (sourceCompatibility & targetCompatibility)
- **Kotlin JVM目标**: 1.8
⚠️ **注意**: 项目要求Java 11+但系统Java是1.8需要使用Android Studio内置JDK
### 2.2 Android SDK 环境
- **ANDROID_HOME**: C:\Users\86181\AppData\Local\Android\Sdk
- **SDK路径**: C:\Users\86181\AppData\Local\Android\Sdk
- **NDK配置**:
- ABI过滤器: armeabi-v7a
- 支持的架构: armeabi, armeabi-v7a, arm64-v8a, x86
### 2.3 构建工具版本
#### Gradle 配置
- **Gradle版本**: 8.9
- **Gradle分发URL**: https://services.gradle.org/distributions/gradle-8.9-bin.zip
- **Gradle用户目录**: GRADLE_USER_HOME
- **Gradle JVM参数**: -Xmx1536m
#### Android Gradle Plugin (AGP)
- **AGP版本**: 8.7.3
- **构建工具**: 自动使用默认版本AGP 8.0+不再需要buildToolsVersion
#### Kotlin 配置
- **Kotlin版本**: 1.9.24
- **Kotlin插件**: org.jetbrains.kotlin:kotlin-gradle-plugin:1.9.24
- **Kotlin标准库**: kotlin-stdlib:1.9.24
---
## 三、项目模块结构
### 3.1 模块列表
```
HouseProperty/
├── app/ # 主应用模块
└── ninegridview/ # 自定义九宫格图片显示模块
```
### 3.2 模块配置
- **主模块**: app (com.android.application)
- **子模块**: ninegridview (library)
- **模块依赖**: app 依赖 ninegridview
---
## 四、构建配置
### 4.1 构建类型 (Build Types)
#### Debug 构建
- **代码混淆**: 禁用 (minifyEnabled false)
- **签名配置**: defaultSignature
- **调试信息**: 包含
#### Release 构建
- **代码混淆**: 禁用 (minifyEnabled false) ⚠️ **安全风险**
- **签名配置**: 已注释(未启用)
- **ProGuard规则**: proguard-android.txt + proguard-rules.pro
### 4.2 签名配置
```gradle
signingConfigs {
defaultSignature {
keyAlias: 'key0'
keyPassword: 'haotian'
storeFile: 'haotian.jks'
storePassword: 'haotian'
}
}
```
⚠️ **安全警告**: 签名密钥硬编码在build.gradle中存在安全风险
### 4.3 打包配置
- **排除文件**:
- META-INF/DEPENDENCIES
- META-INF/NOTICE
- META-INF/LICENSE
- META-INF/LICENSE.txt
- META-INF/NOTICE.txt
### 4.4 资源处理
- **AAPT选项**:
- cruncherEnabled: false
- useNewCruncher: false (已废弃)
- **资源目录**:
- assets: src/main/assets
- jniLibs: libs
### 4.5 Lint 配置
- **错误中断**: 禁用 (abortOnError false)
- **警告**: 不中断构建
---
## 五、功能特性配置
### 5.1 已启用特性
- ✅ **DataBinding**: 已启用
- ✅ **MultiDex**: 已配置androidx.multidex:multidex:2.0.1
- ✅ **AndroidX**: 已启用 (android.useAndroidX=true)
- ✅ **Jetifier**: 已启用 (android.enableJetifier=true)
### 5.2 Manifest占位符
```gradle
manifestPlaceholders = [
JPUSH_PKGNAME: applicationId,
JPUSH_APPKEY: "4b6e03f9cc9466efbc0b2528",
JPUSH_CHANNEL: "developer-default"
]
```
---
## 六、依赖库配置
### 6.1 仓库配置 (Repositories)
#### Maven 仓库
1. **阿里云Maven镜像** (主要仓库)
- https://maven.aliyun.com/nexus/content/groups/public/
- https://maven.aliyun.com/repository/public
- https://maven.aliyun.com/repository/gradle-plugin
- https://maven.aliyun.com/repository/central
- https://maven.aliyun.com/repository/google
2. **官方仓库**
- Google Maven
- Maven Central
- JitPack
3. **本地仓库**
- flatDir: libs目录
### 6.2 核心依赖库
#### Kotlin 相关
- kotlin-stdlib: 1.9.24
- kotlin-gradle-plugin: 1.9.24
#### AndroidX / Support Library
- androidx.multidex:multidex: 2.0.1
- com.android.support:appcompat-v7: 28.0.0 ⚠️ **应迁移到AndroidX**
#### 网络请求
- com.squareup.retrofit2:retrofit: 2.1.0 ⚠️ **版本过旧2016年**
- com.squareup.retrofit2:converter-gson: 2.1.0
- com.squareup.retrofit2:adapter-rxjava: 2.1.0
- com.squareup.okhttp3:logging-interceptor: 3.4.1
- com.lzy.net:okgo: 3.0.4
- com.lzy.net:okrx2: 2.0.2
#### 响应式编程
- io.reactivex:rxjava: 1.1.0 ⚠️ **版本过旧,已停止维护**
- io.reactivex:rxandroid: 1.1.0
- io.reactivex.rxjava2:rxjava: 2.1.5 ⚠️ **混用RxJava 1和2**
- io.reactivex.rxjava2:rxandroid: 2.1.1
- com.trello:rxlifecycle: + (最新版本)
- com.trello:rxlifecycle-components: + (最新版本)
#### 图片加载
- com.github.bumptech.glide:glide: 4.9.0 ✅
- com.squareup.picasso:picasso: 2.5.2 ⚠️ **与Glide混用建议移除**
- com.github.chrisbanes:PhotoView: 2.0.0
#### JSON 处理
- com.google.code.gson:gson: 2.6.2 ⚠️ **版本过旧2016年**
#### UI 组件
- com.scwang.smartrefresh:SmartRefreshLayout: 1.1.0
- com.gyf.immersionbar:immersionbar: 3.0.0
- com.lxj:xpopup: 1.8.10
- com.youth.banner:banner: 1.4.10
- com.jcodecraeer:xrecyclerview: 1.3.2
- com.github.CymChad:BaseRecyclerViewAdapterHelper: 2.9.30
- com.nineoldandroids:library: 2.4.0
#### 数据库
- com.j256.ormlite:ormlite-core: 5.1
- com.j256.ormlite:ormlite-android: 5.1
#### 权限管理
- com.hjq:xxpermissions: 5.5
- com.tbruyelle.rxpermissions2:rxpermissions: 0.9.5
#### 图片/视频选择
- com.zhihu.android:matisse: 0.5.3-beta3
- io.github.lucksiege:pictureselector: v2.7.3-rc05
- fm.jiecao:jiecaovideoplayer: 4.8.3
#### 支付相关
- alipaySdk-15.5.9.aar (本地AAR)
- com.tencent.mm.opensdk:wechat-sdk-android-without-mta: + (最新版本)
#### 推送服务
- cn.jiguang.sdk:jpush: 3.6.6
- cn.jiguang.sdk:jcore: 2.3.8
#### 其他工具库
- com.tencent.bugly:crashreport: latest.release
- top.zibin:Luban: 1.1.8 (图片压缩)
- com.google.zxing:core: 3.3.0 (二维码)
- tech.wangjie:qrcodetools: 1.0.0
- liji.library.dev:citypickerview: 5.2.2
- me.jessyan:autosize: 1.1.2 (屏幕适配)
- com.arialyy.aria:Aria: 3.1.1 (下载框架)
- net.dankito.richtexteditor:richtexteditor-android: 2.0.8
### 6.3 本地依赖 (libs目录)
#### AAR 文件
- alipaySdk-15.5.9.aar (支付宝SDK)
- cutil-release.aar (自定义工具库)
- selectpicker-release.aar (选择器)
- gifdecoder-4.5.0.aar
- glide-4.5.0.aar
- glide-4.6.1.aar
- material-1.2.5.aar
- PhotoView-2.0.0.aar
#### JAR 文件
- fastjson-1.2.7.jar
- pldroid-player-2.1.9.jar (播放器SDK)
#### 本地SO库 (Native Libraries)
- **armeabi-v7a**:
- libqcOpenSSL.so
- libQPlayer.so
- **armeabi**:
- libqcOpenSSL.so
- libQPlayer.so
- **arm64-v8a**:
- libqcOpenSSL.so
- libQPlayer.so
- **x86**:
- libqcOpenSSL.so
- libQPlayer.so
---
## 七、Gradle 配置详情
### 7.1 gradle.properties 配置
```properties
# JVM参数
org.gradle.jvmargs=-Xmx1536m
# AndroidX配置
android.useAndroidX=true
android.enableJetifier=true
# 测试配置
android.injected.testOnly=false
# Java编译配置
android.javaCompile.suppressSourceTargetDeprecationWarning=true
# SSL证书配置
systemProp.javax.net.ssl.trustStoreType=JKS
```
### 7.2 local.properties 配置
```properties
sdk.dir=C\:\\Users\\86181\\AppData\\Local\\Android\\Sdk
```
### 7.3 settings.gradle 配置
```gradle
include ':app',':ninegridview'
```
---
## 八、编译环境要求
### 8.1 必需环境
- ✅ **JDK**: Java 11+ (推荐 Android Studio JDK 21)
- ✅ **Android SDK**: API Level 33
- ✅ **Gradle**: 8.9
- ✅ **Android Gradle Plugin**: 8.7.3
- ✅ **Kotlin**: 1.9.24
### 8.2 推荐环境变量设置
```powershell
# 设置Java环境编译时使用
$env:JAVA_HOME="C:\Program Files\Android\Android Studio1\jbr"
# 设置Android SDK路径
$env:ANDROID_HOME="C:\Users\$env:USERNAME\AppData\Local\Android\Sdk"
```
### 8.3 编译命令
```bash
# Debug版本编译
$env:JAVA_HOME="C:\Program Files\Android\Android Studio1\jbr"; $env:ANDROID_HOME="C:\Users\$env:USERNAME\AppData\Local\Android\Sdk"; .\gradlew.bat assembleDebug
# Release版本编译
$env:JAVA_HOME="C:\Program Files\Android\Android Studio1\jbr"; $env:ANDROID_HOME="C:\Users\$env:USERNAME\AppData\Local\Android\Sdk"; .\gradlew.bat assembleRelease
# 清理项目
.\gradlew.bat clean
```
---
## 九、已知配置问题
### 9.1 ⚠️ 高优先级问题
1. **签名密钥硬编码**
- 位置: app/build.gradle
- 风险: 安全漏洞
- 建议: 移至gradle.properties或使用密钥管理服务
2. **代码混淆未启用**
- Release版本: minifyEnabled false
- 风险: 代码容易被反编译
- 建议: 启用混淆并配置规则
3. **依赖版本过旧**
- Retrofit: 2.1.0 (2016年)
- RxJava: 1.1.0 (已停止维护)
- Gson: 2.6.2 (存在安全漏洞)
- 建议: 升级到最新稳定版本
4. **混用多个版本库**
- RxJava 1.x 和 RxJava 2.x 混用
- Glide 和 Picasso 混用
- 建议: 统一使用一个版本/库
### 9.2 ⚠️ 中优先级问题
1. **Support Library未完全迁移**
- 仍使用 com.android.support:appcompat-v7:28.0.0
- 建议: 完全迁移到AndroidX
2. **targetSdkVersion过旧**
- 当前: 29 (Android 10)
- 建议: 升级到33+ (Android 13)
3. **使用flatDir加载本地AAR**
- 不推荐使用flatDir
- 建议: 使用本地Maven仓库或发布到私有仓库
### 9.3 ⚠️ 低优先级问题
1. **Gradle JVM内存配置**
- 当前: 1536m
- 建议: 根据项目大小调整建议2048m+
2. **NDK ABI过滤器**
- 当前: 仅支持 armeabi-v7a
- 建议: 根据需求添加 arm64-v8a
---
## 十、环境检查清单
### 10.1 开发环境检查
- [ ] JDK 11+ 已安装并配置
- [ ] Android SDK 已安装API 33
- [ ] Android Studio 已安装
- [ ] Gradle 8.9 已下载
- [ ] 环境变量已配置JAVA_HOME, ANDROID_HOME
### 10.2 项目配置检查
- [ ] build.gradle 配置正确
- [ ] local.properties 配置正确
- [ ] gradle.properties 配置正确
- [ ] 签名文件存在haotian.jks
- [ ] 依赖库可正常下载
### 10.3 编译检查
- [ ] 项目可正常同步
- [ ] Debug版本可正常编译
- [ ] Release版本可正常编译
- [ ] 无编译错误和警告
---
## 十一、配置优化建议
### 11.1 立即优化
1. 移除硬编码的签名密钥
2. 启用Release版本代码混淆
3. 升级关键依赖库版本
### 11.2 短期优化
1. 统一依赖库版本(移除混用)
2. 完全迁移到AndroidX
3. 升级targetSdkVersion
### 11.3 长期优化
1. 使用依赖版本管理Version Catalog
2. 建立CI/CD流程
3. 配置代码质量检查工具
---
## 十二、配置参考
### 12.1 推荐JDK配置
```powershell
# PowerShell环境变量设置临时
$env:JAVA_HOME="C:\Program Files\Android\Android Studio1\jbr"
$env:ANDROID_HOME="C:\Users\$env:USERNAME\AppData\Local\Android\Sdk"
$env:PATH="$env:JAVA_HOME\bin;$env:ANDROID_HOME\platform-tools;$env:PATH"
```
### 12.2 推荐Gradle配置
```properties
# gradle.properties
org.gradle.jvmargs=-Xmx2048m -XX:MaxMetaspaceSize=512m
org.gradle.parallel=true
org.gradle.caching=true
org.gradle.daemon=true
```
---
**文档生成时间**: 2025年1月
**项目路径**: D:\Users\86181\AndroidStudioProjects\HouseProperty
**配置检查**: 基于当前项目文件分析