通过命令行构建 Android Studio 应用程序

我想构建一个 Android Studio 应用程序(Gradle 构建系统) ,但是我想通过命令行来完成。

200041 次浏览

Android Studio 会自动在项目的根目录中创建一个 包装纸,这就是它调用 Gradle 的方式。这个包装器基本上是一个脚本,它调用实际的 Gradle 二进制文件,并允许您使 Gradle 保持最新,这使得使用版本控制更加容易。要运行 Gradle 命令,只需使用项目根目录(或 Windows 上的 gradlew.bat)中的 gradlew脚本,后面跟着要运行的任务的名称。例如,要构建 Android 应用程序的调试版本,可以从存储库的根运行 ./gradlew assembleDebug。在默认的项目设置中,生成的 apk 可以在 app/build/outputs/apk/app-debug.apk中找到。在 * nix 机器上,如果它不存在,也可以运行 find . -name '*.apk'来查找它。

试试这个(仅限 OS X) :

brew install homebrew/versions/gradle110
gradle build

您可以使用 gradle tasks查看当前项目的所有可用任务。这里不需要 Android Studio

有两种构建类型可以使用 Gradle 构建设置来构建应用程序: 一种用于调试应用程序ーー调试ーー,另一种用于构建用于发布ーー发布模式的最终包。

以调试模式构建

  • 首先使用 CMD 导航到 Android 工作室项目 Root 文件夹 enter image description here

  • 运行此命令 < strong > gradlew.bat Assembly bleDebug

  • 输出窗口如下所示 enter image description here

在发布模式下构建签名的 apk

  • 编辑 build.gradle 文件,以发布模式构建项目:

     android {
    ...
    defaultConfig { ... }
    signingConfigs {
    release {
    storeFile file("myreleasekey.keystore")
    storePassword "password"
    keyAlias "MyReleaseKey"
    keyPassword "password"
    }
    }
    buildTypes {
    release {
    ...
    signingConfig signingConfigs.release
    }
    }}
    

enter image description here

  • 运行这个命令 毕业生,蝙蝠集合,释放

从命令行为 Linux 上的 Android Studio 项目运行 Gradle 的备忘录:

cd <project-root>
./gradlew
./gradlew tasks
./gradlew --help

应该可以让你开始. 。

你可能在这里,因为你想安装它了!

建造

gradlew

(在 Windowsgradlew.bat上)

然后安装

adb install -r exampleApp.apk

(-r使其替换现有的副本,如果在模拟器上安装,则添加 -s)

意外收获

我在 ~/.bash_profile中设置了一个别名,使其成为一个2char 命令。

alias bi="gradlew && adb install -r exampleApp.apk"

(生成和安装的简称)

对于 Mac 使用这个命令

  ./gradlew task-name

只对 MAC 用户开放

扩展 维吉的答案。

循序渐进的程序:

  1. 打开终端
  2. 将目录更改为您的项目(cd PathOfYourProject)
  3. 复制并粘贴此命令,然后按回车键:

    chmod +x gradlew
    
  4. As Vji suggested:

    ./gradlew task-name
    

    - 别忘了加上-在 Gradlew 之前

为这些答案增加价值,

许多人要求在 AVD 中运行应用程序的命令后构建成功。

adb install -r {path-to-your-bild-folder}/{yourAppName}.apk

1. 安装 Gradle 和 Android SDK

都行

  • 按照您认为合适的方式安装这些
  • 在 Windows 上运行 ./gradlewgradlew.bat
    • 可能需要 chmod +x ./gradlew

从这一点开始,gradle指的是无论你选择哪种方式运行 Gradle。 相应地替换。

2. 安装 Android SDK

  • 如果手动安装了 SDK

    • export ANDROID_HOME=<install location>
    • 如果它不是自动完成的,你可能想把它放在你的 ~/.profile
  • 接受许可证: yes | sdkmanager --licenses

    • sdkmanager可以在 $ANDROID_HOME/tools/bin中找到
    • sdkmanager可能必须作为 root 用户运行
  • 试试运行 gradle

    • 如果有关于未找到许可证或 SDK 的投诉,请修复 目录权限
      • chown -R user:group $ANDROID_HOME
      • 如果您是鲁莽的和/或唯一的用户: chmod 777 -R $ANDROID_HOME

3. 建筑物

  • gradle tasks列出了所有可以运行的任务
  • :app:[appname]是所有任务的前缀,您将在“分级”中看到它 当你建造的时候
    • 在运行任务时可以排除这种情况

一些重要的任务

  • 构建应用程序的所有变体
    • 结果.apks 位于 app/[appname]/build/outputs/apk/[debug/release]
  • gradle assembleDebugassembleRelease: 只构建调试版本或发布版本
  • 构建 gradle installDebuginstallRelease并安装到附加设备
    • 安装了 Adb
    • 附加一个启用 USB 调试和 USB 文件传输的设备
    • 运行 adb devices,检查设备是否列出,装置是否列出 在它旁边

根据更改自动生成和安装

这样可以避免不断地运行相同的命令

gradle -t --continue installDebug
  • -t: 又名 --continuous,在文件更改后自动重新运行任务
  • --continue: 在错误发生后继续。防止在错误发生时停止

运行 gradle -h寻求更多帮助

创建脚本文件,使用以下 gradle 和 adb 命令,执行脚本文件

./gradlew clean

./gradlew 程序集 Debug ./gradlew installDebug

Adb shell am start-n applicationID/启动程序活动的完整路径

官方文件如下:

若要生成调试 APK,请打开命令行并导航到项目目录的根目录。要启动调试构建,请调用 assembleDebug任务:

gradlew assembleDebug

这将在 project_name/module_name/build/outputs/apk/中创建一个名为 module_name-debug.apk的 APK。

注意,你也可以在 Android Studio 中通过点击“渐变”窗口,然后点击“大象”按钮来完成。这将打开一个名为“ run anything”的新窗口(也可以通过在“ search where”中搜索该名称来找到) ,在这个窗口中你可以手动键入任何你想要的 gradle 命令。不是“非常”命令行,但通常比 Windows 命令行提供更多我需要的东西。

这允许你给分级任务等提供可选的参数。

我面临着同样的问题,似乎有很多变化的谷歌。

我可以告诉您从头开始纯粹通过命令行安装的步骤。 我在2021年2月22日在 Ubuntu 上测试了它。

创建 sdk 文件夹

export ANDROID_SDK_ROOT=/usr/lib/android-sdk
sudo mkdir -p $ANDROID_SDK_ROOT

安装 openjdk

sudo apt-get install openjdk-8-jdk

下载安卓系统软件开发工具包

访问 < a href = “ https://developer.android.com/Studio/index.html”rel = “ norefrer”> https://developer.android.com/studio/index.html 然后下到命令行工具 点击 Linux 链接,接受协议,而不是下载右键单击并复制链接地址

cd $ANDROID_SDK_ROOT
sudo wget https://dl.google.com/android/repository/commandlinetools-linux-6858069_latest.zip
sudo unzip commandlinetools-linux-6858069_latest.zip

移动文件夹

将解压缩目录从 cmdline-tools 重命名为 tools, 并将其放在 $ANDROID _ SDK _ ROOT/cmdline-tools 下, 所以现在看起来应该像: $ANDROID _ SDK _ ROOT/cmdline-tools/tools。 在它里面,应该有: NOTICE.txt bin lib source. properties。

设定路线

PATH=$PATH:$ANDROID_SDK_ROOT/cmdline-tools/latest/bin:$ANDROID_SDK_ROOT/cmdline-tools/tools/bin

这对我没有影响,因此我采取了下一步行动

浏览到 sdkmanager

cd $ANDROID_SDK_ROOT/cmdline-tools/tools/bin

接受许可证

yes | sudo sdkmanager --licenses

创建构建

最后,在项目中运行此命令

chmod 777 gradlew
sudo ./gradlew assembleDebug

这将在//build/output/APK/debug 创建一个名为-debug. APK 的 APK 文件已经用调试键签名,并与 zipalign 对齐, 所以你可以马上把它安装到设备上。

最后一步

下面是最后的步骤。使用这些内容创建2.sh 文件。在这两个文件之前使用 chmod 777。不需要 sudo。

下载 _ APK _ Code _ NOSUDO4. sh

# Don't forget to do chmod 777 Download_APK_Code_NOSUDO2.sh
#!/bin/bash


if [ -d "camera-samples" ]; then
echo "############################# Deleting older code base.      ######################################"
rm -rf camera-samples
fi


echo "###########################     Download Source Code: Start ... #####################################"
git clone git://git.quicinc.com/camera-samples -b iot-concam-apk.lnx.1.1
echo "##########################      Download Source Code: Done . . . ####################################"

Build _ App _ NOSUDO4. sh

# Don't forget to do chmod 777 Build_App_NOSUDO2.sh
#!/bin/bash


currentDir=$(pwd)
export ANDROID_SDK_ROOT=$(pwd)


# echo "############################################   Install JDK ...  ################################################"
# apt-get install openjdk-8-jdk


if [ -e "commandlinetools-linux-6858069_latest.zip" ]; then
echo "############################# Deleting older zip file.      ######################################"
rm -rf commandlinetools-linux-6858069_latest.zip
fi
echo "###########################################   Download Command Line Tools .. ###################################"
wget https://dl.google.com/android/repository/commandlinetools-linux-6858069_latest.zip
echo "###########################################   Download Command Line Tools Done .. ##############################"


if [ -d "cmdline-tools" ]; then
echo "############################# Deleting older cmdline-tools.      ######################################"
rm -rf cmdline-tools
fi
echo "###########################################   Unzip Command Line Tools Start .. #################################"
unzip commandlinetools-linux-6858069_latest.zip
echo "###########################################   Unzip Command Line Tools Done .. #################################"




echo "###########################################   Creating Directory Structure .. #################################"
mv cmdline-tools tools
mkdir cmdline-tools
cp -r  tools cmdline-tools/
rm -rf tools/




PATH=$PATH:$ANDROID_SDK_ROOT/cmdline-tools/latest/bin:$ANDROID_SDK_ROOT/cmdline-tools/tools/bin
echo "##########################################   Updated Path : $PATH ###############################################"


cd $ANDROID_SDK_ROOT/cmdline-tools/tools/bin


echo "##########################################   Accept All Licenses .. #############################################"
yes | sdkmanager --licenses


cd $currentDir/camera-samples/Camera2Video
echo "sdk.dir = $ANDROID_SDK_ROOT" > local.properties


echo "########################################     Building APK . . . #################################################"
chmod 777 gradlew
./gradlew assembleDebug
echo "#######################################      Building APK Done. . .  ############################################"


echo "##################################### APK generated here:  $currentDir/app/build/outputs/apk/debug/app-debug.apk ###################################"
##########################################################

运行这些命令。

chmod 777 Download_APK_Code_NOSUDO4.sh
chmod 777 Build_App_NOSUDO4.sh
./Download_APK_Code_NOSUDO4.sh
./Build_App_NOSUDO4.sh

参考文献

Https://gist.github.com/guipmourao/3e7edc951b043f6de30ca15a5cc2be40

Android 命令行工具 sdkmanager 总是显示: 警告: 无法创建设置

“由于部分许可证未被接受,未能安装以下 Android SDK 软件包”错误

Https://developer.android.com/studio/build/building-cmdline#sign_cmdline

///////////////////////////////////

窗户

以下是通过 Powershell 实现 Windows 操作系统的步骤,测试于2021年3月6日,你可以完全从头开始。

先决条件

  1. 下载 git
  2. 安装 JDK。我使用的是 JDK-8u281-windows-x64. exe

用这些内容创建一个文件 DownloadAndBuild.ps1。


$location = Get-Location


if (Test-Path "$location\camera-samples") {
Write-Host "########################### Deleting older code base: Start. ################################"
Remove-Item -Force -Recurse -Path "$location\camera-samples"
Write-Host "########################### Deleting older code base: Done. #################################"
}
Write-Host "########################## Download Source Code: Start. #####################################"
git clone https://source.codeaurora.org/quic/la/camera-samples -b iot-concam-apk.lnx.1.1
Write-Host "########################## Download Source Code: Done. ####################################"




if (Test-Path "$location\commandlinetools-win-6858069_latest.zip") {
Write-Host "########################### Deleting older zip file: Start. ################################"
Remove-Item -Force -Recurse -Path "$location\commandlinetools-win-6858069_latest.zip"
Write-Host "########################### Deleting older zip file: Done. #################################"
}
Write-Host "########################## Download Command Line Tools: Start. #####################################"
$client = new-object System.Net.WebClient
$client.DownloadFile("https://dl.google.com/android/repository/commandlinetools-win-6858069_latest.zip","commandlinetools-win-6858069_latest.zip")
Write-Host "########################## Download Command Line Tools: End. #####################################"


if (Test-Path "$location\cmdline-tools") {
Write-Host "########################### Deleting older folder: Start. ################################"
Remove-Item -Force -Recurse -Path "$location\cmdline-tools"
Write-Host "########################### Deleting older folder: Done. #################################"
}
Write-Host "########################## Extract Command Line Tools: Start. #####################################"
Expand-Archive "$location\commandlinetools-win-6858069_latest.zip" -DestinationPath "$location"
Write-Host "########################## Extract Command Line Tools: End. #####################################"






Write-Host "########################## Create Directory Structure: Start. #####################################"
Rename-Item -Path "$location\cmdline-tools" -newName "$location\tools"
New-Item -ItemType Directory -Force -Path "$location\cmdline-tools"
Move-Item -Path "$location\tools" -Destination "$location\cmdline-tools"
Write-Host "########################## Create Directory Structure: End. #####################################"


Write-Host "########################## Accept Licenses: Start. #####################################"
Set-Location -Path $location/cmdline-tools/tools/bin
for($i=0;$i -lt 100;$i++) { $response += "y`n"}; $response | ./sdkmanager.bat --licenses
Write-Host "########################## Accept Licenses: End. #####################################"




Write-Host "########################## Build APK: Start. #####################################"
Set-Location -Path $location/camera-samples/Camera2Video
$Env:ANDROID_SDK_ROOT = $location
.\gradlew assembleDebug
Write-Host "########################## Build APK: End. #####################################"


Write-Host "##################################### APK generated here:  $location/camera-samples/Camera2Video/app/build/outputs/apk/debug/app-debug.apk ###################################"
PAUSE

右击并通过 Powershell 运行。 这将通过 git 下载一个 Android 项目,安装 SDK 并构建 Android 应用程序。

根据你的方便来编辑。

MacOS 变种

./gradlew <moduleName>:assemble<build_variant>
//e.g
./gradlew <moduleName>:assembleDebug

* abc 0代表工作目录

[更多信息]