快速搭建Flutter Android开发环境

本文介绍了如何在GitHubCodespaces中利用devcontainer.json配置Flutter开发环境,包括安装Flutter、Android和Java环境,以及管理Gradle缓存。脚本详细说明了如何设置环境变量并确保跨平台一致性。
摘要由CSDN通过智能技术生成

利用github codespaces容器

如:https://github.com/cloudswave/flutter_browser_app/blob/master/.devcontainer/devcontainer.json 版本查询:https://github.com/sambyeol/flutter-devcontainer/pkgs/container/flutter-devcontainer 项目目录下创建.devcontainer/devcontainer.json

{
    "image": "ghcr.io/sambyeol/flutter-devcontainer:<flutter-version>",
    "runArgs": [ "--init" ],
    "extensions": [
        "dart-code.dart-code",
        "dart-code.flutter"
    ],
}

参考:https://github.com/sambyeol/flutter-devcontainer

利用脚本

#!/bin/bash
# 设置变量
export 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
git config --global --add safe.directory $FLUTTER_HOME

# gradle
if test -d ${PROJECT_PATH}/env/.gradle; then
    echo "${PROJECT_PATH}/env/.gradle目录存在"
else
    echo "配置Gradle环境,下载离线包gradle-7.5-all.zip"
    mkdir ${PROJECT_PATH}/env/.gradle
    cp -n ${PROJECT_PATH}/init.gradle ${PROJECT_PATH}/env/.gradle/
    mkdir ${PROJECT_PATH}/env/.gradle/wrapper/dists
    cd ${PROJECT_PATH}/env/.gradle/wrapper/dists
    wget https://github.moeyy.xyz/https://github.com/gradle/gradle-distributions/releases/download/v7.5.0/gradle-7.5-all.zip # https://services.gradle.org/distributions/
fi


# 缓存目录迁移
ln -s ${PROJECT_PATH}/env/.gradle ~/
mkdir ${PROJECT_PATH}/env/.pub-cache
ln -s ${PROJECT_PATH}/env/.pub-cache ~/

cd $PROJECT_PATH
mkdir workspace
echo "
1. 如果环境搭建成功,则不要删除env环境目录,否则可以删除env下对应环境重新搭建环境
2. 如果环境变量丢失可以执行source init.sh
3. 你可以将flutter项目代码存放在workspace目录中
"

本文同步于个人Github博客:https://github.com/cloudswave/blog/issues/43,欢迎留言。

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值