Skip to content
This repository has been archived by the owner on May 9, 2024. It is now read-only.

A very SIMPLE example to show how to build an Android Kotlin app with GitHub Actions.

Notifications You must be signed in to change notification settings

leoli0605/github-actions-kotlin

Repository files navigation

Android App Development with Kotlin

本指南將帶領你完成使用 Kotlin 進行 Android 應用開發的基本流程,包括構建應用、生成密鑰庫、簽名應用、驗證簽名,以及對 APK 進行對齊的步驟。

開始之前

確保你的 Gradle 包裝器 (gradlew) 是可執行的。你可以使用以下指令透過 Docker 來建置環境。

docker build -t android-kotlin .
docker run -it --rm -v $(pwd):/app -w /app android-kotlin /bin/bash

或是直接執行 ./dockershell 來進入容器。

然後構建整個項目,包括 Debug 和 Release 版本。

chmod +x gradlew
./gradlew build
./gradlew assembleDebug
./gradlew assembleRelease

生成密鑰庫

使用 keytool 生成密鑰庫和密鑰。

keytool -genkeypair -v -keystore my-release-key.keystore -alias my-key-alias -keyalg RSA -keysize 2048 -validity 10000

-genkeypair 表示生成一對公鑰和私鑰。-v 表示詳細模式。-keystore my-release-key.keystore 表示生成的密鑰庫的名稱。-alias my-key-alias 表示生成的密鑰的別名。-keyalg RSA 表示使用 RSA 算法生成密鑰。-keysize 2048 表示生成的密鑰的大小。-validity 10000 表示密鑰的有效期為 10000 天。

以下命令示例展示了如何提供 Distinguished Name (DN) 信息。

keytool -genkeypair -v \
        -keystore my-release-key.keystore \
        -alias my-key-alias \
        -keyalg RSA \
        -keysize 2048 \
        -validity 10000 \
        -storepass <密鑰庫密碼> \
        -keypass <密鑰密碼> \
        -dname "CN=<你的名字>, OU=<你的組織單位>, O=<你的組織>, L=<你的城市>, S=<你的州或省>, C=<你的國家代碼>"

<密鑰庫密碼><密鑰密碼><你的名字><你的組織單位><你的組織><你的城市><你的州或省><你的國家代碼> 替換成你的實際資訊。

簽名你的應用

使用 jarsigner 為你的應用簽名。

jarsigner -verbose -sigalg SHA256withRSA -digestalg SHA-256 -keystore my-release-key.keystore app/build/outputs/apk/release/app-release.apk my-key-alias

記得替換 <密鑰庫密碼><密鑰密碼> 為你的實際密碼。

驗證你的應用

確保你的應用已經被正確簽名。

jarsigner -verify -verbose -certs app/build/outputs/apk/release/app-release.apk

對齊你的應用

使用 zipalign 工具優化 APK,提高應用的運行效率。

zipalign -v 4 app/build/outputs/apk/release/app-release.apk app-release-aligned.apk