侧边栏壁纸
  • 累计撰写 372 篇文章
  • 累计创建 60 个标签
  • 累计收到 109 条评论

目 录CONTENT

文章目录

Linux 环境下 搭建Android SDK 和Android NDK

Z同学
2022-10-26 / 0 评论 / 2 点赞 / 118 阅读 / 1,986 字
温馨提示:
本文最后更新于 2022-10-26,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

1. 介绍

搭建了一个Linux环境的系统,需要将部分应用通过Linux进行编译打包。我们如果要执行这个需求,前提就是Linux环境下配置好Android SDK。之后,再通过Gradle等进行构造就可以了。而这里只是介绍下如何安装SDK环境和NDK环境。

我的测试环境是:Linux ubuntu

不管是什么环境,整体的过程是一样的。我这里介绍一下安装过程吧。

android SDK 和NDK都是免安装的,不管介绍多少总的来说都是三个步骤:

  1. 下载SDK和NDK。(很多安装工具都是在这个步骤上做的集成。没办法,很多时候链接访问超时,版本更新等等)
  2. 解压SDK和NDK。
  3. 配置环境变量。

2. 安装 SDK

通过 wget https://dl.google.com/android/repository/commandlinetools-linux-8512546_latest.zip 命令下当前最新的Linux环境工具。

如果想下载最新的:https://developer.android.google.cn/studio 可以通过官网页面滑动到页面底部。找到Command-line tools only

当我们下载完毕zip 压缩包之后,可以进行解压操作:

root@zy-pc:~/android# jar xvf commandlinetools-linux-8512546_latest.zip

因为我是将该压缩文件下载到了android目录下的。(PS: 这个目录可以通过mkdir 命令进行创建)

这个时候我们就得到了这样的文件:

root@zy-pc:~/android# ls
cmdline-tools  commandlinetools-linux-8512546_latest.zip

其中cmdline-tools文件夹中的目录结构为:

root@zy-pc:~/android/cmdline-tools# ll
total 128
drwxr-xr-x 1 root root    512 Oct 26 14:53 ./
drwxr-xr-x 1 root root    512 Oct 26 14:59 ../
-rw-r--r-- 1 root root 109836 Jan  1  2010 NOTICE.txt
drwxr-xr-x 1 root root    512 Oct 26 14:53 bin/
drwxr-xr-x 1 root root    512 Oct 26 14:53 lib/
-rw-r--r-- 1 root root     84 Jan  1  2010 source.properties

我们要执行sdk下载的命令在cmdline-tools/bin 目录下。

root@zy-pc:~/android/cmdline-tools/bin# ll
total 56
drwxr-xr-x 1 root root  512 Oct 26 14:53 ./
drwxr-xr-x 1 root root  512 Oct 26 14:53 ../
-rw-r--r-- 1 root root 5321 Jan  1  2010 apkanalyzer
-rw-r--r-- 1 root root 5312 Jan  1  2010 avdmanager
-rw-r--r-- 1 root root 5280 Jan  1  2010 lint
-rw-r--r-- 1 root root 5253 Jan  1  2010 profgen
-rw-r--r-- 1 root root 5253 Jan  1  2010 retrace
-rw-r--r-- 1 root root 5309 Jan  1  2010 screenshot2
-rw-r--r-- 1 root root 5319 Jan  1  2010 sdkmanager

我们如果切换到该目录下,直接执行sh sdkmanager --list 会出现错误:

root@zy-pc:~/android/cmdline-tools/bin# sh sdkmanager --list
Error: Could not determine SDK root.
Error: Either specify it explicitly with --sdk_root= or move this package into its expected location: <sdk>/cmdline-tools/latest/
root@zy-pc:~/android/cmdline-tools/bin#

问题很简单, 我们如果要使用该命令的话,要么我们主动将工具的目录结构调整为

<SDK>/cmdline-tools/latest/ 目录结构。 要么就是我们在该命令后面添加上 --sdk_root=路径。如下所示:

root@zy-pc:~/android/cmdline-tools/bin# sh sdkmanager --list --sdk_root=/root/android/sdk/
Warning: Observed package id 'cmdline-tools;7.0' in inconsistent location '/root/android/sdk/tools' (Expected '/root/android/sdk/cmdline-tools/7.0')
Warning: Observed package id 'cmdline-tools;7.0' in inconsistent location '/root/android/sdk/tools' (Expected '/root/android/sdk/cmdline-tools/7.0')
Installed packages:=====================] 100% Computing updates...
  Path              | Version | Description         | Location
  -------           | ------- | -------             | -------
  cmdline-tools;7.0 | 7.0.0   | Android SDK Tools 7 | tools

Available Packages:
  Path                                                                                                                             
     ...后面的内容我就省略了

解释一下上面的这些配置的意思。

我们下载的cmdline-tools只是一个sdk的下载工具。Android 的各个系统版本的sdk很庞大。所以我们先获取的是一个下载工具。之后再根据实际需求下载不同版本的SDK。

而这个下载工具就需要我们配置一个sdk的文件下载目录。给了我们两个选择:

  1. 通过–sdk_root 命令指定一下Android SDK的下载路径。(繁琐,每次执行命令都需要配置这个选项)
  2. 将cmdlise-tools工具调整目录: SDK下载目录/cmdline-tools/latest/ 目录结构。

我们当然是选择第二种模式了。这样简单很多。

调整方法为1.创建一个android/sdk/cmdline-tools/latest的文件目录:

root@zy-pc:~/android/sdk# mkdir cmdline-tools
root@zy-pc:~/android/sdk# ls
cmdline-tools 
root@zy-pc:~/android/sdk# cd cmdline-tools/
root@zy-pc:~/android/sdk/cmdline-tools# mkdir latest
root@zy-pc:~/android/sdk/cmdline-tools# ls
latest

然后就是将我们解压得到的cmdline-tools目录中的数据全部移动到latest文件夹中。

root@zy-pc:~/android# cp -r cmdline-tools/* sdk/cmdline-tools/latest/
root@zy-pc:~/android#

之后我们再执行相关命令就可以正常下载了:

root@zy-pc:~/android/sdk/cmdline-tools/latest/bin# sh sdkmanager --list
[=======================================] 100% Computing updates...
Available Packages:
  Path                                                          

有些Linux版本 是通过 ./sdkmanager 执行命令的。

我们只需要将sh sdkmanager 换为:./sdkmanager 就可以了。后面的内容是一样的。

之后就是根据要求下载SDK了。

例如:安装build-tools 工具: 根据需求,下载不同的版本哦

root@zy-pc:~/android/sdk/cmdline-tools/latest/bin# sh sdkmanager "build-tools;33.0.0" "build-tools;31.0.0" "build-tools;30.0.3" "build-tools;30.0.2"  "build-tools;30.0.0" "build-tools;29.0.3" "build-tools;29.0.2" "build-tools;29.0.1" "build-tools;29.0.0"
"build-tools;28.0.3" "build-tools;28.0.2" "build-tools;27.0.3"

安装:cmake:

root@zy-pc:~/android/sdk/cmdline-tools/latest/bin# sh sdkmanager "cmake;3.6.4111459" "cmake;3.18.1" "cmake;3.10.2.4988404" "cmake;3.22.1"

安装platforms:

root@zy-pc:~/android/sdk/cmdline-tools/latest/bin# sh sdkmanager "platforms;android-21" "platforms;android-22" "platforms;android-23" "platforms;android-24" "platforms;android-25" "platforms;android-26" "platforms;android-27" "platforms;android-28" "platforms;android-29"  "platforms;android-30" "platforms;android-31" "platforms;android-32" "platforms;android-33"

安装platform-tools 工具:

root@zy-pc:~/android/sdk/cmdline-tools/latest/bin# sh sdkmanager "platform-tools"

执行命令后,在输出的 Accept 确认中,输入 y 就会进行安装了。

Accept? (y/N): y

2.1 配置到环境变量(可选)

将我们的sdk的路径配置到环境变量中。这个根据大家的实际需求配置。并不一定要配置到环境变量中。

root@zy-pc:~/android# export ANDROID_HOME=/root/android/sdk
root@zy-pc:~/android# export PATH=$ANDROID_HOME/platform-tools:$ANDROID_HOME/tools:$ANDROID_HOME/tools/bin:$PATH
root@zy-pc:~/android# source /etc/profile

2.2 卸载 SDK

我们如果安装的工具太多了。或者platforms版本过时我们想卸载。可以通过: --uninstall 进行卸载操作。

root@zy-pc:~/android/sdk/cmdline-tools/latest/bin# sh sdkmanager --uninstall "platform-tools"

3. 安装NDK

有两种安装方式,一种是通过sdkmanager工具进行安装:

root@zy-pc:~/android/sdk/cmdline-tools/latest/bin# sh sdkmanager  "ndk;16.1.4479499"
   "ndk;17.2.4988734" "ndk;18.1.5063045" "ndk;19.2.5345600" "ndk;20.0.5594570" "ndk;20.1.5948944" "ndk;21.0.6113669" "ndk;21.1.6352462" "ndk;21.2.6472646" "ndk;21.3.6528147" "ndk;21.4.7075529" "ndk;22.0.7026061" "ndk;22.1.7171670" "ndk;23.0.7599858" "ndk;23.1.7779620" "ndk;23.2.8568313" "ndk;24.0.8215888" "ndk;25.0.8775105" "ndk;25.1.8937393"

上面是列出了,可以通过sdkmanager进行下载的全部ndk工具。大家基于

该文件下载完毕后,会在android/sdk/ndk 文件夹中出现。 和我们通过其他手段下载的ndk 是一样的。

然后配置以下环境变量就可以了:

root@zy-pc:~/android# export NDK_HOME=/root/android/sdk/ndk/21.4.7075529
root@zy-pc:~/android# export PATH=$PATH:$NDK_HOME
root@zy-pc:~/android# source /etc/profile

就可以通过ndk命令进行操作了。

2

评论区