Android Gradle復制打包的apk到固定目錄

fldm 10年前發布 | 48K 次閱讀 Android開發 移動開發

來自: http://blog.csdn.net//guijiaoba/article/details/42655437


最近項目開發工具由原先的Eclipse轉移到Android Studio,原先的打包工具由ant轉化到gradle。

原先寫過用python重名多渠道打包的apk,現在由于使用的時Android Studio,項目編譯使用的時Gradle,同事Gradle是基于Groovy的,反正也是一種類似Pythong的腳本語言。

這個語言是基于Jvm的,就是說,你開發的Java程序完全可以在這個上面跑,同時可以在gradle中編寫Java代碼。


項目中apk編譯生成的apk存放的目錄在

${Project}/app/build/outputs/apk

中,而且我使用還是mac系統,在Android studio中完全看不到這個目錄,每次去獲取apk的時候,非常麻煩,所以我寫了下面的腳本,自動復制和重名生成的apk。

命名格式如下所示,

 // eg: org.liushui.test_v1.0.20_20150107151516_realse_site.apk

String appName = String.format("%s_v%s_%s_%s_%s.apk", applicationId, versionName, time, buildType, channel);


如果你會Java的話,那么上面的代碼則是很容理解的。

下面是主要的腳本,放到${Project}/app/build.grale中即可。

apply plugin: 'com.android.application'


android {
    // ***
}

dependencies {
    // *****
}
/// **********************下面的代碼才是最主要的*************************
build {
    doLast {
        def fileName = "app-release.apk"
        def fromFile = "./build/outputs/apk/" + fileName
        def intoFile = "./outapks/"


        def applicationId = android.defaultConfig.applicationId
        def versionName = android.defaultConfig.versionName
        def time = new java.text.SimpleDateFormat("yyyyMMddHHmmss").format(new Date())
        def buildType = "realse"
        def channel = "site"


        def appName = "${applicationId}_v${versionName}_${time}_${buildType}_${channel}.apk"


        // copy --> rename
        copy {
            from fromFile
            into intoFile


            rename {
                appName
            }
        }


        println("=====================build.doLast success.=========================")
    }
}


 本文由用戶 fldm 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!