Files
HouseProperty/当前项目配置环境.txt
2026-01-07 11:13:33 +08:00

453 lines
12 KiB
Plaintext
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.
# 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
**配置检查**: 基于当前项目文件分析