[發(fā)明專利]基于安卓的Fluter容器及小程序的創(chuàng)建方法在審
| 申請?zhí)枺?/td> | 202210974522.6 | 申請日: | 2022-08-15 |
| 公開(公告)號: | CN115437762A | 公開(公告)日: | 2022-12-06 |
| 發(fā)明(設(shè)計)人: | 何衛(wèi)江 | 申請(專利權(quán))人: | 湖南興盛優(yōu)選網(wǎng)絡(luò)科技有限公司 |
| 主分類號: | G06F9/48 | 分類號: | G06F9/48;G06F9/445 |
| 代理公司: | 長沙大珂知識產(chǎn)權(quán)代理事務(wù)所(普通合伙) 43236 | 代理人: | 王瓊琦 |
| 地址: | 410205 湖南省長沙市高新開*** | 國省代碼: | 湖南;43 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 基于 fluter 容器 程序 創(chuàng)建 方法 | ||
本發(fā)明公開了基于安卓的Fluter容器及小程序的創(chuàng)建方法,包括以下步驟:修改Flutter SDK或定制Flutter SDK,生成各個工程所對應(yīng)的小程序安裝文件,以及支持小程序運行的主程序安裝文件;運行時根據(jù)用戶的操作下載對應(yīng)的小程序安裝文件,安裝并運行;構(gòu)建Flutter容器;構(gòu)建多進程的運行環(huán)境,使用DartEntryPoint和window.defaultRouteName,判斷小程序或APP運行方式,并進行調(diào)度。本發(fā)明提供了多進程+Flutter容器方案,可支持同時運行多個小程序應(yīng)用;小程序退出之后仍然保留之前的運行狀態(tài);提供了多種判斷當前運行環(huán)境是以小程序或獨立APP運行的方式。
技術(shù)領(lǐng)域
本發(fā)明屬于移動應(yīng)用技術(shù)領(lǐng)域,尤其涉及基于安卓的Fluter容器及小程序的創(chuàng)建方法。
背景技術(shù)
隨著移動業(yè)務(wù)的快速發(fā)展,某個廠商開發(fā)的移動APP開發(fā)可以達到數(shù)十款以上,現(xiàn)有技術(shù)中對業(yè)務(wù)或目標人群進行精細劃分,規(guī)劃出多APP垂直覆蓋的策略,不同的角色(工種)使用不同的APP,這樣不僅業(yè)務(wù)更加聚焦,而且APP也可快速迭代。但是隨著業(yè)務(wù)邊界延伸,同一個用戶可能同時擁有多個角色或者需要參與多項業(yè)務(wù),在作業(yè)時用戶就會需要同時使用到某個廠商的多個APP,多個APP的之間的切換會導致用戶的使用成本大大增加,且體驗非常不友好。
解決上述問題,本領(lǐng)域的一般做法是打造超級APP,然后以“小程序”的形式聚合不同的業(yè)務(wù)程序,比如微信小程序,支付寶小程序等。行業(yè)內(nèi)大部分是以原生為主的混合開發(fā),但一些廠商主要業(yè)務(wù)的APP都是基于跨平臺框架Flutter開發(fā),另外當前業(yè)內(nèi)并沒有Android平臺基于Flutter的小程序解決方案。
對于業(yè)界其他的小程序方案,如微信、支付寶小程序,基本都是通過WebView的來渲染,但WebView的渲染效果及體驗相對于原生實現(xiàn)來說還是有較大差距,相反Flutter這種自繪引擎方式,可以實現(xiàn)接近原生的體驗,相對與WebView來說更加高效。
發(fā)明內(nèi)容
基于Flutter版本的小程序框架,以支撐廠商各業(yè)務(wù)以小程序形式使用,不僅可以低成本遷移并聚合當前業(yè)務(wù)模塊,還可根據(jù)用戶實際需要下發(fā)對應(yīng)的業(yè)務(wù)程序。有鑒于此,本發(fā)明提出了基于安卓的Fluter容器及小程序的創(chuàng)建方法,包括以下步驟:
修改Flutter SDK或定制Flutter SDK,生成各個工程所對應(yīng)的小程序安裝文件,以及支持小程序運行的主程序安裝文件;
運行時根據(jù)用戶的操作下載對應(yīng)的小程序安裝文件,安裝并運行;
構(gòu)建Flutter容器,包括:以Activity作為單個Flutter容器,在主工程中AndroidManifest清單文件中預先注冊多個Activity,并指定不同的process;主工程中維護當前運行的小程序與容器的關(guān)系:當主工程收到啟動某一小程序指令時,首先判斷小程序是否已在運行的容器中,如果在則直接啟動對應(yīng)的容器,如果不在,則從未啟動的容器中選擇一個啟動,當新的容器啟動之后,發(fā)送廣播到主程序,主程序更新當前運行的小程序與容器關(guān)系;在miniAppActivity啟動之后,創(chuàng)建FlutterEngine,并根據(jù)需要啟動小程序名,將對應(yīng)的libapp.so的路徑以FlutterShellArgs的方式傳遞給FlutterEngine,以執(zhí)行Flutter加載對應(yīng)的小程序代碼執(zhí)行;Flutter容器執(zhí)行緩存策略:普通情況下,當小程序退出時,將在Activity finish時自動殺掉當前進程以釋放資源,如果設(shè)置為常駐小程序,將保持容器在后臺,下次啟動時將改容器重新拉起,以實現(xiàn)快速啟動;
構(gòu)建多進程的運行環(huán)境,使用DartEntryPoint和window.defaultRouteName,判斷小程序或APP運行方式,并進行調(diào)度。
進一步的,所述修改Flutter SDK,包括新增小程序編譯指令flutter buildminiApp,小程序編譯指令的編譯過程如下:
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于湖南興盛優(yōu)選網(wǎng)絡(luò)科技有限公司,未經(jīng)湖南興盛優(yōu)選網(wǎng)絡(luò)科技有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202210974522.6/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。





