Android Gradle 项目构建命令合集
一、Gradle 介绍
1.1 关于 Gradle
Gradle 是一个开源的自动化构建工具,用于构建、测试和部署软件。它基于 JVM 运行,可以构建几乎任何类型的软件,包括 Android 应用程序、Web 应用程序、Java 应用程序等。
官网:https://gradle.org/
Gradle 的配置文件是使用 Groovy
语言编写的。Groovy 是一种基于 Java 的动态语言,具有丰富的语法和功能。
Gradle 的依赖管理是基于 Apache Ivy 的。Apache Ivy 是一个开源的依赖管理工具,可以从中央仓库或本地仓库下载依赖项。
Gradle 支持多种构建类型,包括:
- 标准构建:这是最常用的构建类型,用于构建普通的软件项目。
- 持续集成:用于构建软件项目并将其部署到测试环境或生产环境。
- 多项目构建:用于构建多个相关的软件项目。
Gradle 是目前最流行的构建工具之一。它具有灵活性、可扩展性和可重用性等特点,可以满足各种构建需求。
1.2 Gradle 主要特点
- 灵活性:Gradle 提供了丰富的配置选项,可以满足各种需求。
- 可扩展性:Gradle 可以通过插件扩展功能。
- 可重用性:Gradle 的任务可以重复使用,提高了构建效率。
1.3 Gradle 构建流程
-
初始化:Gradle 会初始化构建环境,包括加载配置文件、解析依赖关系等。
-
配置:Gradle 会根据配置文件配置构建任务。
-
执行:Gradle 会根据配置执行构建任务。
-
清理:Gradle 会清理构建生成的文件。
二、Gradle 命令
2.1 Gradle 编译命令
这是一些常见的 Gradle 命令,Gradle 支持更多的任务和选项。可以根据项目的需求,通过组合这些基本命令或使用更详细的配置来满足特定的构建和管理需求。
-
构建项目:
./gradlew build
这个命令会编译并打包整个项目。
-
运行项目:
./gradlew run
这个命令会编译并运行包含主类的应用程序。
-
清理构建目录:
./gradlew clean
这个命令会删除构建目录,清理所有生成的文件。
-
生成 IDEA 项目文件:
./gradlew idea
这个命令会生成 IntelliJ IDEA 的项目文件。
-
生成 Eclipse 项目文件:
./gradlew eclipse
这个命令会生成 Eclipse 的项目文件。
-
查看项目依赖关系:
./gradlew dependencies
这个命令会列出项目的依赖关系。
-
运行单元测试:
./gradlew test
这个命令会运行项目的单元测试。
-
构建并发布到本地 Maven 仓库:
./gradlew publishToMavenLocal
这个命令会构建项目并将构建产物发布到本地 Maven 仓库。
-
自定义任务:
./gradlew <taskName>
这个命令会运行指定名称的 Gradle 任务。
-
查看 Gradle 版本:
./gradlew -v
这个命令会显示当前项目使用的 Gradle 版本以及其他相关信息。
2.2 Gradle 编译APK命令
在 Gradle 中,生成 APK 文件的命令通常包括构建和打包过程。以下是一些常见的 Gradle 命令,用于编译和生成 APK 文件,命令中的 app
是指项目的模块名称,具体的模块名称可能会有所不同,你需要替换 app
为你实际的模块名称。
-
构建并生成 Debug APK:
./gradlew assembleDebug
这个命令会执行 Debug 构建并生成 Debug 版本的 APK 文件。APK 文件通常位于项目的
build/outputs/apk/debug/
目录中。这是默认情况下的路径,具体路径可能会因项目结构或 Gradle 配置的不同而有所变化。 -
构建并生成 Release APK:
./gradlew assembleRelease
这个命令会执行 Release 构建并生成 Release 版本的 APK 文件。APK 文件通常位于项目的
build/outputs/apk/release/
目录中。 -
构建并生成所有 Variants 的 APK:
./gradlew assemble
这个命令会构建并生成所有变体(包括 Debug 和 Release)的 APK 文件。
-
仅构建并不生成 APK:
./gradlew build
这个命令会构建项目,但不会生成 APK 文件。如果只需要编译而不生成 APK,可以使用这个命令。
-
安装 Debug 版本的 APK:
./gradlew installDebug
这个命令会构建 Debug 版本的 APK 并安装到连接的设备或模拟器上。
-
卸载 Debug 版本的 APK:
./gradlew uninstallDebug
这个命令会卸载已安装的 Debug 版本的 APK。
-
显示构建类型和产品变体:
./gradlew app:tasks --all
这个命令会列出所有可用的任务,包括构建类型和产品变体。 也可以在Gradle侧边栏查看所有任务:
-
构建单个module:
./gradlew :your_module_name:task_name
这个命令会构建单个module,例如:
gradlew :app:assembleRelease
-
显示 Gradle 依赖关系:
./gradlew app:dependencies
这个命令会显示项目的 Gradle 依赖关系。
2.3 应用构建的其他工具及其命令
使用 zipalign 对齐未签名的 APK
zipalign -v -p 4 my-app-unsigned.apk my-app-unsigned-aligned.apk
zipalign 可以确保所有未压缩数据的开头均相对于文件开头执行特定的字节对齐,从而减少应用占用的 RAM 量。
通过 apksigner 使用您的私钥为 APK 签名
apksigner sign --ks my-release-key.jks --out my-app-release.apk my-app-unsigned-aligned.apk
用存储在单个密钥库文件 my-release-key.jks 中的私钥和证书为 APK 签名后,将以 my-app-release.apk 的形式输出已签名的 APK。
验证签名
apksigner verify my-app-release.apk
查看 APK 签名命令
keytool -list -printcert -jarfile app-relase-.apk
查看apk 的 MD5、SHA1、SHA256 信息
① keytool -printcert -jarfile D:\a.apk
(-jarfile 后面拼接 apk文件路径)
② 看 dos 窗口的 证书指纹 即可看到 MD5、SHA1、SHA256
查看 签名文件(.jks 或 .keystore 文件)的 MD5、SHA1、SHA256 信息
① keytool -list -v -keystore D:\a.jks -storepass pw123456
(-keystore 后面拼接 签名文件路径,-storepass 后面拼接 签名文件的密码)
② 看 dos 窗口的 证书指纹 即可看到 MD5、SHA1、SHA256
1、查看 keystore
$ keytool -list -keystore debug.keystore
2、查看三方应用或是系统应用签名
用解压工具解压apk,将其中META-INF文件夹解压出来,得到其中的CERT.RSA文件
$ keytool -printcert -file META-INF/CERT.RSA
生成私钥
keytool -genkey -v -keystore my-release-key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias my-alias
生成一个名为 my-release-key.jks 的密钥库文件,并将其保存在当前目录中。
查看签名的信息
keytool -v -list -keystore ******.jks