快应用初探——写一个快应用练练手。

快应用是九大手机厂商基于硬件平台共同推出的新型应用生态。用户无需下载安装,即点即用,享受原生应用的性能体验。研究了一个星期的快应用之后,然后写了一个简单的快应用,原本是想做一个玩Android的快应用,后来发现刚开始接触快应用的时候学习并不是很迅速,加上事情确实比较多,就只完成了一个练手的项目。如果你也在学习快应用,不如现在动手做一个小的快应用练练手吧。

1、我的快应用主要逻辑和应用截图

项目的主要逻辑

界面截图

2、环境的搭建和idea的选择

快应用的开发环境为Node.js,首先应当去下载Node.js。然后需要安装toolkit工具hap-toolkit、调试器debugger,平台预览版mockup platform。
这边直接贴出官方网站给出的环境搭建地址。

https://doc.quickapp.cn/tutorial/getting-started/build-environment.html

编码工具我选择的是vs code。 也有其他的工具可供选择,具体可以看官网的链接:
https://doc.quickapp.cn/tutorial/getting-started/code-edit-conf.html

3、非常重要的manifest.json

环境搭建好之后,不要急着开发,先大概了解manifest,这个文件和开发安卓原生的AndroidManifest.xml一样重要,这里配置非常多的东西,比如:应用包名、应用名、版本号、应用图标、路由等等。
关于manifest.json:https://doc.quickapp.cn/framework/manifest.html

4、界面的开发

界面的布局有点类似Html开发,一共分为三部分组成:

  • template: 界面的标签元素
  • style: 界面的样式,通过css方式来编写
  • script:用Node.js语法写的一些逻辑操作
<template>
  这里面填写一些界面的标签元素
</template>
<style>
  这里里面是一些样式的编写
</style>
<script>
  这里面是一些js脚本
</script>

关于template:https://doc.quickapp.cn/framework/template.html
关于style:https://doc.quickapp.cn/framework/style-sheet.html
关于script:https://doc.quickapp.cn/framework/script.html

快应用的标签元素
快应用有自己的一些标签元素,比如<text>表示文字,<image>表示图片等等。也有一些和html相同的元素,比如<div>等等。
关于标签元素:https://doc.quickapp.cn/features/ 在组件标签中可以找到这些标签的使用。

快应用的css样式
快应用的布局方式采用Flex布局,但是有些css样式在快应用中并不支持,这种一般在实际开发中才能知道,因为并不是看一遍文档就能记住的。
关于css样式:https://doc.quickapp.cn/features/ 在组件=>通用中找到。

快应用的脚本
快应用的js脚本用的就是Node.js的语法,当开发几个界面之后,这一套js逻辑并不是很麻烦,大概就是以下几点:

  • 声明变量
  • 生命周期的函数
  • 界面的一些事件的响应方法

这边需要对Node.js有基本的了解。

5、使用系统提供的接口

如果要做界面跳转、加载H5界面、网络请求等操作,那就必须配置接口。
以一个用webView加载H5界面作为例子:
在manifest.json配置需要添加的接口

  "features": [
    { "name": "system.prompt" },
    { "name": "system.router" },
    { "name": "system.shortcut" },
    { "name": "system.fetch" },
    { "name": "system.share"},
    // system.webview为访问
    { "name": "system.webview"}
  ]

以上不仅配置了system.webview,说明还用到了其他的很多的系统接口。
使用web标签

<template>
    <web src="http://xxxx" id="web"></web>
</template>

然后跳转到这个界面就会去访问这个网址啦。

6、外部js文件的调用来封装网络请求框架

有时候也需要封装一些公用的组件来提供各个地方调用,比如网络请求的框架。如果不写公用的网络请求框架,在script中单独编写,代码类似如下:

 // 网络请求需要用到的组件
    import fetch from '@system.fetch'
    // 具体的方法
    getAritcle(){
            const self = this;
            const url = 'http://www.wanandroid.com/article/list/' + self.curPage + '/json'
            const ret = fetch.fetch({
                url,
                method: 'GET',
                responseType: 'json',
                success: function (ret) {
        
                }
            })
    }

如果要使用外部调用的js,代码将会如下:

先将网络请求的代码在外部js写好

image.png

这边是将getAritcle()的方法,写在home.js中。
然后调用home.js中的代码:
第一步要将home中的方法导入。

 // 将封装好的网络请求方法导入
    import {
        getArticle
    } from '../Common/Api/home'

第二步就是使用该方法:

     const self = this;
     getArticle(this.curPage)
      .then((ret) => {
                    // 正常的情况
      }).catch((err) => {
                    // 异常的情况
      })

这种方式封装好之后便可以多处调用,非常实用。
我并没写过js,以上的思路是来自张鸿洋的WanAndroid快应用,文章后面会将张鸿洋的快应用app地址贴出来

7、非常重要的调试工具

调式快应用也是非常重要的一部分,快应用调试器中打开usb调试,然后点击开始调试。


image.png

调试

在这里可以看到界面的布局和日志。和调试前端网页是一样的。
关于如何配置日志请看官网提供的地址:
https://doc.quickapp.cn/tutorial/getting-started/development-and-debugging.html

8、传包上线

如果第一次做快应用对快应用的上线绝对是懵逼的。不慌,里面的坑我已经踩过一部分了。
首先需要去注册各个平台的开发者账号:https://www.quickapp.cn/docCenter/post/71

8.1、签名文件

和开发原生的安卓程序一样,快应用也需要签名的,签名要用到openssl,这里有一个简单的方式去安装openssl。

  • 第一步:在这个网站下载openssl安装工具并安装(这里指windows用户):
    http://slproweb.com/products/Win32OpenSSL.html
    安装就是一路next点到底,最后有一个资助项目,这个可以不去资助。

  • 第二步:添加环境变量
    找到安装openssl的路劲下的bin目录,添加到path中。

    image.png

  • 第三步:监测是否安装成功
    在控制台输入openssl看看是不是下面的情况

    image.png

以上openssl就算安装完成。那么如何生成签名文件呢?
看下官方的文档吧:
https://doc.quickapp.cn/tools/compiling-tools.html

8.2、控制rpk的大小

当掌握到开发快应用的技巧之后,往往就控制不住自己的双手,慢慢的开始浪起来了,然后放各种图片,把界面做的那是花花绿绿,美不胜收。当经过测试的多轮测试没有bug之后,就有点扶不住墙了,感觉一切都在自己的控制之下,然而当你上传你的rpk发布时一句提示会秀得你头皮发麻:


image.png

没错,你的rpk要小于1M,此时你的心情应该是这样的:

image.png

主要是图片过多影响的,这个时候一些大图片就应该由服务器下载下来。不要再项目中放太多的图片,或者使用矢量图,iconfont等(注意:使用矢量图,和iconfont我并没有去测试过)。

8.3、提交一些必要的信息等待审核

在这个界面填写信息之后就可以提交审核啦。
https://www.quickapp.cn/myCenter/appManage/createApp

image.png

感觉我的应该能难通过审核。

9、多看快应用的官方文档和优秀的开源代码

我花了大概一个星期去学习快应用,主要的学习方式就是看文档。官方文档是非常重要的一个东西,里面基本将搭建环境到上线基本上都说得比较明白,接下来贴出快应用的官方文档地址。
https://doc.quickapp.cn/
当然也有很多优秀的程序员已经有关于快应用的开源代码了,我这边主要也是参考的张鸿洋的快应用:
http://www.wanandroid.com/blog/show/2096

10、本应用的代码地址

由于我也是刚开始学习快应用,可能写的东西并不是很好,还有很多地方可以优化,比如:分享操作可以提取出来做个一外部js调用,另外我对快应用的性能优化也是一无所知。如果你有兴趣看看我写的代码的话可以提供一些参考:
代码传送门:https://github.com/AxeChen/AxeChen_QuickApp (欢迎各位大佬给star)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 156,069评论 4 358
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 66,212评论 1 287
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 105,912评论 0 237
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,424评论 0 202
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 51,741评论 3 285
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,194评论 1 206
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,553评论 2 307
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,289评论 0 194
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 33,923评论 1 237
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,251评论 2 240
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,775评论 1 255
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,144评论 2 249
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,698评论 3 228
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 25,936评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,658评论 0 192
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,214评论 2 267
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,159评论 2 258

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 170,534评论 25 707
  • 用两张图告诉你,为什么你的 App 会卡顿? - Android - 掘金 Cover 有什么料? 从这篇文章中你...
    hw1212阅读 12,457评论 2 59
  • 小编为大家搜集了新SAT数学考试的考察方式及题量要求,最重要的是难度分析,SAT数学考试对于中国考生来说难度并不大...
    喵爪阅读 231评论 0 0
  • :「大圣×妲己」 妖历752年,孙悟空自称齐天大圣轰动三界。 当妲己从同族狐狸那听到这个消息时她的眼睛是发亮的。 ...
    椿花阅读 261评论 0 0
  • 一、关于前天(2017.12.30) 第一次体验蹦蹦床,对于柯仔和我来说就一个字形容”爽“ 连续玩了1个多小时...
    柯妈Rain阅读 157评论 0 0