linux搭建Flutter Android开发环境脚本

91 阅读1分钟
#!/bin/bash
# 设置变量
PROJECT_PATH=`pwd`;

export ANDROID_HOME=${PROJECT_PATH}/env/android
export FLUTTER_HOME=${PROJECT_PATH}/env/flutter
export JAVA_HOME=${PROJECT_PATH}/env/jdk-11
export PUB_HOSTED_URL=https://pub.flutter-io.cn
export FLUTTER_STORAGE_BASE_URL=https://storage.flutter-io.cn


# 环境变量写入到~/.bashrc
echo "export ANDROID_HOME=$ANDROID_HOME" >>  ~/.bashrc
echo "export FLUTTER_HOME=$FLUTTER_HOME" >>  ~/.bashrc
echo "export JAVA_HOME=$JAVA_HOME" >>  ~/.bashrc
echo "export PUB_HOSTED_URL=https://pub.flutter-io.cn" >>  ~/.bashrc
echo "export FLUTTER_STORAGE_BASE_URL=https://storage.flutter-io.cn" >>  ~/.bashrc
echo 'export PATH=$ANDROID_HOME/cmdline-tools/latest/bin:$ANDROID_HOME/platform-tools/:${FLUTTER_HOME}/bin:${JAVA_HOME}/bin:$PATH' >> ~/.bashrc
source  ~/.bashrc

 mkdir $PROJECT_PATH/env

# JAVA
if test -d $JAVA_HOME; then
    echo "$JAVA_HOME目录存在"
else
    echo "安装JDK11环境"
    cd ${PROJECT_PATH}/env
    curl -o openjdk-11_linux-x64_bin.tar.gz https://download.java.net/java/ga/jdk11/openjdk-11_linux-x64_bin.tar.gz
    tar xzvf openjdk-11_linux-x64_bin.tar.gz
    rm -rf openjdk-11_linux-x64_bin.tar.gz
fi

# Android
if test -d $ANDROID_HOME; then
    echo "$ANDROID_HOME目录存在"
else
    echo "安装Android环境"
    cd ${PROJECT_PATH}/env
    mkdir $ANDROID_HOME
    mkdir -p ${ANDROID_HOME}/cmdline-tools/
    cd $ANDROID_HOME/cmdline-tools/
    SDK_TOOL_URL="https://dl.google.com/android/repository/commandlinetools-linux-7583922_latest.zip";
    # https://dl.google.com/android/repository/commandlinetools-linux-7583922_latest.zip
    curl -o sdk.zip $SDK_TOOL_URL
    unzip sdk.zip
    rm -rf sdk.zip
    mv cmdline-tools latest
    echo y | $ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager "build-tools;30.0.3"
    echo y | $ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager "platforms;android-33"
    echo y | $ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager "platform-tools"
fi


# Flutter
if test -d $FLUTTER_HOME; then
    echo "$FLUTTER_HOME目录存在"
else
    echo "安装Flutter环境"
    cd ${PROJECT_PATH}/env
    curl -o flutter_linux_3.13.9-stable.tar.xz https://storage.googleapis.com/flutter_infra_release/releases/stable/linux/flutter_linux_3.13.9-stable.tar.xz
    tar xf ./flutter_linux_3.13.9-stable.tar.xz
    rm -rf flutter_linux_3.13.9-stable.tar.xz
    git config --global --add safe.directory $FLUTTER_HOME
    $FLUTTER_HOME/bin/flutter channel
    yes y |$FLUTTER_HOME/bin/flutter doctor --android-licenses
fi
cd $PROJECT_PATH
mkdir workspace
echo "
1. 如果环境搭建成功,则不要删除env环境目录,否则可以删除env下对应环境重新搭建环境
2. 如果环境变量丢失可以执行source init.sh
3. 你可以将flutter项目代码存放在workspace目录中
"