Android in Flutter 1(Android 项目基础)

本系列主要说的是,从Android 角度看Flutter 因为Flutter 属于混合开发,开发人员更多的会是从Web,iOS,Android 等各个不同领域入手开发。往往面临配置不熟悉等问题。 (本篇中使用的 IDE 是:Android Studio 2021.2.1 patch 1 FlutterVersion:3.0 )

Android 项目基本结构

项目目录

在Flutter 项目中能看到android 目录

.gradle -自动化打包的基础的文件目录(隐藏目录),由IDE根据配置自动下载生产.idea -Android Studio 的IDE Project 级的配置文件目录(隐藏目录),有IDE自动生成app -Android 代码所在目录gradle -自动化打包的配置,其中配置了gradle 的版本,目录等信息build.gradle -项目级的gradle 文件gradle.properties -gradle 打包过程的基本配置文件gradlew -打包脚本local.properties -一些本地配置文件(android 中非必须),在Flutter 中由Flutter pub 根据 yaml 和 Android Studio IDE的配置生成,其中包括APP 版本号,FlutterSDK 目录,Android SDK 目录等信息

实际开发中,我们更多的会关注app 目录 和build.gradle 目录

如果在新构建的项目中,出现build 失败,如法运行,一般会优先关注gradle 目录,修改gradle-wrapper.properties 的版本,已经检查IDE是否成功下载文件(生成.gradle 目录)

MainActivity

Flutter 项目在Android 中的运行容器

Mainfest

Android 中的描述文件,总结来说,就是描述了你这个APP 有什么,用了什么,和APP 外部交互需要什么。 详细内容可以看这里:应用清单概览 一般APP 中需要关注以下几个标签

provider 描述的是一些APP交互用的信息,在Android 10 以后,一般APP 不能直接读取外部存储(app 私有目录以外的文件),如果需要读取,需要经过provider 声明,并且在meta-data 中描述 android.support.FILE_PROVIDER_PATHS

应用的权限声明 权限列表

应用可以向外调用的协议

BuildGradle

项目级别的BuildGradle

路径是:android/build.gradle 项目级别的build.gradle 中,配置的是整个项目的信息 在项目中的第三方库的下载maven 地址,在这里配置,build 会从上往下检索。

Module 级别的build.gradle

路径是 android/app/build.gradle 我们需要关注几个点 1. 这里是加载这个gradle 中会使用的插件,类似 flutter 中的import 其中 apply plugin: ‘com.android.application’ 表示这个Module是一个主Module apply plugin: ‘com.android.library’ 表示这个Module 是一个library 在新版本的Gradle中,apply plugin 会有这样的写法 plugins { id ‘com.android.library’ }

这里配置整个module 的信息,其中versionCode 可以看到是读取flutterVersionCode 获取的,(如果这个module 是application) 可以看到是从这里加载的信息

## 多变体

APK 和 AAB 的区别

APK 是原始的安装包 AAB 用于上传到Google Play (华为商城也开始推行这个包) 相比APK AAB ,在市场分发的时候,会根据当前手机设置的语言,屏幕分辨率,CPU 架构去分发不同的资源包。 能显著减少安装体积

精彩内容

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: