—————–2025.06.11补充———————————-
很遗憾,经过实操,我发现在linux+arm64的环境中,(几乎)没办法编译安卓程序。理由如下
- android studio不支持linux+arm64,我们确实可以使用gradle通过命令行直接编译,但是编译过程中,android sdk的build-tools中有一些工具也是不支持linux+arm64的,当gradle在编译和打包的过程中调用这些工具时,它们就会报错,比如aapt2就会最先报错。它报这个格式错误,就是因为aapt2这个应用在arm架构下不是有效的可执行文件。
- 当你在终端执行,file attpt2这条命令,你会发现,attpt2其实是一个x-86架构的应用程序。
- 查询一下很容易发现,2022年就有人给谷歌提了需求,要求把arm64架构全面的支持起来,结果直到最近这个问题都没有解决。大家纷纷留言表示现在云端服务器和笔记本的cpu都越来越多的采用arm架构,谷歌应该尽快满足开发者在arm架构下编译和打包安卓apk的需求。
—————–2025.06.11补充———————————-
——–以下为文章原文————————————————————————————————————————————————-
当谷歌推出Gradle和Android Studio时,他们心中有一些目标。。。。。最重要的是,他们想要良好的IDE集成,但是不让构建系统依赖于IDE。从命令行或在持续集成服务器上运行Gradle将始终产生与从Android Studio运行构建相同的结果。
前言
无论是否安装Android Studio,编译安卓程序都需要gradle,javaSDK和Android SDK。Android Studio为安装这些工具提供了入口和界面,本文主要分享,在没有Android Stuido的情况下如何安装javaSDK和Android SDK。
为什么不安装android stuido
对于安卓开发来说,有些场景是没法安装Android Studio的,比如
- 在持续集成服务器上打包安卓程序(没有桌面环境)
- 在Android Studio不支持的环境中做安卓开发
比如Android Studio不支持linux+arm64,而你的笔记本恰好是这种配置,在这种配置下做安卓开发,虽然有桌面环境,你还是没法安装android studio。
不安装adnroid stuido如何编译安卓程序
android studio调用gradle编译安卓代码,没有android studio你仍然可以用gradle编译安卓代码。
使用gradle编译安卓代码,你需要提前安装java SDK和android SDK,有点反直觉的是,你可以不用提前安装gradle。
- java SDK你可以到官网下载,直接解压缩后,配置好环境变量即可使用
- android SDK,谷歌相当贴心的提供了command line tools(打开链接一直向下滑,一直向下滑,滑到页面最下方,你就可以找到commandlietools的下载地址了,谷歌把它隐藏的这么深,还是想让大家安装android studio啊。)如何使用command line tools呢?在它的下载链接旁边你会看到这样一句话
如果您不需要 Android Studio,可以从上面下载基本的 Android 命令行工具。您可以使用随附的
sdkmanager
下载其他 SDK 软件包
它的意思是command line tools是一个文件夹,里面有个工具叫sdkmanager,用它可以很轻松的下载到android SDK所需要的软件包。一个需要特别注意的点是,下载最新的command line tools它里面的sdkmanager才能下载到最新的android sdk。
- gradle,编译安卓程序你可以不用提前安装gradle,安卓项目中会自带gradle包装器(gradle wrapper)。当你在安卓项目根目录,执行./gradlew assembleDebug,编译安卓程序的时候,gradlew会首先去下载与项目匹配的gradle,并使用这个版本的gradle去编译安卓程序。
值得注意的是gradle的下载非常的慢(网络原因你懂的),我建议你需要换成国内的源去下载。
如何换源?在你安卓项目的根目录下,找到gradle->gradle-wrapper.properties(下边有一个该文件的样例)把其中distributionUrl这个字段中的地址换成国内源,就可以很快下载到合适的gradle了,解压即可使用。所以我在前文说,你并不需要自己事先去安装gradle。
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.4-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists