Gradlew是一个脚本文件,它允许你在没有全局安装Gradle的情况下运行Gradle构建。这个脚本在多平台上可用,对于Windows系统来说是gradlew.bat文件,而对于Unix、Linux和macOS系统来说则是gradlew脚本文件。
在Android Studio中,你可以通过以下命令执行项目的构建过程:
1. `./gradlew build`:这个命令会执行项目的构建过程,包括编译代码、运行测试等。
2. `./gradlew tasks`:显示项目中所有可用的Gradle任务。
3. `./gradlew clean`:清除之前的构建输出,如编译后的类文件、JAR文件等。
4. `./gradlew assembleDebug`:可以指定要运行的具体任务,例如assembleDebug用于构建调试版本的应用。
5. `./gradlew build --offline`:在没有网络连接的情况下使用缓存中的依赖项来构建项目。
要在命令行下进入Android Studio工程目录,请执行以下操作:
1. 打开命令行工具(如Windows下的cmd或PowerShell,macOS和Linux下的Terminal)。
2. 使用`cd`命令切换到Android Studio工程目录。例如:`cd /path/to/your/android-studio-project`。
3. 在工程目录下,直接输入`./gradlew build`即可进行项目的构建过程,包括编译代码、运行测试等。但是因为它包含的内容比较多,可能在Android Studio中能编译过的项目用指令后就出错了。
```sh
#!/bin/bash
# sign_apk.sh
# 编译debug版本的apk
./gradlew :app:lintDebug
if [ $? -ne 0 ]; then
echo "Lint failed, please fix the issues identified by lint or create a baseline to see only new errors."
exit 1
fi
./gradlew :app:assembleDebug
if [ $? -ne 0 ]; then
echo "Build failed for task ':app:lintDebug'."
exit 1
fi
echo "Compiled debug version of the app successfully."
# 编译release版本的apk
./gradlew :app:lintRelease
if [ $? -ne 0 ]; then
echo "Lint failed, please fix the issues identified by lint or create a baseline to see only new errors."
exit 1
fi
./gradlew :app:assembleRelease
if [ $? -ne 0 ]; then
echo "Build failed for task ':app:lintRelease'."
exit 1
fi
echo "Compiled release version of the app successfully."
# 对apk进行签名
APK_PATH="app/build/outputs/apk/release/app-release.apk"
SIGNATURE_PATH="/Users/temp/Library/Android/sdk//build-tools/30.0.2/apksigner"
KEY_STORE_PATH="your_keystore_path"
KEY_STORE_PASSWORD="your_keystore_password"
ALIAS="your_alias"
OUT_APK="signed_app.apk"
$SIGNATURE_PATH sign --ks $KEY_STORE_PATH --ks-key-alias $ALIAS --ks-pass pass:$KEY_STORE_PASSWORD --key-pass pass:$KEY_STORE_PASSWORD --out $OUT_APK $APK_PATH
echo "Signed the app successfully and saved as $OUT_APK."
```
```bash
#!/bin/bash
ANDROID_SDK=/Users/temp/Library/Android/sdk
echo $#
function usage {
echo "$0 keystore alis pass apk"
}
if [ $# -ne 4 ]; then
usage
exit
fi
key=$1
alis=$2
pass=$3
apk=$4
echo "apksigner.jar sign --ks $key --ks-key-alias $alis --ks-pass pass:$pass --key-pass pass:$pass --out sign.apk $apk"
java -jar $ANDROID_SDK//build-tools/30.0.2/build-tools/30.0.2/apksigner sign --ks $key --ks-key-alias $alis --ks-pass pass:$pass --key-pass pass:$pass --out sign.apk $apk
```
签名文件是debug.keystore,别名是alias_name,密码是mypass,要签名的apk是app/build/intermediates/apk/debug/app-debug.apk。则对其签名命令如下:
```bash
~/Downloads/sign_apk.sh ./debug.keystore alias_name mypass .//app/build/intermediates/apk/debug/app-debug.apk
```