天天看點

一文分析 快應用技術架構及業務前景

2018年3月 華為、小米、Oppo、Vivo、中興、聯想、魅族、一加、努比亞、金立 共10家國内終端廠商成立快應用聯盟,并召開快應用标準釋出會。

新成立的快應用聯盟,在快應用技術規範層面做了統一,保證快應用開發者開發的快應用,可以直接在所有快應用聯盟内廠商的終端裝置上運作。

一文分析 快應用技術架構及業務前景
2019年

中國移動終端公司

海信

先後加入快應用聯盟,快應用聯盟終端廠商增加到12家。
一文分析 快應用技術架構及業務前景
2021年4月23日,快應用聯盟召開

2021塊應用聯盟開發者大會

,并宣布

酷派

與從華為分拆出去的

榮耀

加入快應用聯盟。
一文分析 快應用技術架構及業務前景

截止到2021年9月,快應用聯盟終端廠商數量增加到14家,分别為:

華為、小米、Oppo、Vivo、中興、聯想、魅族、一加、努比亞、金立、中國移動終端公司、海信、酷派、榮耀。

一、快應用産生

2017年1月 微信正式推出小程式,截止到2017年底 微信小程式月活已突破2億,上線小程式已經超過58萬個,微信小程式開發者超過100萬,微信小程式使用者累計已超過 4 億。

微信擁有超過10億的使用使用者,面對如此龐大的使用者基數,與微信小程式的蓬勃發展,終端廠商聯合起來組成快應用聯盟,主要有以下兩方面的原因:

  • 維護終端廠商在

    應用分發、應用預裝和應用營銷

    方面

    巨大收益

    對于國内終端廠商,應用分發、應用預裝和應用營銷方面利潤巨大。而微信小程式的上線,使其在微信内形成閉環,擁有海量使用者的

    微信App

    直接轉變為

    應用分發市場

    ,加之微信小程式的蓬勃發展,直接影響了終端廠商在應用分發方面的收益。
  • 阻擊微信小程式

    争奪應用分發入口的控制權

    微信擁有超過10億的使用使用者,面對如此龐大的使用者基數,單打獨鬥并不是終端廠商最好的選擇,結盟對抗、制定統一标準、共同推廣,将應用分發入口牢牢地把握在自己手中,成為了國内終端廠商必然的選擇。

二、快應用介紹

快應用宣稱

以Web前端語言開發原生應用

使用者無需下載下傳安裝,即點即用,享受原生應用的性能體驗

快應用在實作上使用

HTML5語言

ES6标準的js腳本

CSS3樣式标準

以及

Flexbox布局标準

進行開發,

使用JS語言調用Android Framework提供的應用程式元件進行應用的渲染

,并且

以獨立程序的形式運作在Android系統中

擁有與原生應用相近的使用者使用體驗

一文分析 快應用技術架構及業務前景

2.1 快應用入口

在快應用聯盟的手機裝置中,不同的裝置廠商,其快應用入口可能略有不同。但基本存在于手機的

應用市場

應用市場——快應用中心

負一屏

桌面快應用圖示

等位置。

以下為華為裝置,快應用入口舉例:

一文分析 快應用技術架構及業務前景

2.2 快應用現狀

快應用營運方:

快應用營運方為萬咖壹聯的子公司玩咖歡聚。

機型支援情況:

截止到2020年9月,快應用聯盟官方論壇公布的支援快應用的裝置以及機型如下圖所示:

一文分析 快應用技術架構及業務前景

快應用的機型覆寫、場景覆寫、架構版本(2020.09更新):

https://bbs.quickapp.cn/forum.php?mod=viewthread&tid=2524

發展狀況 2019:

快應用聯盟 生态合作方之一的

輕粒子統計

,曾于2020年1月14日公布

《2019快應用行業報告》

報告指出:

  • 截止到2019年12月,快應用

    月活3億

    應用開發者1.5萬

  • 快應用數量占比最多的兩個品類依次為

    生活服務類快應用

    實用工具類快應用

    生活服務類快應用是與使用者衣食住行相關的場景,比如附近就餐、旅館推薦、打車服務、天氣服務等;

    實用工具類快應用,如交話費、寄快遞(小米手機負一屏 快應用卡片 菜鳥裹裹)。

一文分析 快應用技術架構及業務前景

發展狀況 2020:

快應用營運方 玩咖歡聚 于2021年4月20日,舉辦快應用聯盟開發者大會,其公布的資料如下:

  • 2020快應用在網裝置覆寫量超過12億;
  • 2020年快應用使用者留存達70.33%;
  • 與去年相比,活躍使用者穩步增長37%,活躍快應用數量穩步增長46.7%,實用工具成為使用者最為活躍的快應用品類。

注:

以上公布的資料中,在網裝置覆寫量為12億,指的是快應用聯盟裝置出貨量,也就是

快應用聯盟終端廠商累計賣出的裝置數量

,這些裝置中僅預裝了

快應用運作架構的APP

,可以為快應用的運作提供運作環境,并非是累計使用者12億。

2021年4月20日快應用聯盟開發者大會公布的資料中,未包含任何

快應用的日活、月活

已上線快應用數

注冊開發者數量

累計使用者資料

等關鍵數字。

快應用社群活躍度:

從目前快應用開發社群、快應用Github活躍程度,可以猜測快應用發展可能非常不順利,各種關鍵資料可能非常不樂觀。

  • 快應用開發者社群

    注冊會員數量 僅2926

    快應用跟帖數量 僅7253

    。快應用開發者社群比較冷淡,開發者關注度不高。
    一文分析 快應用技術架構及業務前景
  • 快應用Github對應的

    sample開發案例fork數量 僅為205

    點贊僅為291

    ,猜測快應用開發者數量應該比較少,猜測僅有2~3萬左右。
    一文分析 快應用技術架構及業務前景

基于以上資料推測,

快應用發展可能非常不順利

資料可能很不樂觀

總結

因快應用聯盟從未公布過,快應用的

日活、月活

已上線快應用數

注冊開發者數量

累計使用者資料

(快應用聯盟生态合作夥伴,輕粒子統計也僅在2020年1月公布過一次2019年底快應用的月活、注冊開發者人數),其他關鍵資料均無法擷取。

僅就目前掌握的資料,就快應用發展現狀進行推測:

快應用發展可能非常不順利 , 注冊開發者等資料可能很不樂觀

  • 從Github與社群活躍情況推測,快應用注冊開發者可能僅2~3萬;
  • 快應用的月活資料,更多的是靠華為、小米等終端廠商負一屏的工具類卡片來支撐,快應用使用者可能都不清楚自己使用過快應用,更不用說自己到快應用中心查找相應的快應用(親身使用發現:快應用中心 在終端應用商城App的入口也較深,不易被使用者發現)。

三、快應用技術架構

快應用

以Web前端語言開發原生應用

,使用

HTML5語言

ES6标準的js腳本

CSS3樣式标準

Flexbox布局标準

使用JS語言調用Android Framework提供的應用程式元件進行應用的渲染

以獨立程序的形式運作在Android系統中

擁有與原生應用相近的使用者使用體驗

3.1 技術架構

以下是我基于

快應用開發文檔

反編譯快應用運作架構(quickapp_platform.apk)

以及參考

React Native實作原理

繪制的快應用技術架構圖。

一文分析 快應用技術架構及業務前景

3.1.1 快應用(xxx.rpk)

快應用打包後為一個

xxx.rpk

檔案,并且大小包不超過1M。

其包結構如下圖所示:

一文分析 快應用技術架構及業務前景

開發快應用時,快應用工程目錄結構如下所示:

└── src
│   ├── assets          # 公用的資源(Images/Styles/字型...)
│   │   ├──images       # 存儲 png/jpg/svg 等公共圖檔資源
│   │   └──styles       # 存放 less/css/sass 等公共樣式資源
│   ├── helper          # 項目自定義輔助各類工具
│   ├── pages           # 統一存放項目頁面級代碼
│   ├── app.ux          # 應用程式代碼的入口檔案
│   └── manifest.json   # 配置應用基本資訊
└── package.json        # 定義項目需要的各種子產品及配置資訊
           

為保證使用者在快應用中心,點選對應的快應用時可以迅速打開,供使用者使用,

快應用的rpk包大小要求不能超過1M

,否則無法通過快應用市場稽核。

一文分析 快應用技術架構及業務前景

3.1.2 快應用服務架構

快應用的運作環境是 一個已經預裝到終端手機的 App (

quickapp_platform.apk

):

  • 與微信小程式類似,微信小程式的運作環境由微信App來提供。
  • 而快應用的運作環境由

    quickapp_platform.apk

    來提供,

    quickapp_platform.apk

    這個App在裝置出廠前已經預裝到 快應用聯盟終端廠商的手機中,終端手機廠商稱之為

    快應用服務架構

    ,實際為一個App。

3.1.3 快應用JS與Java Native API通信

快應用号稱“

以Web前端語言開發原生應用,擁有與原生應用相近的使用者使用體驗

”,那麼“

通過JS調用Java Native API就是一個待解決的問題

”。

這一點上,快應用與

React Native

的實作是一緻的,通過

JavaScriptCore

來實作。JavaScriptCore是開源項目WebKit代碼的一部分,JavaScriptCore是WebKit内嵌的JS引擎。

  • JavaScriptCore可以實作在原生代碼裡面執行JavaScript 而不用通過浏覽器。
  • JavaScriptCore可以把原生對象注入到JavaScript環境中。

    JavaScriptCore提供了 JS 代碼與原生代碼互動的能力,通過 JavaScriptCore可以實作兩端的對象暴露,使得代碼可以不斷地在JS環境和原生環境穿梭。

一文分析 快應用技術架構及業務前景

快應用服務架構通過

JavaScriptCore

開源架構實作與

Android原生代碼的通信

,實作從JS的API到Java API的調用,進而實作使用Android原生應用元件進行渲染。

3.2 快應用如何下載下傳

快應用的rpk包大小要求不能超過1M

這裡以小米快應用中心,點選下載下傳快應用抓包進行舉例說明。

3.2.1 快應用中心

打開小米快應用中心,其效果圖如下所示:

一文分析 快應用技術架構及業務前景

3.2.2 快應用清單資料

通過抓包,可以檢視小米快應用中心清單資料。打開快應用中心時,應用清單資料中包含每個快應用的

包名

描述資訊

一文分析 快應用技術架構及業務前景

3.2.3 快應用下載下傳位址

以快應用 “

荒野日記

” 為例,使用者點選 “

秒開

” 按鈕時,快應用中心

根據快應用包名

請求

對應快應用的下載下傳位址

一文分析 快應用技術架構及業務前景

3.2.4 下載下傳快應用

仍然以快應用 “ 荒野日記 ” 為例,擷取到快應用的下載下傳位址後,直接下載下傳對應的快應用。

荒野日記快應用下載下傳位址:

https://t2.market.xiaomi.com/download/Mina/0b7295bd94ba17ad2cd7598ad80dd7ffffa435403

下載下傳後的快應用檔案為 0b7295bd94ba17ad2cd7598ad80dd7ffffa435403,該檔案雖然無擴充名,但實際一個壓縮封包件(也是一個.rpk檔案)。

一文分析 快應用技術架構及業務前景

給下載下傳後的快應用 0b7295bd94ba17ad2cd7598ad80dd7ffffa435403 添加一個擴充名:

一文分析 快應用技術架構及業務前景

解壓快應用(解壓.rpk檔案),可以看到其符合一個.rpk檔案的包結構,并且快應用中基本均為代碼實作,幾乎沒有圖檔資源(為了減小快應用xxx.rpk檔案的大小,提升使用者下載下傳使用快應用的體驗)。

一文分析 快應用技術架構及業務前景

再對比一下.rpk檔案的包結構,結構一緻:

一文分析 快應用技術架構及業務前景

3.3 快應用原理總結

使用者在

快應用中心

點選某個快應用時,

快應用中心

僅僅下載下傳了一個

小于1M的快應用程式入口

,快應用的其他大部分媒體資源存放于遠端服務端(随使用者使用按需逐漸下載下傳);

下載下傳完成的快應用程式,其運作環境由一個叫做

快應用運作架構的APP

提供(

快應用運作架構App

在手機裝置出廠時,已經預裝到快應用聯盟的裝置中),進而在使用者感覺上免去了

快應用

的下載下傳與安裝過程,達到使用者快速使用的目的。

同時由于

快應用程式包小于1M

快應用功能承載能力有限

,僅包含對應

原生APP的部分功能

或僅為

某個原生遊戲APP的預覽版本

3.4 快應用 VS 微信小程式

快應用

微信小程式

在技術實作上基本沒有差别。

  • 微信小程式的運作環境由 微信App 來提供。
  • 快應用的運作環境由 quickapp_platform.apk(快應用運作架構) 來提供。

    quickapp_platform.apk

    這個App在裝置出廠前已經預裝到 快應用聯盟終端廠商的手機中,終端手機廠商稱之為 快應用服務架構 ,實際為一個App。
一文分析 快應用技術架構及業務前景

參考

萬咖壹聯:

http://www.wankaonline.com/home

玩咖歡聚:

http://www.wankacn.com/

快應用官方:

https://www.quickapp.cn/

快應用介紹:

https://www.quickapp.cn/course

2019年快應用行業報告:

[https://statres.qinglizi.cn/quickapp_statistics)

React Native運作原了解析:

https://cloud.tencent.com/developer/article/1036325

詳解React Native渲染原理:

https://www.jianshu.com/p/7e7b462c187b

深入了解JavaScriptCore:

https://cloud.tencent.com/developer/article/1406122

JavaScriptCore 整體介紹:

https://zhuanlan.zhihu.com/p/29663994

NativeJS了解和使用:

https://www.jianshu.com/p/7b022c176a0b

== THE END ==

一文分析 快應用技術架構及業務前景