由於Jenkins 裝在centos環境下,想實現Android程序的編譯,只能通過gradle 命令去打包版本apk,以下記錄了如何在centos下使用gradle 打包apk
一.安裝
gradle 需要服務器上安裝過jdk 和sdk,故而要先安裝jdk和sdk
1.jdk安裝(jdk需要1.8)
下載地址:https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
選擇對應版本進行安裝,這里我選擇了linux 64 位版本,下載完畢后,上傳至linux服務器
解壓:
mkdir /usr/java mv jdk-8u211-linux-x64.tar.gz /usr/java /usr/java tar -zvxf jdk-8u211-linux-x64.tar.gz /usr/java rm -rf jdk-8u211-linux-x64.tar.gz /usr/java
配置環境變量:
vim /etc/profile(沒有vim命令的,可以用vi命令進行編輯)
export JAVA_HOME=/usr/java/jdk1.8.0_211 export CLASSPATH=.:${JAVA_HOME}/jre/lib/rt.jar:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar export PATH=$PATH:${JAVA_HOME}/bin
source /etc/profile
查看jdk版本:java -version
至此jdk安裝成功
2.sdk 安裝
下載:wget https://dl.google.com/android/repository/sdk-tools-linux-3859397.zip
安裝:
mkdir -p /opt/android/sdk unzip sdk-tools-linux-3859397.zip -d /opt/android/sdk cd /opt/android/sdk/tools/bin/ ./sdkmanager "build-tools;27.0.3" "platforms;android-27" "platform-tools" "ndk-bundle" "extras;android;m2repository" "extras;google;m2repository" "extras;m2repository;com;android;support;constraint;constraint-layout;1.0.2" "tools"
配置環境變量:vim /etc/profile
export ANDROID_HOME=/opt/android/sdk
PATH=$PATH:$ANDROID_HOME:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools:$ANDROID_HOME/emulator:$ANDROID_HOME/tools/bin
sdkmanager --version 查看版本號
3. 安裝gradle
下載地址:http://services.gradle.org/distributions/
選擇合適版本下載
安裝:
mkdir /opt/gradle/ unzip gradle-5.4-all.zip -d /opt/gradle/ rm -rf gradle-5.4-all.zip
配置環境變量:vim /etc/profile
export PATH=$PATH:/opt/gradle/gradle-5.4/bin
source /etc/profile
查看版本:
gradle -v
完整環境變量如下所示
export ANDROID_HOME=/opt/android/sdk export JAVA_HOME=/usr/java/jdk1.8.0_211 export CLASSPATH=.:${JAVA_HOME}/jre/lib/rt.jar:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar export PATH=$PATH:${JAVA_HOME}/bin:/opt/gradle/gradle-5.4/bin:$ANDROID_HOME:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools:$ANDROID_HOME/emulator:$ANDROID_HOME/tools/bin
二、生成證書
Android apk需要有證書,否則無法正常安裝,故而需要生成證書,centos 生成證書命令如下:
keytool -genkey -v -keystore myapp.keystore -alias my_alias -keyalg RSA -keysize 2048-validity 365
參數具體含義可通過 keytool -genkey -help 查看
三、打包apk
1.程序從windows Android Studio 上移植過來,故而要更改以下配置,程序目錄結構如下:
2.修改local.properties中的sdk地址
sdk.dir=/opt/android/sdk/
3.修改app 目錄下的 build.gradle,在android配置項里增加以下內容
signingConfigs { release { storeFile file('/home/file_recv/demo/demo/myapp.keystore') keyAlias 'my_alias' keyPassword '123456' storePassword '123456' } debug { storeFile file('/home/file_recv/demo/demo/myapp.keystore') keyAlias 'my_alias' keyPassword '123456' storePassword '123456' } config { storeFile file('/home/file_recv/demo/demo/myapp.keystore') keyAlias 'my_alias' keyPassword '123456' storePassword '123456' } }
在buildTypes 添加:signingConfig signingConfigs.release(不加這句無法生效)
buildTypes { release { signingConfig signingConfigs.release minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } }
4. 編譯打包apk
gradle assembleRelease(打包成Release版本)
gradle assembleDebug(打包成Debug版本)
5.版本默認存放位置
app/build/outputs/apk