关于APP的打包,我们常用的有:
1.使用gradle命令打包
2.使用gradlew命令打包
3.使用AndroidStudio自带工具打包
那么,你有没有考虑过这三种方式的区别呢?我就给大伙简单介绍下吧。
1.使用gradle命令打包。
在cmd控制台或者AndroidStudio的Terminal使用gradle命令打包的话,需要在环境变量里配置gradle路径和ANDROID_HOME(SDK路径),这样 的话,使用gradle命令进行assemble打包,我们使用到的Gradle工具就是环境变量配置路径里的Gradle工具了。
2.使用gradlew命令打包
重点说下在项目目录下,使用gradlew命令打包。gradlew即gradle-wrapper就是Gradle的封装类,这能方便我们在不使用开发工具的情况下,也能对项目进行Gradle打包。gradlew命令使用到的Gradle工具放在C:\Users\用户名\.gradle\wrapper目录下,当你用Studio打开新项目时,如果此项目用到的gradle-wrapper版本是之前你没使用过的话,那么就会去下载此版本的gradle-wrapper,并保存到C:\Users\用户名\.gradle目录下,当然,下载的前提是你的开发工具Gradle配置不能使用离线版本。如下图的offline work不能被勾上。
自动下载完后,我们可以查看到C:\Users\用户名\.gradle\wrapper目录下,已经有你需要的版本了,如下图。
下载完后,用于存放的目录命名规则为(以2.14.1-all为例):
wrapper/dists/gradle-2.14.1-all/${base36}/gradle-2.14.1-all.zip
wrapper/dists/gradle-2.14.1-all/${base36}/gradle-2.14.1-all.zip.lck
wrapper/dists/gradle-2.14.1-all/${base36}/gradle-2.14.1-all.zip.ok
其中,base36的规则为:
从gradle/wrapper/gradle-wrapper.properties中得到distributionUrl,即https://services.gradle.org/distributions/gradle-2.14.1-all.zip,注意文件中的\不算。对distributionUrl计算md5。例如printf “https://services.gradle.org/distributions/gradle-2.14.1-all.zip” | md5 得到8c9a3200746e2de49722587c1108fe87。利用0x8c9a3200746e2de49722587c1108fe87构造一个uint 128位整数。将整数利用base36得到base36的值(取小写)。如2.14.1-all的base36值为8bnwg5hd3w55iofp58khbp6yv。
3.使用AndroidStudio自带工具打包
当我们使用AndroidStudio右侧gradle菜单栏打包或者install-run的时候,使用到的Gradle工具其实是在AndroidStudio安装目录\gradle目录下的Gradle工具,这是我们下载AndroidStudio时默认放在AndroidStudio下的Gradle工具,这是方便,即使在打开新项目时,Gradle工具下载失败了,也能通过install-run或右侧gradle菜单栏打包等方式运行项目。
总结:
1.使用gradle命令打包(gradle工具路径为环境变量里配置的路径)
2.使用gradlew命令打包(gradle工具路径在C:\Users\用户名\.gradle\wrapper目录下)
3.使用AndroidStudio自带工具打包(radle工具路径在AndroidStudio安装目录\gradle目录下)