1.先安装好flutter环境

  去看官网即可

2.找到idea的Plugins 并安装三个插件

1)Flutter
2)Dart
3)Android
在这里插入图片描述
在这里插入图片描述

3.然后用idea点击创建android项目,这里主要是利用idea去安装android sdk

在这里插入图片描述
然后一直下一步,选择合适的android sdk安装,可能需要安装10-30分钟
安装好后会弹出android sdk的安装路径,/Users/yangjunxiong/Library/Android/sdk 这个是idea安装的android sdk的安装路径,下一步需要配置 android sdk环境变量

4.配置android sdk的环境变量 和flutter的android sdk配置

配置 android sdk环境变量 必须配置这个名称-> ANDROID_HOME

cd ~
vim .bash_profile

将下面的环境变量添加到 .bash_profile 最下面

# android 
export ANDROID_HOME=/Users/yangjunxiong/Library/Android/sdk
export PATH=$PATH:$ANDROID_HOME/tools
export PATH=$PATH:$ANDROID_HOME/platform-tools
export PATH=$PATH:$ANDROID_HOME/build-tools
# android END

重载环境变量

source .bash_profile

配置 flutter的android sdk

flutter config --android-sdk /Users/yangjunxiong/Library/Android/sdk

查看是flutter否配置好安卓sdk

flutter doctor

在这里插入图片描述

5.通过这个安装 安卓模拟器 或者直接usb手机真机调试

在这里插入图片描述

6.安卓工程里面的build.gradle配置改maven仓库为阿里仓库

file:///Users/yangjunxiong/Desktop/yjx/work/yjx-gitee/demo/flutterapp1/android/build.gradle
主要是把
// google()
// mavenCentral()
注销换成maven仓库

buildscript {
    ext.kotlin_version = '1.6.10'
    repositories {
//        google()
//        mavenCentral()
        maven { url 'https://maven.aliyun.com/repository/google'}
        maven { url 'https://maven.aliyun.com/repository/jcenter'}
        maven { url 'http://maven.aliyun.com/nexus/content/groups/public'}
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:4.1.0'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    }
}

allprojects {
    repositories {
//        google()
//        mavenCentral()
        maven { url 'https://maven.aliyun.com/repository/google'}
        maven { url 'https://maven.aliyun.com/repository/jcenter'}
        maven { url 'http://maven.aliyun.com/nexus/content/groups/public'}
    }
}

rootProject.buildDir = '../build'
subprojects {
    project.buildDir = "${rootProject.buildDir}/${project.name}"
}
subprojects {
    project.evaluationDependsOn(':app')
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

7. 选择模拟器或者真机debug启动即可

在这里插入图片描述

8. flutter打包web端或android端优化

8.1 打包 web端
flutter build web
8.2 打包 web端打包 android端 so优化打包(减少10MB安装包体积)会打多个apk包 手机上用app.apk即可
flutter build apk --target-platform android-arm,android-arm64,android-x64 --split-per-abi

首先 flutter build apk 表示当前构建 release 包;
后面 android-arm,android-arm64,android-x64 则是指定生成对应架构的 release 包;
最后的 --split-per-abi 则表示告知需要按照我们指定的类型分别打包,如果移除则直接构建包含所有 CPU 架构的 Apk 包。

8.3 打包 web端打包 ios端

目前没有测试ios打包

8.4. AndroidManifest.xml 安卓的一些权限
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.yjx.cloud.yjxrtc.yjx_rtc">

<!--    android:label="yjx_rtc"  app的名字-->
<!--    android:icon="@mipmap/ic_launcher" app的图标>-->
   <application
        android:label="这里改app的名称下面第9行改图片地址"
        android:name="${applicationName}"
        android:icon="@mipmap/ic_launcher">
        <activity
            android:name=".MainActivity"
            android:exported="true"
            android:launchMode="singleTop"
            android:theme="@style/LaunchTheme"
            android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
            android:hardwareAccelerated="true"
            android:windowSoftInputMode="adjustResize">
            <!-- Specifies an Android theme to apply to this Activity as soon as
                 the Android process has started. This theme is visible to the user
                 while the Flutter UI initializes. After that, this theme continues
                 to determine the Window background behind the Flutter UI. -->
            <meta-data
              android:name="io.flutter.embedding.android.NormalTheme"
              android:resource="@style/NormalTheme"
              />
            <intent-filter>
                <action android:name="android.intent.action.MAIN"/>
                <category android:name="android.intent.category.LAUNCHER"/>
            </intent-filter>
        </activity>
        <!-- Don't delete the meta-data below.
             This is used by the Flutter tool to generate GeneratedPluginRegistrant.java -->
        <meta-data
            android:name="flutterEmbedding"
            android:value="2" />
    </application>
    
    <!--网络权限-->
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
    <!--点播播放器悬浮窗权限-->
    <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
    <uses-permission android:name="android.permission.CHANGE_WIFI_MULTICAST_STATE" />
    <!--存储-->
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
    <!-- 屏幕权限 -->
    <uses-permission android:name="android.permission.WAKE_LOCK" />
</manifest>




Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐