初见Flutter!框架简单介绍以及构建可发布的签名Apk包
哈喽!好久不见,算起来我已经一个多月没更新博客了,近期刚刚完成了一个项目,正好抽出时间整理一下学到的东西并且写写博客。
关于flutter
开始使用flutter还是春节后的事情,其实之前很早就想学一下flutter了,毕竟谷歌出的技术总是不会太差的,无奈一直没有时间和做app的需求,这次接触了flutter之后仿佛发现了新大陆,原来开发app还能这么方便,真的颠覆了我原来的认知啊,热更新也太好用了吧,修改后立刻显示出新的效果,根本不需要像开发原生Android那样重新编译再安装,如果一开始就是这个的话,那得节约多少生命啊~ 不过刚刚接触的时候,有一点点点不习惯,因为flutter用的是响应式编程,不像我们平时用的超级熟练的MVC,所以一开始会有点疑惑,不过只要跟着官网的教程走,自己写完几个小demo就基本能入门了,这响应式编程很像react(反正我没用过,做前端的大佬说很像)。 然后dart语言的话,怎么说嘞,感觉是一种Java/JavaScript的混合体,据说本来是想开发出来替代js地位的....很多写法真的和js很像,例如单线程+async/await操作这些,然后它又是一个强类型语言......总之语言特性的话,还不是很熟悉,写起来感觉还可以,但是也没什么特别亮眼的地方~
进入正题
前面说了一下关于flutter的,现在进入本文的正题,如何构建签名的apk包。 使用AndroidStudio开发的话,里面内置的发布apk功能是有点问题的,好像没办法通过IDE生成,所以我们用官网的方法,使用flutter命令来做。
修改AndroidManifest信息
首先要编译Android的APP嘛,AndroidManifest.xml
是肯定要修改的,涉及到什么权限,应用名称,应用图标,这些就先自己修改哈,本文不再赘述。
配置签名文件
这个签名文件,大家做Android开发的都有的啦,没有的话,使用keytool
生成一个。
keytool -genkey -v -keystore ~/key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias key
-genkey 在用户主目录中创建一个key.jks文件
-v 显示密钥库中的证书详细信息
-alias 产生别名
-keyalg 指定密钥的算法
-keystore 指定密钥库的名称(产生的各类信息将不在.jks文件中
-validity 指定创建的证书有效期多少天
-keysize 指定密钥长度
配置key.properties
在<app dir>/android/
目录下,创建一个key.properties
文件
<app dir>
代表工程的根目录,下同。
内容如下:
storePassword=keystore密码
keyPassword=key密码
keyAlias=密钥别名
storeFile=密钥路径
配置Gradle
编译Android项目,Gradle是必不可少的啦!
gradle文件路径<app dir>/android/app/build.gradle
找到android {,
在这一行上面配置key.properties
信息:
def keystorePropertiesFile = rootProject.file("key.properties")
def keystoreProperties = new Properties()
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
继续向下,找到buildTypes {
,在上面配置signingConfigs
signingConfigs {
release {
keyAlias keystoreProperties['keyAlias']
keyPassword keystoreProperties['keyPassword']
storeFile file(keystoreProperties['storeFile'])
storePassword keystoreProperties['storePassword']
}
}
修改buildTypes
buildTypes {
release {
signingConfig signingConfigs.release
}
}
上面的操作都正确完成了的话,就可以开始构建签名的apk包了,在APP项目目录中打开终端,输入flutter的构建命令:
flutter build apk
adb
来安装,也可以直接使用flutter install
来安装~
About
Learn more on my WeChat Official Account:DealiAxy Every post was in my blog:blog.deali.cn
欢迎交流
交流问题请在微信公众号后台留言,每一条信息我都会回复哈~ - 微信公众号:画星星高手 - 打代码直播间:https://live.bilibili.com/11883038 - 知乎:https://www.zhihu.com/people/dealiaxy - 简书:https://www.jianshu.com/u/965b95853b9f