【问题标题】:Gradle task to execute android zipalignGradle 任务执行 android zipalign
【发布时间】:2016-06-09 21:47:10
【问题描述】:

我想构建一个 gradle Exec 任务,该任务将在我签名的 apk 文件上运行 android 的 zipalign,然后验证对齐。

【问题讨论】:

    标签: android gradle android-gradle-plugin zipalign


    【解决方案1】:

    变量

    • ANDROID_HOME - 安卓 SDK 路径
    • ZIPALIGN_PATH - zipalign 可执行文件的路径,相对于
    • ANDROID_HOME buildDir - gradle 的构建目录
    • OUTPUT_APK_PATH - 创建的apk文件目录
    • APK_FILE_TO_ALIGN - 您要对其执行 zipalign 的 apk(应签名)
    • APK_FILE_NAME - zipalign 后的文件名

    zipalign 任务:

    task zipAlign(type: Exec) {
    
            executable "${ANDROID_HOME}${ZIPALIGN_PATH}"
            args "-f",  "-v", "4", "${buildDir}${OUTPUT_APK_PATH}${APK_FILE_TO_ALIGN}", "${buildDir}${OUTPUT_APK_PATH}${APK_FILE_NAME}"
    
    }
    

    zipalign 验证任务(注意这个任务依赖于 zipalign 任务):

    task verifyZipAlign(type: Exec, dependsOn: 'zipAlign') {
    
            executable "${ANDROID_HOME}${ZIPALIGN_PATH}"
            args "-c",  "-v", "4", "${buildDir}${OUTPUT_APK_PATH}${APK_FILE_NAME}"
    
    }
    

    【讨论】:

    • 在 gradle 版本 2.2.0 之后,它只生成 zip 对齐的 APK,所以这是完全没有必要的:issuetracker.google.com/issues/37103802
    • 并非如此,如果您对 APK 进行更改,则需要再次进行 zip align
    • Zipalign 自动进行验证。源代码中有一个很好的注释“Trust, but verify”。
    猜你喜欢
    • 2013-07-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多