您当前的位置: 首页 >  gradle

暂无认证

  • 0浏览

    0关注

    92582博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Android应用构建:7:Android Studio 3.5.3:签名方式的APK构建方式(gradle命令行方式)

发布时间:2019-12-17 21:43:59 ,浏览量:0

在这里插入图片描述 构建的APK文件根据用途分为调试类型(Debug)和发布类型(Release)两种,在前一篇文章中使用Android Studio执行签名方式的APK文件生成,这篇文章介绍使用gradle命令行生成的方式。

APK文件种类

根据使用用途和是否有签名的区别,使用Android Studio可以构建如下APK文件

APK类别 用途 签名 缺省apk文件 签名调试版APK 调试(Debug) 无 app-debug.apk 签名发布版APK 发布(Release) 无 app-release.apk 事前准备

这里使用Android Studio 3.5.3中创建的Demo应用进行使用说明。详细可参看:

  • https://liumiaocn.blog.csdn.net/article/details/103573366
gradle命令行方式构建 构建准备

通过修改gradle构建脚本,也可以直接通过Android Studio都可以达到相同的效果,可以通过gradle的命令行直接执行构建生成所签名方式的APK,这里面最重要的就是需要让gradle了解到keystore文件的位置和相关的设定密码,而通过如下的图形界面操作,则可在Android Studio中直接配置签名的信息。

事前确认

修改之前的gradle配置文件信息如下所示:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 29
    buildToolsVersion "29.0.2"
    defaultConfig {
        applicationId "com.liumiao.dmo"
        minSdkVersion 15
        targetSdkVersion 29
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
            manifestPlaceholders = [:]
        }
    }
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'androidx.appcompat:appcompat:1.0.2'
    implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
    implementation 'com.google.android.material:material:1.0.0'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'androidx.test.ext:junit:1.1.0'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.1'
}
步骤1: 打开Project Structure界面

在Android Studio的File菜单下选择Project Structure菜单项,打开Project Structure界面可以设定调试版和发布版的相关设定。 在这里插入图片描述 界面如下所示 在这里插入图片描述

步骤2: 设定调试版和release版的设定

选中Modules下的Signing Configs选项,分别设定release和debug用于对应调试版和发布版的keystore信息。release相关设定如下: 在这里插入图片描述 debug相关设定如下: 在这里插入图片描述 点击OK或者Apply之后gradle的配置文件中即会增加signingConfigs的设定,熟悉gradle和Android的配置,不通过界面直接修改配置文件当然也是相同效果。

注:此处使用的key store均为前文创建的信息,详细说明可参看前面的文章。

步骤3: 设定Default Config

如下图所示设定Default Config下的Signing Config为release方式 在这里插入图片描述

设定后配置文件确认
apply plugin: 'com.android.application'

android {
    signingConfigs {
        debug {
            storeFile file('/Users/liumiao/AndroidStudioProjects/Demo/keyReleaseV2.jks')
            storePassword 'liumiaocn'
            keyPassword 'liumiaocn'
            keyAlias = 'release_v2_private_key'
        }
        release {
            keyAlias = 'release_v2_private_key'
            storePassword 'liumiaocn'
            keyPassword 'liumiaocn'
            storeFile file('/Users/liumiao/AndroidStudioProjects/Demo/keyReleaseV2.jks')
        }
    }
    compileSdkVersion 29
    buildToolsVersion "29.0.2"
    defaultConfig {
        applicationId "com.liumiao.dmo"
        minSdkVersion 15
        targetSdkVersion 29
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
        signingConfig signingConfigs.release
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
            manifestPlaceholders = [:]
        }
    }
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'androidx.appcompat:appcompat:1.0.2'
    implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
    implementation 'com.google.android.material:material:1.0.0'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'androidx.test.ext:junit:1.1.0'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.1'
}
执行构建 清除构建结果

执行命令:./gradlew clean

liumiaocn:Demo liumiao$ pwd
/Users/liumiao/AndroidStudioProjects/Demo
liumiaocn:Demo liumiao$ ./gradlew clean

BUILD SUCCESSFUL in 0s
2 actionable tasks: 2 up-to-date
liumiaocn:Demo liumiao$
构建签名方式发布版APK

执行命令:./gradlew assembleRelease

liumiaocn:Demo liumiao$ pwd
/Users/liumiao/AndroidStudioProjects/Demo
liumiaocn:Demo liumiao$ ./gradlew assembleRelease

BUILD SUCCESSFUL in 14s
26 actionable tasks: 25 executed, 1 up-to-date
liumiaocn:Demo liumiao$ find . -type f |grep apk
./app/build/intermediates/apk_list/release/mainApkListPersistenceRelease/apk-list.gson
./app/build/outputs/apk/release/output.json
./app/build/outputs/apk/release/app-release.apk
liumiaocn:Demo liumiao$
构建签名方式调试版APK

执行命令:./gradlew assembleDebug

liumiaocn:Demo liumiao$ ./gradlew assembleDebug

BUILD SUCCESSFUL in 4s
24 actionable tasks: 24 executed
liumiaocn:Demo liumiao$ find . -type f |grep apk
./app/build/intermediates/apk_list/release/mainApkListPersistenceRelease/apk-list.gson
./app/build/intermediates/apk_list/debug/mainApkListPersistenceDebug/apk-list.gson
./app/build/outputs/apk/release/output.json
./app/build/outputs/apk/release/app-release.apk
./app/build/outputs/apk/debug/output.json
./app/build/outputs/apk/debug/app-debug.apk
liumiaocn:Demo liumiao$
关注
打赏
1653961664
查看更多评论
立即登录/注册

微信扫码登录

2.0973s