2025年10月

写在最前,安装完cmdline-tools 一定要同意license 才能正常使用

   yes | ${sdk}/cmdline-tools/latest/bin/sdkmanager --licenses

首先进入android studio 官网

在国内的话,访问cn域名可以明显方便很多

https://developer.android.google.cn/develop?hl=zh-cn

并找到命令行工具的部分

https://developer.android.google.cn/studio?hl=zh-cn 下滑找到 仅限命令行工具

可以看到 Windows, macOS, Linux的选项,点击其中一个并且确认勾选进行下载

下载连接如:

https://googledownloads.cn/android/repository/commandlinetools-linux-13114758_latest.zip

下载完毕后,解压至 ~/cmdline_tools

这个包就是SDK,只是命名不同,重新修改命名即可


一个能够用于安卓编译的SDK目录应该如下:

(base) casdon@mac ~ % ls /Users/casdon/Library/Android/sdk 
build-tools cmdline-tools   fonts       ndk     platforms   sources
cmake       emulator    licenses    platform-tools  skins       system-images

上面的下载包只能是 cmdline-tools 所以官网的相关内容也是有问题的:

sdkmanager
sdkmanager 是一个命令行工具,您可以用它来查看、安装、更新和卸载 Android SDK 的软件包。如果使用 Android Studio,则无需使用此工具,而可以从 IDE 管理 SDK 软件包。

sdkmanager 工具在 Android SDK 命令行工具软件包中提供。如需使用 SDK 管理器安装某个版本的命令行工具,请按以下步骤操作:

从 Android Studio 页面下载最新的命令行工具软件包,然后提取该软件包。
将解压缩的 cmdline-tools 目录移至您选择的新目录,例如 android_sdk。这个新目录就是您的 Android SDK 目录。
在解压缩的 cmdline-tools 目录中,创建一个名为 latest 的子目录。
将原始 cmdline-tools 目录内容(包括 lib 目录、bin 目录、NOTICE.txt 文件和 source.properties 文件)移动到新创建的 latest 目录中。现在,您就可以从这个位置使用命令行工具了。

使用sdkmanager来安装对应的sdk

首先进入

cd ~/
mkdir -p Android/sdk/cmdline-tools/latest

将上一下载的 cmdline-tools 放置到 Android目录下

mv ~/cmdline_tools/* ~/Android/sdk/cmdline-tools/latest

随后使用 cmdline-tools中的 sdkmanager来安装完整的sdk,特别是编译C/CPP JNI的库,一定要安装NDK

我们以以下几个版本为例进行安装

  • ndk;27.3.13750724
  • platform 21,24.. 31,32,33,34
  • build-tools 35.0.0
  • system-images android-27 android-35
# 使用 --list 方式查看可供下载的内容
cd ~/Android/sdk/cmdline-tools
./latest/bin/sdkmanager --sdk_root=/home/dev/Android/sdk --list

[=======================================] 100% Computing updates...             

Available Packages:
  Path                                                                            | Version           | Description                                                           
  -------                                                                         | -------           | -------                                                               
  add-ons;addon-google_apis-google-15                                             | 3                 | Google APIs                                                           
  add-ons;addon-google_apis-google-16                                             | 4                 | Google APIs                                                           
  add-ons;addon-google_apis-google-17                                             | 4                 | Google APIs                                                           
  add-ons;addon-google_apis-google-18                                             | 4                 | Google APIs                                                           
  add-ons;addon-google_apis-google-19                                             | 20                | Google APIs                                                           
  add-ons;addon-google_apis-google-21                                             | 1                 | Google APIs                                                           
  add-ons;addon-google_apis-google-22                                             | 1                 | Google APIs                                                           
  add-ons;addon-google_apis-google-23                                             | 1                 | Google APIs                                                           
  add-ons;addon-google_apis-google-24                                             | 1                 | Google APIs                                                           
  build-tools;19.1.0                                                              | 19.1.0            | Android SDK Build-Tools 19.1                                          
  build-tools;20.0.0                                                              | 20.0.0            | Android SDK Build-Tools 20                                            
  build-tools;21.1.2                                                              | 21.1.2            | Android SDK Build-Tools 21.1.2                                        
  build-tools;22.0.1                                                              | 22.0.1            | Android SDK Build-Tools 22.0.1                                        
  build-tools;23.0.1                                                              | 23.0.1            | Android SDK Build-Tools 23.0.1                                        
  build-tools;23.0.2                                                              | 23.0.2            | Android SDK Build-Tools 23.0.2                                        
  build-tools;23.0.3                                                              | 23.0.3            | Android SDK Build-Tools 23.0.3                                        
  build-tools;24.0.0                                                              | 24.0.0            | Android SDK Build-Tools 24                                            
  build-tools;24.0.1                                                              | 24.0.1            | Android SDK Build-Tools 24.0.1                                        
  build-tools;24.0.2                                                              | 24.0.2            | Android SDK Build-Tools 24.0.2                                        
  build-tools;24.0.3                                                              | 24.0.3            | Android SDK Build-Tools 24.0.3                                        
  build-tools;25.0.0                                                              | 25.0.0            | Android SDK Build-Tools 25                                            
  build-tools;25.0.1                                                              | 25.0.1            | Android SDK Build-Tools 25.0.1                                        
  build-tools;25.0.2                                                              | 25.0.2            | Android SDK Build-Tools 25.0.2                                        
  build-tools;25.0.3                                                              | 25.0.3            | Android SDK Build-Tools 25.0.3                                        
  build-tools;26.0.0                                                              | 26.0.0            | Android SDK Build-Tools 26                                            
  build-tools;26.0.1                                                              | 26.0.1            | Android SDK Build-Tools 26.0.1                                        
  build-tools;26.0
  ....

再根据上述版本号内容,选择对应工具链和版本进行安装,注意 需要使用双引号

cd ~/Android/sdk
./cmdline-tools/latest/bin/sdkmanager --install "ndk;27.3.13750724"
./cmdline-tools/latest/bin/sdkmanager "platforms;android-27"
./cmdline-tools/latest/bin/sdkmanager "platforms;android-34"
./cmdline-tools/latest/bin/sdkmanager "build-tools;35.0.1"

随后只需要将 路径输出到环境变量即可

export ANDROID_SYSROOT=~/Android/sdk

也可以把对应的输出放到 .bashrc中

JDK

不要忘了安装JDK

## default
sudo apt install openjdk-default -y

# 17
sudo apt install openjdk-17-jdk -y

Tensorflow-lite

https://tensorflow.google.cn/lite/guide/build_cmake?hl=zh-cn

Download git - tensorflow

cd ~
mkdir tflite-micro
cd tflite-micro

git clone https://github.com/tensorflow/tensorflow

cd tensorflow

Install deps

  • Ubuntu
sudo apt-get update
sudo apt-get install git build-essential cmake python3 python3-pip
  • macos
brew install git cmake python

Download & instal Bazel

  • 安装 Bazelisk(自动管理 Bazel 版本)
curl -L https://github.com/bazelbuild/bazelisk/releases/download/v1.17.0/bazelisk-linux-amd64 -o /usr/local/bin/bazel
chmod +x /usr/local/bin/bazel
  • [推荐] 手动管理版本

首先进入 tensorflow 目录 查看 .bazelversion

7.4.1

比如 目录配置是 7.4.1 那么,就打开 bazel - git https://github.com/bazelbuild/bazel/releases 找到对应的版本,如

  • macos

https://github.com/bazelbuild/bazel/releases/download/7.4.1/bazel-7.4.1-darwin-arm64

  • linux

https://github.com/bazelbuild/bazel/releases/download/7.4.1/bazel-7.4.1-linux-x86_64


tflite-micro

1. download tflite-micro

git clone https://github.com/tensorflow/tflite-micro
cd tflite-micro

2. download the suitable version of bazel

cat .bazelversion

# result like 7.0.0

go to https://github.com/bazelbuild/bazel/releases

and download the bazel binary package

mkdir ~/tools/bazel/7.0.0
cd ~/tools/bazel/7.0.0

wget https://github.com/bazelbuild/bazel/releases/download/7.0.0/bazel-7.0.0-linux-x86_64

chmod +x bazel-7.0.0-linux-x86_64
# create link
ln -s bazel-7.0.0-linux-x86_64 bazel

set the env

vi ~/.bashrc

or

vi ~/.zshrc # macos
# bazel_env_start
export PATH="~/tools/bazel/7.0.0:$PATH"
# bazel_env_end

flush the rcfile

# bash
source ~/.bashrc

# zsh
source ~/.zshrc

Now the env setting is done.

check the version of cmd bazel

bazel --version

# terminal shows below
bazel 7.0.0

Spark是用于分布式数据管理和处理系统,源于google的mapreduce系统以及开源社区Hadoop,并对其做了诸多补充和升级,譬如采用内存来管理数据,大幅度提高了响应速度,更适合现代的各类分布式数据场景,如实时大数据交互、人工智能、空间数据处理等

以下是在本机创建用于验证和个人部署spark的简要步骤:

macOS

brew install apache-spark

安装完成后,spark会将安装在 /opt/homebrew/Cellar/apache-spark/$version 下,比如4.0.1 就在 /opt/homebrew/Cellar/apache-spark/4.0.1

我们将路径输出到环境变量中,编辑 vi ~/.zshrc,不用zsh的需要编辑其他rc文件

在后面添加

# spark_env_start
export SPARK_DIR="/opt/homebrew/Cellar/apache-spark/4.0.1"
export PATH="$SPARK_DIR/bin:$SPARK_DIR/libexec/sbin:$PATH"
# spark_env_end

编辑完成后重新打开terminal 或者 source ~/.zshrc 完成安装和环境配置

Ubuntu

安装JDK, ...

建议使用Scala 3.x,相应的jdk版本建议使用11,如果安装Scala 2.x的话 需要安装jdk@8

sudo apt install default-jdk

安装others

ubuntu

sudo apt install scala -y

安装spark

首先打开spark官网下载页 https://dlcdn.apache.org/spark/

选择一个版本,比如 3.5.7

复制对应的下载地址,如 https://dlcdn.apache.org/spark/spark-3.5.7/pyspark-3.5.7.tar.gz

创建一个目录,比如 ~/spark

mkdir -p ~/spark
cd ~/spark

下载

wget https://dlcdn.apache.org/spark/spark-3.5.7/spark-3.5.7-bin-hadoop3.tgz

解压并进入文件夹

tar -xf spark-3.5.7-bin-hadoop3.tgz -C ./
cd spark-3.5.7-bin-hadoop3
ll #查看目录 是否有 bin sbin

total 96
drwxr-xr-x 1 shezw shezw   170 Sep 18 04:52 ./
drwxr-xr-x 1 shezw shezw   100 Oct  5 15:27 ../
-rw-r--r-- 1 shezw shezw 22916 Sep 18 04:52 LICENSE
-rw-r--r-- 1 shezw shezw 57842 Sep 18 04:52 NOTICE
drwxr-xr-x 1 shezw shezw     6 Sep 18 04:52 R/
-rw-r--r-- 1 shezw shezw  4605 Sep 18 04:52 README.md
-rw-r--r-- 1 shezw shezw   166 Sep 18 04:52 RELEASE
drwxr-xr-x 1 shezw shezw   748 Sep 18 04:52 bin/
drwxr-xr-x 1 shezw shezw   288 Sep 18 04:52 conf/
drwxr-xr-x 1 shezw shezw    68 Sep 18 04:52 data/
drwxr-xr-x 1 shezw shezw    14 Sep 18 04:52 examples/
drwxr-xr-x 1 shezw shezw 13296 Sep 18 04:52 jars/
drwxr-xr-x 1 shezw shezw    32 Sep 18 04:52 kubernetes/
drwxr-xr-x 1 shezw shezw  2402 Sep 18 04:52 licenses/
drwxr-xr-x 1 shezw shezw   338 Sep 18 04:52 python/
drwxr-xr-x 1 shezw shezw  1030 Sep 18 04:52 sbin/
drwxr-xr-x 1 shezw shezw    56 Sep 18 04:52 yarn/

其中 bin, sbin是存放 可执行与服务启动文件的目录,需要配置到系统环境变量中,使用pwd获取到当前目录,如 /home/shezw/spark/spark-3.5.7-bin-hadoop3

编辑 vi ~/.bashrc 在最后添加

# spark_env_start
export SPARK_DIR="/home/shezw/spark/spark-3.5.7-bin-hadoop3"
export PATH="$SPARK_DIR/bin:$SPARK_DIR/sbin:$PATH"
# spark_env_end

编辑完成后重新打开terminal 或者 source ~/.zshrc 完成安装和环境配置


使用 start, stop来开启和关闭spark

start-master.sh
stop-master.sh

启动完成后,可以通过

localhost:8080 来访问spark的web页面,其中也会显示服务的端口号,一般是7077