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