iis服务器助手广告广告
返回顶部
首页 > 资讯 > 移动开发 >如何使用Flutter发布安卓应用
  • 884
分享到

如何使用Flutter发布安卓应用

2024-04-02 19:04:59 884人浏览 薄情痞子
摘要

目录设置应用的名称,包名、应用图标和启动替换应用图标替换启动页设置访问权限配置版本发布参数生成应用签名修改配置文件打包注意事项设置应用的名称,包名、应用图标和启动 安卓的应用资源配

设置应用的名称,包名、应用图标和启动

安卓的应用资源配置在main/AndroidManifest.xml中设置,文件内容如下:


<manifest xmlns:android="Http://schemas.android.com/apk/res/android"
    package="com.example.gesture_demo">
    <!-- io.Flutter.app.FlutterApplication is an android.app.Application that
         calls FlutterMain.startInitialization(this); in its onCreate method.
         In most cases you can leave this as-is, but you if you want to provide
         additional functionality it is fine to subclass or reimplement
         FlutterApplication and put your custom class here. -->
    <application
        android:name="io.flutter.app.FlutterApplication"
        android:label="gesture_demo"
        android:icon="@mipmap/ic_launcher">
        <activity
            android:name=".MainActivity"
            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">
            <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>
</manifest>

Flutter生成的文件建议是大部分内容可以保留不动,但是可以根据需要进行修改。
具体可能要修改的内容如下:

属性名 用途 说明
package 应用包名 安卓应用的唯一标识符,一般为com.xxxx.xxx格式
android:label 应用显示名称 默认为工程名,需要根据实际情况修改
android:icon 应用图标 替换指定的图标文件即可
meta-data
   android:name
资源名称 不可更改,用于Flutter生成安卓插件
meta-data
  value
资源值 不可更改,用于Flutter生成安卓插件

替换应用图标

安卓提供了如下尺寸的图标配置文件,在Flutter项目下的android/app/src/main/res对应尺寸目录下可以应用图标文件。

尺寸别名 图标大小 屏幕尺寸
mipmap-mdpi 48x48 320×480
mipmap-hdpi 72x72 480×800,480×854
mipmap-xhdpi 96x96 1280*720,720p
mipmap-xxhdpi 144x144 1920*1080,1080p
mipmap-xxxhdpi 192x192 3840×2160,4k

替换启动页

应用启动页图片在Flutter项目下的android/app/src/main/drawable下的launch_background.xml配置文件中,默认是一个白色底,xml问卷如下所示:


<?xml version="1.0" encoding="utf-8"?>
<!-- Modify this file to customize your launch splash screen -->
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@android:color/white" />

    <!-- You can insert your own image assets here -->
    <!-- <item>
        <bitmap
            android:gravity="center"
            android:src="@mipmap/launch_image" />
    </item> -->
</layer-list>

注释掉的部分可以用来设置启动页图片,需要注意部分机型的尺寸未必和启动页图片一致,因此可以设置启动页的背景色与启动页图片边缘一致。


<?xml version="1.0" encoding="utf-8"?>
<!-- Modify this file to customize your launch splash screen -->
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
  	<!-- 背景色 -->
    <item android:drawable="@android:color/white" />
		
  	<!-- 启动页图片,也可以添加其他元素 -->
    <item>
        <bitmap
            android:gravity="center"
            android:src="@mipmap/launch_image" />
    </item>
</layer-list>

设置访问权限

在android/app/src下的AndroidManifest.xml(注意不是src/profile文件夹下的AndroidManifest.xml文件)文件中设置应用权限,如访问网络,相册,摄像头等。开发环境是在android/src/debug的AndroidManifest.xml中设置。下面是一个示例的文件:


<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.animation_demo">

    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
    
    <application
        android:name="io.flutter.app.FlutterApplication"
        android:label="动画演示"
        android:icon="@mipmap/ic_launcher">
        <activity
            android:name=".MainActivity"
            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">
            <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>
</manifest>

配置版本发布参数

在android/app/build.gradle文件检查配置是否正确:

  1. applicaitonId:应用唯一AppId,如com.liOS.helloworld
  2. versionCode:应用程序版本号
  3. versionName:版本号字符串
  4. minSdkVersion:指定最低的api级别
  5. targetSdkVersion:指定应用程序设计运行的API级别

如下所示:


android {
    compileSdkVersion 28

    sourceSets {
        main.java.srcDirs += 'src/main/Kotlin'
    }

    lintOptions {
        disable 'InvalidPackage'
    }

    defaultConfig {
        // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
        applicationId "com.example.animation_demo"
        minSdkVersion 16
        targetSdkVersion 28
        versionCode flutterVersionCode.toInteger()
        versionName flutterVersionName
        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }

    buildTypes {
        release {
            // TODO: Add your own signing config for the release build.
            // Signing with the debug keys for now, so `flutter run --release` works.
            signingConfig signingConfigs.debug
        }
    }
}

这里面可以看到versionCode和versionName是从flutterVersionCode和flutterVersionName中引入的,其中这两个变量在build.gradle上面有定义。先从local.properties中读取,若没有再在该文件中定义,因此可以在localProperties中设置或在build.gradle中设置(优先取local.properties中的值)。


def flutterVersionCode = localProperties.getProperty('flutter.versionCode')
if (flutterVersionCode == null) {
    flutterVersionCode = '1'
}

def flutterVersionName = localProperties.getProperty('flutter.versionName')
if (flutterVersionName == null) {
    flutterVersionName = '1.0'
}

生成应用签名

创建keystore,如果之前创建过了,在key.properties中引入即可。


#其中~/key.jks是将keystore文件key.jks存储在~/目录下
keytool -genkey -v -keystore ~/key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias key

按提示输入密码和组织信息即可。


输入密钥库口令:  
再次输入新口令: 
您的名字与姓氏是什么?
  [Unknown]:  lag
您的组织单位名称是什么?
  [Unknown]:  island-coder
您的组织名称是什么?
  [Unknown]:  RD
您所在的城市或区域名称是什么?
  [Unknown]:  Coder
您所在的省/市/自治区名称是什么?
  [Unknown]:  Island
该单位的双字母国家/地区代码是什么?
  [Unknown]:  CN
CN=lag, OU=island-coder, O=RD, L=Coder, ST=Island, C=CN是否正确?
  [否]:  Y

正在为以下对象生成 2,048 位RSA密钥对和自签名证书 (SHA256withRSA) (有效期为 10,000 天):
	 CN=lag, OU=island-coder, O=RD, L=Coder, ST=Island, C=CN
[正在存储/Users/lag/key.jks]

在android目录下创建一个key.properties文件,用于引用密钥库信息:


storePassWord={密钥库密码} #
keyPassword={证书密码}
keyAlias=key    #对应命令行的-alias后的别名
storeFile=/Users/lag/key.jks  #对应命令生成的key.jks的据对路径

修改配置文件

在build.gradle文件中,在android下增加以下内容:


	signingConfigs {
        release {
            keyAlias keystoreProperties['keyAlias']
            keyPassword keystoreProperties['keyPassword']
            storeFile = file(keystoreProperties['storeFile'])
            storePassword = keystoreProperties['storePassword']
        }
    }

    buildTypes {
        release {
            // TODO: Add your own signing config for the release build.
            // Signing with the debug keys for now, so `flutter run --release` works.
            signingConfig signingConfigs.release
            
        }
    }

打包

在项目目录下,运行下面的命令:


flutter build apk

默认按release打包,生成的apk在build.app/outputs/apk/app-release.apk下。

注意事项

修改AndroidManifest.xml文件后,flutter打包可能存在缓存,此时运行下面的命令,清除掉缓存再次打包即可。


flutter clean

以上就是如何使用Flutter发布安卓应用的详细内容,更多关于Flutter发布安卓应用的资料请关注编程网其它相关文章!

--结束END--

本文标题: 如何使用Flutter发布安卓应用

本文链接: https://www.lsjlt.com/news/126132.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何使用Flutter发布安卓应用
    目录设置应用的名称,包名、应用图标和启动替换应用图标替换启动页设置访问权限配置版本发布参数生成应用签名修改配置文件打包注意事项设置应用的名称,包名、应用图标和启动 安卓的应用资源配...
    99+
    2022-11-12
  • 微软win10发布会,Win10不会支持安卓应用
     微软Win10发布会已经结束,此前许多人怀疑微软有可能会使Win10支持An 当回答问题的时候,有人提到目前Windows Phone系统与IOS和安卓相比依然远远落后,微软有什么打算时,Myerson回答...
    99+
    2023-06-10
    微软发布会 win10发布会 安卓应用 安卓 win10 微软 发布会 Win10
  • win11安装如何安卓应用
    本篇内容介绍了“win11安装如何安卓应用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!win11怎么安装安卓应用:首先,我们要确保自己的电...
    99+
    2023-06-30
  • win11如何运行安卓应用
    今天小编给大家分享一下win11如何运行安卓应用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。win11怎么运行安卓应用答:...
    99+
    2023-07-01
  • 使用IDEA 进行 安卓开发
    使用IDEA 进行 安卓开发 前言 以前使用Eclipse 进行 Android 开发,感觉对新手来说实在是太不友好了,又是Android SDK,有是配 gradle 等一系列的东西,对与新手而言,总是遗漏。或者版本对不上,一堆问题,...
    99+
    2023-08-20
    android intellij-idea java gradle 开发语言
  • Flutter如何安装使用
    这篇文章给大家分享的是有关Flutter如何安装使用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。序言Flutter出来已经有些日子了,越来越多的开发者也开始尝试使用 Flutter 进行开发...
    99+
    2023-06-04
  • 如何在Win10上安装WSA,用上安卓应用
    缘起:想在PC上使用一个叫做“掌阅”的手机看书软件,但它的web端相比于微信读书而言,真的烂爆了;win11上可以直接在应用商店装WSA,但是不想升级win11。 最终的效果:    步骤: 1.首先我们需要将 Windows 10 更新...
    99+
    2023-10-05
    windows android
  • ChatGPT安卓版正式发布,附安装包,但有款手机无法使用
    ChatGPT安卓版如约而至,OpenAI正式宣布该应用已在谷歌应用商店上架,用户可以免费下载,对话不限次数。 但是安卓版ChatGPT目前仅在美国、印度、孟加拉国和巴西提供下载,下周将会推广至更多国家。 网页端下载链接: http...
    99+
    2023-08-31
    chatgpt android 智能手机
  • 如何使用Java开发分布式应用?
    Java是一门广泛使用的编程语言,广泛应用于开发分布式应用程序。本文将介绍如何使用Java开发分布式应用程序,包括分布式应用程序的基本概念、Java的分布式应用程序开发工具和技术,以及分布式应用程序的开发实践。 一、分布式应用程序的基本概念...
    99+
    2023-11-07
    path 分布式 开发技术
  • 【Flutter】Flutter 如何使用 flutter_swiper
    文章目录 一、前言二、flutter_swiper 的概念三、Flutter 中的 flutter_swiper1. 使用的库2. 方法介绍 四、代码示例1. 简单示例2. 完整示例 ...
    99+
    2023-09-13
    flutter ios android 原力计划
  • 【Flutter】Flutter 如何使用 WebView
    文章目录 一、前言二、WebView 的概念三、Flutter 中的 WebView1. 使用的库2. 方法介绍 四、代码示例1. 简单示例2. 完整示例 五、总结 一、前言 在移动应用开发中,我们有时候需要在应...
    99+
    2023-08-16
    flutter android webview ios 原力计划
  • 安卓如何启用javascript
    安卓操作系统在手机领域已经占据了绝大部分市场份额,因此对于开发人员来说,让网页在安卓设备上运行良好是非常重要的。而在网页设计中,JavaScript语言是不可或缺的一部分,其功能强大,可以使网页与用户的交互变得更加丰富。但安卓设备的浏览器默...
    99+
    2023-05-14
  • 怎么使用Flutter开发简单的Web应用
    本篇内容主要讲解“怎么使用Flutter开发简单的Web应用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么使用Flutter开发简单的Web应用”吧!为 W...
    99+
    2022-10-19
  • 如何将安卓 Gradle 模块打包发布到本地 Maven 仓库
    文章目录 具体流程 笔者的运行环境: Android Studio Flamingo | 2022.2.1 Android SDK 33 Gradle 8.0.1 JDK 1...
    99+
    2023-10-05
    android maven Gradle 模块化
  • android轻松管理安卓应用中的log日志 发布应用时log日志全部去掉的方法
    管理log一般有两种方法,博主推荐大家使用下面的第一种方法: 第一种方法: 第一步:定义一个logTools工具类,相信你能够看懂的,谁的log,可以用谁的名字做方法名,如lo...
    99+
    2022-06-06
    方法 log Android
  • 如何发布你的Python应用
    如何发布你的Python应用,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。记得之前看过一篇文章,说的是龙哥当年准备卖掉 foxmail,买方是雷军,雷军的意思是:就这,我也能写...
    99+
    2023-06-15
  • 如何使用Python与Laravel开发分布式应用?
    分布式应用是一个复杂的系统,需要高效的通信协议和数据传输,同时还需要处理大量的数据和并发访问。Python和Laravel分别是两个非常强大的编程语言和框架,它们可以帮助我们快速开发高效的分布式应用。本文将介绍如何使用Python和Lara...
    99+
    2023-08-27
    分布式 开发技术 laravel
  • 使用Dart开发Flutter应用的技巧有哪些
    小编给大家分享一下使用Dart开发Flutter应用的技巧有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!发布模式判断判断当前环境是否为发布模式。const&...
    99+
    2023-06-04
  • FlutterFlutterGo应用程序:使用Go编程语言开发Flutter应用程序
    作者:禅与计算机程序设计艺术 概述 在过去的一年里,移动端应用的开发框架一直呈现爆炸性增长,其中Flutter、Ionic、React Native等都是主流的热门技术框架。由于Flutter框架强大...
    99+
    2023-10-11
    自然语言处理 人工智能 语言模型 编程实践 开发语言 架构设计
  • 在Linux上如何安装安卓8.1 Oreo来运行应用程序
    这篇文章给大家分享的是有关在Linux上如何安装安卓8.1 Oreo来运行应用程序的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。在 Linux 上安装安卓 x86 8.1 Oreo准备环境首先,让我们下载 and...
    99+
    2023-06-16
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作