- 注意
- 安裝軟件包管理器
- MAC 電腦
- Windows 電腦
- cmd.exe 中安裝
- PowerShell.exe 中安裝
- 安裝 JDK8
- Mac os
- Windows
- 安裝 Gradle
- Mac os
- Windows
- 安裝 Android SDK
- Mac os
- Windows
- 安裝 androd build-tools
- 構建調(diào)試 APK
- 構建發(fā)布版本 APK
- 生層私鑰
- 配置Gradle來構建應用
- 不使用 Gradle 配置使用命令行
- 構建未簽名的 apk
- 使用 zipalign 對齊未簽名的 APK
- 通過 apksigner 使用您的私鑰為 APK 簽名
- 驗證簽名
- 環(huán)境變量的配置
- Mac
- Windows
- 查看 APK 簽名命令
注意
版本的不同徒坡,安裝目錄也會有所變化。
安裝軟件包管理器
MAC 電腦
Iterm 中安裝 Homebrew:
https://brew.sh/index_zh-cn
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
Windows 電腦
安裝 Choco:
https://chocolatey.org/docs/installation#non-administrative-install
cmd.exe 中安裝
@"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command " [System.Net.ServicePointManager]::SecurityProtocol = 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))" && SET "PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin"
PowerShell.exe 中安裝
Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))
安裝 JDK8
Mac os
brew tap adoptopenjdk/openjdk
brew install adoptopenjdk8
java8 安裝失敗轩缤,可以安裝java9
brew install adoptopenjdk9
Windows
choco install jdk8
安裝 Gradle
Mac os
brew install gradle
安裝路徑:/usr/local/Cellar/gradle/5.0/bin
Windows
choco install gradle
安裝路徑:C:\ProgramData\chocolatey\lib-bkp\gradle\tools\gradle-6.3\bin
安裝 Android SDK
這里會提示安裝 jdk钻哩,可以跳過安裝jkd戈鲁。
Mac os
brew install android-sdk
安裝路徑:/usr/local/Caskroom/android-sdk
Windows
choco install android-sdk
安裝路徑:C:\Android\android-sdk
安裝 androd build-tools
windows sdkmanager 在路徑 C:\Android\android-sdk\tools\bin
中。
mac sdkmanager 在路徑 /usr/local/Caskroom/android-sdk/4333796/tools
中。
sdkmanager "platforms;android-28"
指定詳細版本進行安裝:
sdkmanager "build-tools;29.0.1"
Windows 安裝路徑:C:\Android\android-sdk\build-tools\29.0.1
Mac 安裝路徑: /usr/local/Caskroom/android-sdk/4333796/build-tools/29.0.1
構建調(diào)試 APK
在此之前你需要修改 local.properties
文件中的 sdk 路徑杰妓。
請打開命令行,然后轉到項目的根目錄:
gradlew assembleDebug
將在 project_name/module_name/build/outputs/apk/ 中創(chuàng)建一個名為 module_name-debug.apk 的 APK碘勉。 該文件已使用調(diào)試密鑰進行簽名并使用 zipalign 對齊巷挥,因此您可以立即將其安裝到設備上。
構建 APK 并立即在運行的模擬器或連接的設備上安裝:
gradlew installDebug
構建發(fā)布版本 APK
在此之前你需要修改 local.properties
文件中的 sdk 路徑验靡。
生層私鑰
keytool -genkey -v -keystore my-release-key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias my-alias
生成一個名為 my-release-key.jks 的密鑰庫文件倍宾,并將其保存在當前目錄中。
配置Gradle來構建應用
android {
...
defaultConfig { ... }
signingConfigs {
release {
// You need to specify either an absolute path or include the
// keystore file in the same directory as the build.gradle file.
storeFile file("my-release-key.jks")
storePassword "password"
keyAlias "my-alias"
keyPassword "password"
}
}
buildTypes {
release {
signingConfig signingConfigs.release
debuggable false
zipAlignEnabled true
shrinkResources true
minifyEnabled true
...
}
}
}
構建 apk:
gradlew assembleRelease
當您通過調(diào)用 Gradle 任務來構建您的應用時胜嗓,Gradle 會為您的應用簽名(并運行 zipalign)高职。
不使用 Gradle 配置使用命令行
下面使用的 zipalign
apksigner
在 build-tools 目錄下。
構建未簽名的 apk
gradlew assembleRelease
使用 zipalign 對齊未簽名的 APK
zipalign -v -p 4 my-app-unsigned.apk my-app-unsigned-aligned.apk
zipalign 可以確保所有未壓縮數(shù)據(jù)的開頭均相對于文件開頭執(zhí)行特定的字節(jié)對齊辞州,從而減少應用占用的 RAM 量怔锌。
通過 apksigner 使用您的私鑰為 APK 簽名
apksigner sign --ks my-release-key.jks --out my-app-release.apk my-app-unsigned-aligned.apk
用存儲在單個密鑰庫文件 my-release-key.jks 中的私鑰和證書為 APK 簽名后,將以 my-app-release.apk 的形式輸出已簽名的 APK变过。
通過 jarsigner 使用您的私鑰為 APK 簽名
jarsigner -verbose -keystore [簽名文件路徑] -signedjar [簽名后apk的文件路徑] [未簽名apk的文件路徑] [證書別名]
驗證簽名
apksigner verify my-app-release.apk
環(huán)境變量的配置
Mac
在 ~/.bash_profile
(如果使用iterm則是~/.zshrc
)文件中添加:
export ANDROID_HOME=/usr/local/Caskroom/android-sdk
export PATH=$PATH:$ANDROID_HOME/4333796/tools
export PATH=$PATH:$ANDROID_HOME/4333796/build-tools/29.0.1
export GRADLE_HOME=/usr/local/Cellar/gradle
export PATH=$GRADLE_HOME/5.0/bin
Windows
C:\Android\android-sdk\tools\bin
C:\Android\android-sdk\build-tools\29.0.1
C:\ProgramData\chocolatey\lib-bkp\gradle\tools\gradle-6.3\bin
查看 APK 簽名命令
keytool -list -printcert -jarfile app-relase-.apk