Flutter之Android客户端的打包与安装

打包apk

1. 配置APP的图标和名称

配置APP图标

项目根目录/android/app/src/main/res/

看到很多个以mipmap-为前缀命名的文件夹,文件夹名称的后缀是对应的APP图标像素密度:

mdpi (中) ~160dpi
hdpi (高) ~240dip
xhdpi (超高) ~320dip
xxhdpi (超超高) ~480dip
xxxhdpi (超超超高) ~640dip
复制代码

将对应像素密度的图片放入对应的文件夹中,图片记得用png格式。安装的APP会根据对应的屏幕像素密度使用适应尺寸的图标,但要注意,APP图标文件最好统一使用同一个名字,方便后面配置。

可与设计师沟通,让其提供如下尺寸:

  • Android:
48*48
72*72
96*96
144*144
192*192
复制代码
  • IOS:
40*40
60*60
58*58
87*87
80*80
120*120
180*180
复制代码

注:IOS客户端的APP图标需要png格式外,而且不应包含任何透明区域和圆角

配置APP名称、图标和系统权限

项目根目录/android/app/src/main/AndroidManifest.xml

  • application标签内部属性
android:label="flutter_app"   // 为APP安装到手机上显示的名称,可支持中文(中文最长宜控制在6位,超长后面显示成...)
android:icon="@mipmap/ic_launcher"  // 为APP图标用到的图片文件名称
// 这里图片文件不需要输入文件格式后缀,前面说过的要使用相同文件名,因为这里并没有按像素密度分别配置对应的图片文件
复制代码
  • uses-permission标签元素:定义APP的系统权限,如:打开麦克风摄像头、获取联系人电话簿、是否允许上网等权限(具体请参考安卓开发官网
<uses-permission android:name="android.permission.INTERNET"/> // 此默认配置了允许手机联网的权限,因为flutter和APP交换数据需要用到该权限。
复制代码

2. 生成keystore文件,并创建key.properties文件

终端输入如下命令:

flutter doctor -v

看见结果如下

从结果中找到Java binary at:中找到keytool.exe文件的路径(即为keytool命令绝对路径),并复制该路径,在终端输入如下命令:

C:\Progra~1\Android"Android Studio1"\jre\bin\keytool -genkey -v -keystore E:\key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias key

注:记得把路径中最后的java替换成keytool。若路径中文件名带有空格,需要引号括住。

按要求输入

此时即可在你指定的路径E:下找到生成的key.jks文件。再回到项目根目录/android文件夹下,并打开粘贴下面的代码:

storePassword=<password from previous step>    // 输入上一步创建KEY时输入的 密钥库 密码
keyPassword=<password from previous step>    // 输入上一步创建KEY时输入的 密钥 密码
keyAlias=key
storeFile=<E:/key.jks>   // key.jks的存放路径,注意为右斜杠
复制代码

最终文件内容如下:

storePassword=123456
keyPassword=123456
keyAlias=key
storeFile=E:/key.jks
复制代码

注意:jks文件和key.properties文件,千万不要共享出去

3. 配置key注册

项目根目录/android/app/build.gradle文件

  1. 在android {这一行前面,加入如下代码:
def keystorePropertiesFile = rootProject.file("key.properties")
def keystoreProperties = new Properties()
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
复制代码
  1. 把如下代码进行替换
buildTypes {
    release {
        signingConfig signingConfigs.debug
    }
}
复制代码

替换成的代码:

signingConfigs {
    release {
        keyAlias keystoreProperties['keyAlias']
        keyPassword keystoreProperties['keyPassword']
        storeFile file(keystoreProperties['storeFile'])
        storePassword keystoreProperties['storePassword']
    }
}
buildTypes {
    release {
        signingConfig signingConfigs.release
    }
}
复制代码
  1. 找到defaultConfig配置项,录入APPID和版本号,请参考版本号命名控制
defaultConfig {
        applicationId "com.example.flutterapp"  //APPID
        minSdkVersion 16  //可运行应用的最低版本的 Android 平台,由该平台的 API 级别标识符指定
        targetSdkVersion 27  //指定运行应用的目标 API 级别。在某些情况下,这允许应用使用在目标 API 级别中定义的清单元素或行为,而不是仅限于使用那些针对最低 API 级别定义的元素或行为。
        versionCode flutterVersionCode.toInteger()    //内部版本号
        versionName flutterVersionName  //对外公布的版本号
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
复制代码

4. 编译生成apk文件

终端输入如下命令:

flutter build apk

需要等待一段时间执行完毕

即可在项目根目录/build/app/outputs/apk/release/目录下找到生成的apk文件,即打包完成。

安装apk到Android的模拟器/真机

终端输入如下命令:

flutter install

注:打开Android模拟器或者电脑连上真机(且打开开发者模式)执行上面命令。

即可在真机上看到安装成功的flutter_app了。

注:安装时,会把原来调试运行安装的APP卸载掉,重新安装新的APP。

转载于:https://juejin.im/post/5c49a08b6fb9a049b41cd31c

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值