从马科维茨模型到Web应用:投资组合优化器的全栈实现解析
2026/5/8 19:24:50
告别 Android Studio 漫长等待,一行命令 30 秒完成 APK 打包!本文详解 Gradle 命令行构建的所有技巧。
每次用 Android Studio 打包 APK,你是不是都要经历:
如果只是日常调试呢?每次改一行代码就要等 IDE 构建 2-3 分钟?
其实,有一种更优雅的方式——Gradle 命令行构建。
| 软件 | 版本要求 | 用途 |
|---|---|---|
| JDK | 11+ (推荐 17) | Gradle 运行环境 |
| Android SDK | 最新稳定版 | 编译 Android 代码 |
| Gradle | 项目自带 Wrapper | 构建工具 |
确保以下环境变量已配置:
# 检查 Java 版本java-version# 检查 JAVA_HOMEecho$env:JAVA_HOME# PowerShellecho%JAVA_HOME%# CMD# 检查 Android SDKecho$env:ANDROID_HOME如果没有配置,请添加:
JAVA_HOME = C:\Program Files\Java\jdk-17 ANDROID_HOME = C:\Users\你的用户名\AppData\Local\Android\Sdk并将%JAVA_HOME%\bin添加到PATH。
# 进入项目根目录cd D:\你的项目路径# 打包 Debug APK.\gradlew.bat assembleDebug输出位置:app\build\outputs\apk\debug\app-debug.apk
.\gradlew.bat assembleRelease输出位置:app\build\outputs\apk\release\app-release.apk
⚠️注意:Release 包需要签名配置,否则会报错。
keytool-genkey-v-keystore my-release-key.jks-keyalg RSA-keysize 2048-validity 10000-alias my-key-alias按提示输入密码和信息。
在app/build.gradle.kts中添加:
android{// ...signingConfigs{create("release"){storeFile=file("../my-release-key.jks")storePassword="你的密码"keyAlias="my-key-alias"keyPassword="你的密码"}}buildTypes{release{isMinifyEnabled=true// 开启代码混淆signingConfig=signingConfigs.getByName("release")proguardFiles(getDefaultProguardFile("proguard-android-optimize.txt"),"proguard-rules.pro")}}}💡安全提示:不要把密码硬编码!生产环境应使用环境变量或
local.properties。
在local.properties添加(此文件不提交 Git):
RELEASE_STORE_PASSWORD=你的密码 RELEASE_KEY_PASSWORD=你的密码修改build.gradle.kts:
vallocalProperties=Properties()localProperties.load(rootProject.file("local.properties").inputStream())signingConfigs{create("release"){storeFile=file("../my-release-key.jks")storePassword=localProperties.getProperty("RELEASE_STORE_PASSWORD")keyAlias="my-key-alias"keyPassword=localProperties.getProperty("RELEASE_KEY_PASSWORD")}}.\gradlew.bat clean.\gradlew.bat clean assembleDebug.\gradlew.bat compileDebugKotlin.\gradlew.bat tasks.\gradlew.bat assembleDebug--parallel.\gradlew.bat assembleDebug--offline.\gradlew.bat assembleDebug-q.\gradlew.bat assembleDebug--info# 或者超详细.\gradlew.bat assembleDebug--debug在gradle.properties添加:
org.gradle.caching=true org.gradle.parallel=true org.gradle.daemon=trueorg.gradle.jvmargs=-Xmx4096m -XX:+UseParallelGCorg.gradle.configuration-cache=true解决:配置 JAVA_HOME 环境变量指向 JDK 安装目录。
解决:在项目根目录创建local.properties,添加:
sdk.dir=C\:\\Users\\你的用户名\\AppData\\Local\\Android\\Sdk解决:
--parallel参数| 类型 | 路径 |
|---|---|
| Debug | app/build/outputs/apk/debug/app-debug.apk |
| Release | app/build/outputs/apk/release/app-release.apk |
创建build-apk.ps1:
# 一键打包 Android APKparam([string]$BuildType="debug")Write-Host"🔨 开始构建$BuildTypeAPK..."-ForegroundColor Cyan$startTime=Get-Date# 执行构建if($BuildType-eq"release"){.\gradlew.bat clean assembleRelease--parallel}else{.\gradlew.bat assembleDebug--parallel}$endTime=Get-Date$duration=($endTime-$startTime).TotalSecondsif($LASTEXITCODE-eq0){Write-Host"✅ 构建成功!耗时$([math]::Round($duration,1)) 秒"-ForegroundColor Green# 复制到桌面$apkPath="app\build\outputs\apk\$BuildType\app-$BuildType.apk"$destPath="$env:USERPROFILE\Desktop\app-$BuildType.apk"Copy-Item$apkPath$destPath-ForceWrite-Host"📦 APK 已复制到桌面:$destPath"-ForegroundColor Yellow}else{Write-Host"❌ 构建失败!"-ForegroundColor Red}使用方法:
# Debug 包.\build-apk.ps1# Release 包.\build-apk.ps1-BuildType release| 场景 | 命令 |
|---|---|
| 日常调试 | .\gradlew.bat assembleDebug |
| 正式发布 | .\gradlew.bat assembleRelease |
| 清理缓存 | .\gradlew.bat clean |
| 加速构建 | .\gradlew.bat assembleDebug --parallel |
| 检查语法 | .\gradlew.bat compileDebugKotlin |
命令行打包的优势:
作者:[你的名字]
如果这篇文章对你有帮助,请点赞收藏支持一下!