微信小程序是一個低門檻、流量巨大、公平競爭的優(yōu)質(zhì)營銷平臺,這些特性滿足了商家對于產(chǎn)品營銷的基本渴求,隨著小程序用戶的逐漸積累和沉淀,微信小程序的盈利風(fēng)口已經(jīng)開啟,在 2018年,也將迎來它的最佳紅利期。那么,對于開發(fā)者而言,如何敏捷、低成本的開發(fā)一款火爆小程序?
3月 31日,騰訊云聯(lián)合極客邦科技舉辦的云 社區(qū)技術(shù)沙龍,邀請了騰訊云、Layabox和加推科技的五位技術(shù)專家,從小程序開發(fā)云端解決方案、前端音視頻功能、小程序架構(gòu)設(shè)計和開發(fā)工具等不同維度,一站式分享解析了小程序敏捷開發(fā)最佳實踐,本文整理了精彩干貨內(nèi)容,感興趣的讀者可以點擊閱讀原文下載完整版 PDF。
1 云端:騰訊云微信小程序解決方案
微信小程序自發(fā)布以來,微信平臺上已經(jīng)出現(xiàn)了不少現(xiàn)象級小程序和小游戲,這些火爆小游戲的背后,離不開微信小程序的云端解決方案,為“跳一跳”這類小游戲的云上部署、網(wǎng)絡(luò)架構(gòu)和安全系統(tǒng)提供強有力的技術(shù)支撐。
來自騰訊云的微信小程序解決方案負責(zé)人黃榮奎,從小程序的核心架構(gòu)、開發(fā)者工具方案和微信小程序的云上實踐等方案,詳細講解了小程序開發(fā)過程中的常見問題,以及小程序快速開發(fā)和部署實踐,為開發(fā)者提供了一些小程序敏捷開發(fā)的思路方法。
小程序核心架構(gòu)分析
小程序的實現(xiàn)原理
小程序是一種新的開放能力,開發(fā)者可以快速地開發(fā)一個小程序。小程序可以在微信內(nèi)被便捷地獲取和傳播,同時具有出色的使用體驗。那么,小程序是如何實現(xiàn)的呢?
首先來看一下小程序的實現(xiàn)核心架構(gòu),如下圖,第一層是小程序的渲染層,即 Webviews,主要負責(zé);第二層是邏輯層,主要是通過業(yè)務(wù)邏輯實現(xiàn)登錄功能和支付功能;第三層可以理解為微信原生的能力,微信將很多的豐富的原生客戶端以及網(wǎng)絡(luò)、儲存、登錄、組件和硬件等能力提供到了給了開發(fā)者,存儲包括文件的讀寫、音視頻的讀寫等,組件即開發(fā)常用的組件,包括音視頻的錄制,還有攝象頭,還有拍照、掃碼等等。
這些原生能力和渲染層以及邏輯層之間,通過事件以及返回數(shù)據(jù)進行消息的傳遞及調(diào)用,當(dāng)用戶在界面上進行操作時候,會觸發(fā)相關(guān)事件,傳遞到原生 Webviews,再到業(yè)務(wù)邏輯層。微信小程序事件處理部分包含四個板塊:
-
Publish:Service 發(fā)送數(shù)據(jù)給 View(組建內(nèi)部使用)
Subscribe:Service 監(jiān)聽 View 事件(點擊事件等)
Invoke:Service 和 View 觸發(fā) Native 層(調(diào)用 wx.api)
On:Service 和 View 訂閱 Native 層事件(監(jiān)聽系統(tǒng)事件)
開發(fā)者工具方案介紹
在做小程序環(huán)境配置過程中,開發(fā)者需要準(zhǔn)備自己的服務(wù)器,因此需要花費很多精力在服務(wù)器運維以及周圍環(huán)境的部署上,而無法專注于小程序的業(yè)務(wù)開發(fā)。為了讓開發(fā)者從繁瑣的配置上解放出來,騰訊云發(fā)布了騰訊云微信小程序 Wafer 解決方案,幫助開發(fā)者更加便捷的部署和調(diào)試服務(wù)器。
因為企業(yè)級和個人開發(fā)者小程序的訴求不同,騰訊云為了滿足多方需求,分別定制了基于企業(yè)級的 IaaS 能力的解決方案 Wafer1和針對個人開發(fā)者的快速、方便、低門檻的解決方案 Wafer2。
Wafer1提供了一臺業(yè)務(wù)服務(wù)器和一臺會話服務(wù)器,業(yè)務(wù)服務(wù)器來部署和處理業(yè)務(wù)相關(guān)的邏輯,而會話服務(wù)器則用來獨立處理與用戶會話(登錄注冊等)相關(guān)的邏輯,業(yè)務(wù)與會話的分離有助于用戶將來對小程序后臺進行擴展,這樣就解決了服務(wù)器部署的問題。
使用 Wafer1,用戶需要獨立使用 FTP 等傳輸工具將代碼傳輸?shù)椒?wù)器上,并通過 SSH 命令行的形式部署代碼,這需要用戶有著 Linux 乃至運維等知識,門檻較高。Wafer 團隊在內(nèi)部分析這個問題之后,拋棄了原先直接將服務(wù)器所有權(quán)交給用戶的方式,由騰訊云統(tǒng)一部署和托管服務(wù)器,基于服務(wù)器封裝多種語言運行環(huán)境(目前支持 Node.js 和 PHP),將運行環(huán)境的使用權(quán)限交給用戶,通過微信開發(fā)者工具,可以將后端代碼一鍵上傳、部署到環(huán)境中,Node.js 版本還可以遠程調(diào)試代碼,大大提升了用戶開發(fā)效率,并且降低了開發(fā)和使用的門檻。
Wafer2 更加注重為個人開發(fā)者提供一種快速、方便、低門檻的解決方案。騰訊云將原來的業(yè)務(wù)服務(wù)器和會話服務(wù)器合并,提供開發(fā)環(huán)境和生產(chǎn)環(huán)境,開發(fā)環(huán)境和生產(chǎn)環(huán)境配置一樣,用于快速開發(fā)測試,生產(chǎn)環(huán)境用于部署提供線上服務(wù)的代碼。除此之外,騰訊云還與微信小程序團隊合作,將 Wafer2 集成近微信開發(fā)者工具之中。
小程序云上實踐
除了 IaaS 能力的解決方案 wafer ,騰訊云還提供了快速通信接口、登錄、語音識別等多種能力,用以滿足用戶在小程序開發(fā)過程中的各項功能需求。在這些基礎(chǔ)功能之上,騰訊云開發(fā)了聊天室和圖像識別兩大解決方案。
聊天室主要結(jié)合騰訊云的 Websocket服務(wù),利用信道通信技術(shù),實現(xiàn)小程序與服務(wù)器之間的信息互動和傳輸。如小程序在登錄時會向服務(wù)器獲取地址,騰訊云 PaaS級信道通信技術(shù)可以使當(dāng)前的用戶直接跟當(dāng)時的服務(wù)器直接連接,而不再需要跟業(yè)務(wù)服務(wù)器進行連接。
這樣做的好處是可以讓開發(fā)者在開發(fā)的時候不需要更多的關(guān)注 Websocket的實現(xiàn),避免 WebSocket帶來的性能消耗。
同時騰訊云基于萬象優(yōu)圖技術(shù)提供了圖片識別的 API,可用于包括身份證識別、活體校驗等領(lǐng)域,由于篇幅有限,本文不在此一一詳述,感性趣的同學(xué)可以進入騰訊云官網(wǎng)了解詳情。
2 前端:如何在小程序上增加音視頻功能
音視頻能力一直以來都是小程序上的一個短板,2017年 Q4,騰訊視頻云終端團隊與微信團隊通力合作,將騰訊視頻云的技術(shù)積累以 SDK的形式落地到了微信版本上,從而為小程序增加了直播和實時音視頻能力。騰訊視頻云終端技術(shù)負責(zé)人常青從原理剖析、技術(shù)演化、WebRTC和快速上手角度詳細講述了如何在小程序上增加音視頻功能。
原理剖析
下面是微信小程序內(nèi)嵌的音視頻組件,上層為小程序代碼層,中間是小程序的基礎(chǔ)庫,最下層為音視頻組件,其中,這里面的 SDK由兩部分組成的:一個是音視頻上行,音視頻下行。
上行解決主要解決音視頻的采集、處理、編碼和網(wǎng)絡(luò)幾個問題,其實現(xiàn)過程為首先將本地的畫面和聲音經(jīng)過采集然后進行預(yù)處理,如圖片的美顏,音頻的降噪等,然后進行編碼,這部分主要試進行數(shù)據(jù)壓縮,最后通過網(wǎng)絡(luò)模塊上傳到云端。
下行與上行對應(yīng),即將原來在云端的音視頻數(shù)據(jù)通過網(wǎng)絡(luò)傳輸、解碼等操作進行播放,在音視頻下行的過程中,視頻或聲音播放的速度直接取決于網(wǎng)絡(luò)的時速,為了保證播放效果,需要在解碼之前,對數(shù)據(jù)進行緩沖,這樣,即使網(wǎng)絡(luò)環(huán)境較差的情況下,也能在一定程度上保證播放順暢。
技術(shù)演進
微信小程序剛開始嵌入音視頻的能力時,很多技術(shù)點都無法實現(xiàn),騰訊視頻云團隊和微信團隊通力合作,通過長達半年的打磨和更新迭代,逐漸為小程序增加了一系列在線音視頻能力。
在線直播:對在線直播而言,最核心的關(guān)鍵點就是解決高并發(fā)的問題,騰訊云首先 UPLOAD上傳數(shù)據(jù),然后再將信號進行數(shù)字處理,對聲音進行相應(yīng)的清洗整合,最后通過放大器將信號逐級放大,讓每一個地區(qū)的音視頻接收端都能在就近的機房里面拉到高質(zhì)量的音視頻流,這樣可以解決音視頻卡頓和流暢性問題。
遠程調(diào)控:以去年比較火熱的在線抓娃娃機游戲為例,因為抓娃娃游戲?qū)ρ舆t要求非??量?,因此在解決方案上,需要構(gòu)建和實現(xiàn)超低延時的實時音視頻鏈路,這種鏈路能讓操作者在很短的時間內(nèi)看到遠程設(shè)備的視頻影像,保證娃娃機的可操控性。
雙向通話:在小程序上實現(xiàn)了超低延時鏈路之后,騰訊視頻云團隊又將回聲抑制、噪聲消除、自動增益、丟包恢復(fù)等一系列高門檻的聲學(xué)技術(shù)整合到小程序音視頻解決方案中。使得雙向音視頻通話既可以在技術(shù)上對開發(fā)者完全透明,又能在效果上匹配現(xiàn)實生活場景中的各種應(yīng)用(比如遠程定損,遠程客服,遠程理療,遠程開戶等等)。這其中最核心的部分,就是騰訊音視頻實驗室“天籟“聲學(xué)引擎的技術(shù)支持。
多人通話:雙人通話的時候是單對單的傳輸,但是在多人通話狀態(tài)時,信息是多對多的傳輸,這個時候需要一個總控系統(tǒng),去協(xié)調(diào)不同端的狀態(tài),協(xié)調(diào)各個端的輸出,包括什么時間點誰說話,誰不能說話。騰訊視頻云團隊,基于小程序自定義組件的設(shè)計標(biāo)準(zhǔn),實現(xiàn)了一套被稱作 RTCRoom的解決方案,用于對視頻房間進行狀態(tài)同步和統(tǒng)一管理。
整個技術(shù)演進路線走下來,從簡單的直播到 DNS再到雙向通話再到多人通信,基于小程序的音視頻的場景基本上都可以涵蓋了。
快速上手
騰訊云在這一塊提供了完整的云端解決方案,用戶可以直接根據(jù)自身需要登錄騰訊云后臺,空桶騰訊云服務(wù)就可以直接下載部署,整個操作步驟如下:
-
step1:授權(quán)登錄騰訊云;
step2:開通表前使用權(quán)限;
step3:開通騰訊云服務(wù);
step4:安裝小程序開發(fā)工具;
step5:下載并部署 Demo;
3 底層:微信小游戲架構(gòu)設(shè)計
小游戲自發(fā)布以來,微信平臺上已經(jīng)出現(xiàn)了不少現(xiàn)象級游戲,包括《跳一跳》、《保衛(wèi)蘿卜》等。通常,一般人會將小游戲歸屬為小程序的一個子類。但在技術(shù)實現(xiàn)上,微信小游戲和小程序的底層架構(gòu)、實現(xiàn)原理有著天壤之別,源于游戲需要的多用戶深度參與,因此小游戲最大的特點是去中心化分發(fā)以及好友關(guān)系鏈的傳播。
微信小游戲的這兩大特點也對架構(gòu)設(shè)計提出了特別的要求:第一是全區(qū)全服的需求,為了充分利用微信的社交網(wǎng)絡(luò),往往要求游戲是全區(qū)全服的(單機游戲除外);第二就是在線擴縮容的需求,因為任何一款游戲都可能成為爆款,在微信上可能有幾何式的增長,訪問量變化無法預(yù)測,所以在線擴縮容成為小游戲架構(gòu)的剛需。
某開發(fā)商的小游戲上線后很短時間內(nèi)在線人數(shù)從幾萬漲到了 200萬左右,因為系統(tǒng)架構(gòu)設(shè)計的時候存在性能瓶頸(緩存使用的是單實例 redis,數(shù)據(jù)庫也是單庫),在擴容時遇到了比較大的問題,通過對程序進行重構(gòu)和使用集群版的數(shù)據(jù)庫,最終解決了問題,但是由于耽誤了較多時間,造成了損失,在線人數(shù)出現(xiàn)了比較大下滑。所以希望小游戲的架構(gòu)夠輕、夠“小”,但是重點問題還是需要在架構(gòu)設(shè)計時前考慮。
計算層架構(gòu)設(shè)計
無狀態(tài)化的分層架構(gòu)
先來看下圖(左)的無狀態(tài)化分層架構(gòu),架構(gòu)圖如下圖所示,簡單說就是按照服務(wù)調(diào)用關(guān)系對節(jié)點進行分層,層和層之間由 LB(負載均衡)進行銜接,LB下的節(jié)點可以靈活的進行伸縮,這個架構(gòu)其實就是常用的 web架構(gòu),應(yīng)對一般的休閑類游戲也是夠用的。
右圖是無狀態(tài)化分層架構(gòu)在騰訊云上的一個最佳實踐,客戶端通過 CLB擴展平衡接入到后臺服務(wù),通過 BGP高防對游戲進行 DDoS防護,當(dāng)出現(xiàn)攻擊流量的時候,高防服務(wù)可以對流量進行清洗然后回注到系統(tǒng)中。騰訊云用不同的彈性伸縮組來承載不同的服務(wù),服務(wù)之間的調(diào)用通過內(nèi)網(wǎng)負載均衡進行銜接以方便實現(xiàn)動態(tài)擴縮容。這其中使用了一些騰訊云的服務(wù):
-
第一個是高性能的負載均衡 CLB:
單集群提供超過 1.2 億 的最大連接數(shù),用以應(yīng)對億級訪問量;
單集群可處理峰值 40Gb/s 的流量,每秒處理包量(PPS)可達 600 萬;
對每個租戶的流量進行嚴(yán)格隔離,提供主動 DDoS 防護能力。當(dāng)遭遇 DDoS 攻擊時,騰訊云負載均衡能免費提供 2~10 Gb DDoS 攻擊峰值流量的防御能力。
第二個為騰訊云彈性伸縮服務(wù) AS,彈性伸縮服務(wù)可以在不同時機對集群的節(jié)點數(shù)量進行伸縮,支持的策略包括定時擴縮容策略、基于監(jiān)控告警的策略、手動擴縮容策略等。擴容速度方面,在騰訊云上創(chuàng)建 1000臺云主機的平均耗時是 63秒。借助彈性伸縮服務(wù)以及騰訊云的基礎(chǔ)能力,可以很方便地對服務(wù)進行快速動態(tài)的擴縮容。
第三個是 BGP高防服務(wù),當(dāng)前安全形勢不容樂觀,攻擊流量唾手可得,在必要的時候可以通過 BGP高防服務(wù)對小游戲進行保護,它的特點是平臺擁有 T級的防護帶寬,提供基于 AI的精準(zhǔn)識別算法,以及業(yè)界最全的 BGP網(wǎng)絡(luò),在提供防護的同時可以最大程度保障網(wǎng)絡(luò)覆蓋質(zhì)量。
無狀態(tài)化分層架構(gòu)的優(yōu)點是可靠性高、單節(jié)點故障不影響整體可用性、可靈活擴展和收縮,但是對于游戲來說,存在兩個問題:1)節(jié)點的無狀態(tài)化要求處理每一個請求都要去存儲層讀寫數(shù)據(jù),會導(dǎo)致存儲層壓力較大,硬件成本較高,以及不適用于實時性要求高的場景;2)同層節(jié)點之間不能直接發(fā)送請求、下層節(jié)點也不能向上發(fā)送請求,對于部分游戲場景,需要通過共享數(shù)據(jù)和輪詢來解決,開發(fā)者來說并不方便,也會有實時性問題和性能損耗。
星型架構(gòu)
為了解決上述問題,小游戲團隊采用了星型架構(gòu),如下圖:
不同節(jié)點之間通過 router進行通信,router是實現(xiàn)節(jié)點間消息轉(zhuǎn)發(fā)的服務(wù)器。比如說 A節(jié)點中的 Player1對象要向發(fā)送 B節(jié)點中的 Player2對象發(fā)送組隊邀請,可以將消息發(fā)送到 router,router再轉(zhuǎn)發(fā)到 B節(jié)點處理之后再發(fā)送到 Player2的客戶端。在這個結(jié)構(gòu)中,所有的節(jié)點都是對等的關(guān)系,任何兩個節(jié)點通過 router都可以實現(xiàn)消息互通。但是這個圖有一個明顯的題:router是一個單點,有容錯性問題和可擴展性問題。對于容錯性問題,可以通過引入主備機制來解決,借助 zookeeper可以實現(xiàn)主備的自動切換,當(dāng)主節(jié)點不可用時,自動切換到備節(jié)點。
此外,可以通過 router將多個星型結(jié)構(gòu)連接在一起,解決可擴展性問題,如下圖:
player1 在 set 1的節(jié)點 A上,player2 在 set 2的節(jié)點 B上,player 1向 player 2 發(fā)送組隊邀請時,消息可以通過 router1 轉(zhuǎn)發(fā)到 router2,最后到達 B節(jié)點,在 B節(jié)點中進行必要的判斷處理,最后通知到 player2的客戶端,這就要求 router保存所有對象的路由數(shù)據(jù),類似下面這個表:
這里,router做了以下事情:
-
一是收斂連接,簡化了內(nèi)部通信的管理;
二是建立了通用的對象路由機制,簡化了游戲的開發(fā),游戲開發(fā)人員不用關(guān)心服務(wù)和進程,只用關(guān)心對象就可以了。
三是可以通過 router進行負載均衡和廣播。
router具有通用性,可以作為通用的游戲中間件。
基于這個架構(gòu),系統(tǒng)的擴展可以在兩個層面進行,一個是 set內(nèi)的擴展,當(dāng)大廳或者對戰(zhàn)節(jié)點不夠了時,可以動態(tài)添加,新節(jié)點會去 router上注冊自己,加入到系統(tǒng)中,當(dāng)一個 set的承載能力達到上限時,可以繼續(xù)通過復(fù)制 set進行擴展,假設(shè)已經(jīng)有了 set0和 set1,當(dāng)需要添加 set2時,整個過是先部署 set2,當(dāng) router2起來時,router0和 router1會通過 zookeeper發(fā)現(xiàn)它,并建立到它的連接,連接建立后,router2會向 router1或 router0獲取全量對象路由信息,并且將自己上面初始化后產(chǎn)生的對象路由信息發(fā)送給 router0和 router1。
到這里整個系統(tǒng)的通信拓撲就已經(jīng)建立完成了,set2可以對外開放,player2登錄到 set2的大廳節(jié)點后,會向 router2發(fā)送自己的對象路由信息,router2會把這個信息同步給 router0和 router1。簡單說,是通過復(fù)制節(jié)點和復(fù)制 set進行擴展,反之可以進行收縮。
下圖就是擴展星型結(jié)構(gòu)在騰訊云上的一個實踐,對于實時性要求高的游戲,比如坦克大戰(zhàn)這樣的游戲,可以多點部署,讓玩家就近接入,華南的玩家接入到廣州的 VPC,華東的玩家接入到上海的 VPC,兩個 VPC內(nèi)部分別部署了 set1和 set2,并且通過跨域?qū)Φ冗B接打通,使得router1和 router2能夠建立內(nèi)網(wǎng)連接,實現(xiàn)全區(qū)全服。
存儲層設(shè)計
小程序設(shè)計的目標(biāo)是建立一個大存儲層以滿足全區(qū)全服和動態(tài)擴容的問題。其中最重要的問題是數(shù)據(jù)庫水平擴展的問題,自己做可以有三種方法實現(xiàn):第一種基于增量區(qū)間的分片,它的優(yōu)點是可以實現(xiàn)動態(tài)在線擴容,但是存在性能熱點的問題,因為新分片永遠是訪問量最大的分片,而老分片會隨著玩家流失出現(xiàn)性能閑置的情況;第二種方法是根據(jù) ID的散列值將數(shù)據(jù)均勻分散到不同的分片,沒有性能熱點的問題,但是在對系統(tǒng)進行擴容時候,往往需要對數(shù)據(jù)進行搬遷,比較難以實現(xiàn)快速自動擴容;第三種方法就是將兩者結(jié)合,可以同時解決兩個問題,但是需要增加中間數(shù)據(jù)路由層,有研發(fā)負擔(dān)和性能損耗。
為了簡化存儲層的設(shè)計,現(xiàn)在比較廣泛使用的是騰訊云的分布式數(shù)據(jù)庫產(chǎn)品 DCDB,它的原理是通過增加中間代理層,將一個邏輯表映射到到多個物理表,將分片的復(fù)雜性完全封裝在代理層。對業(yè)務(wù)層可以做到近乎透明。
DCDB支持新增分片擴容和現(xiàn)有分片擴容,擴容時系統(tǒng)會自動對數(shù)據(jù)進行搬遷并且切換相應(yīng)的流量,對在線業(yè)務(wù)可以做到無感知,開發(fā)者只需要在控制臺進行簡單的操作就可以實現(xiàn)自動擴容。
另一個能簡化存儲層設(shè)計的產(chǎn)品是騰訊的 TCaplus,TCaplus是騰訊自研的,專為游戲設(shè)計的 NoSQL分布式數(shù)據(jù)庫,它的特點主要有三個:
-
一是支持 Protobuf接口訪問,接口友好,非常適合游戲開發(fā);
二是將 Cache與硬盤結(jié)合,冷熱數(shù)據(jù)自動換入換出,開發(fā)人員不用同時面對緩存數(shù)據(jù)庫和持久化數(shù)據(jù)庫;
三是存儲空間無上限,單表最大支持 50TB,支持不停服擴容,能很好地支持全區(qū)全服。
目前 TCaplus在騰訊內(nèi)部得到了廣泛使用,包括王者榮耀、火影忍者、CF以及絕地求生手游等數(shù)百款游戲,都以 TCaplus作為主數(shù)據(jù)庫。
4 工具:LayaAir引擎一鍵發(fā)布微信小游戲
LayaAir引擎是 Layabox推出的 HTML5開源引擎,不僅支持 AS3、TS、JS三種語言開發(fā) HTML5游戲,還可以同時發(fā)布為 Native APP游戲和微信小游戲,以及 QQ玩一玩游戲。開發(fā)者可直接在 LayaAirIDE工具內(nèi)快捷的開發(fā)產(chǎn)品和提交產(chǎn)品。Layabox 合伙人李明詳細分享了如何利用 LayaAir引擎與 LayaAirIDE工具一鍵發(fā)布微信小游戲。
小游戲創(chuàng)建前的準(zhǔn)備工作
發(fā)布微信小游戲之前需要做一些準(zhǔn)備工作,包括環(huán)境配置、工具下載、創(chuàng)建賬號等。
第一:環(huán)境配置,即下載并安裝引擎的開發(fā)環(huán)境。LayaAir引擎的開發(fā)工具 LayaAirIDE、發(fā)布小游戲的功能適配都在這個環(huán)境里面實現(xiàn);
第二:下載并安裝微信開發(fā)者工具;
第三:創(chuàng)建一個小程序的企業(yè)開發(fā)者帳號,獲得開發(fā)者 ID(AppID)。這里,值得注意的是,個人開發(fā)者不需要版號,但是也不能開內(nèi)購支付;對于企業(yè)開發(fā)者,如果版號沒辦完,也可以提供版號申辦回執(zhí)。
H5引擎開發(fā)微信小游戲的流程
H5引擎開發(fā)微信小游戲主要包括創(chuàng)建、開發(fā)、發(fā)布、真機調(diào)試與上線發(fā)布等步驟,首先需要在 IDE里面創(chuàng)建小游戲示例項目,然后用 IDE內(nèi)進行小游戲的開發(fā),開發(fā)完成后在 IDE內(nèi)可直接發(fā)布小游戲項目。小游戲項目發(fā)布后,還需要在微信的開發(fā)者工具內(nèi)導(dǎo)入 IDE發(fā)布的小游戲項目,然后通過在微信開發(fā)者工具內(nèi)的預(yù)覽和上傳功能,進行真機調(diào)試和上線發(fā)布。
在 IDE里面創(chuàng)建小游戲項目。這個比較簡單,打開新建項目按鈕即可看到創(chuàng)建界面,需要注意的是創(chuàng)建時一定要選擇微信小游戲 2D示例或微信小游戲 3D示例,否則不會創(chuàng)建微信開發(fā)者工具的工程文件,以及不會導(dǎo)入小游戲適配庫。
IDE內(nèi)進行小游戲開發(fā)。在小游戲開發(fā)過程中有一個很重要的關(guān)注點,是 4M本地包,這個本地包主要用于存放 JS文件與最基礎(chǔ)的預(yù)加載資源(整 個項目的 JS必須放在本地包),本地包超過 4M后,可遠程動態(tài)加載資源,通過 LayaAir引擎適配庫的本地包白名單功能,可以方便的管理本地資源與遠程資源的加載。另外,在小游戲的緩存管理這一塊,LayaAir引擎適配庫提供自動緩存管理與手動緩存管理,常用資源小于 50M的小游戲建議采用自動緩存管理,常用資源大于 50M的需要手動管理緩存。
IDE內(nèi)發(fā)布小游戲項目。項目開發(fā)完成后,可點擊發(fā)布按鈕,將 H5項目直接一鍵發(fā)布為小游戲項目,因為微信小游戲、QQ小游戲都提供了標(biāo)準(zhǔn)的渲染接口,LayaAir引擎通過建立適配庫,對不同平臺的接口與引擎 API進行對接,保障開發(fā)者一次開發(fā)就可以同時發(fā)布多平臺。
微信開發(fā)工具中導(dǎo)入項目。打開微信開發(fā)者工具,創(chuàng)建一個小游戲項目,創(chuàng)建時的目錄直接指向發(fā)布后的小游戲項目即可。
微信小游戲的調(diào)試。微信小游戲的調(diào)試包括常規(guī)開發(fā)調(diào)試和真機調(diào)試兩個部分,常規(guī)開發(fā)調(diào)試只需開發(fā)時在 IDE或 chrome下調(diào)試即可(小游戲工具內(nèi)也是基于 chrome),真機調(diào)試要求本地包必須小于 4M,微信的真機調(diào)試環(huán)境較為簡單,調(diào)試主要靠 log輸出。
小游戲上線發(fā)布。微信小游戲調(diào)試結(jié)束后,如果打算上線,直接在微信開發(fā)者工具內(nèi)點擊上傳,即可將小游戲版本提交到微信開發(fā)者平臺中,在平臺中提交相關(guān)資料,審核通過后,可上線。
以上,就是用 LayaAir引擎一鍵發(fā)布小游戲的完整流程。據(jù)悉,Layabox還將與騰訊云聯(lián)手優(yōu)化小游戲發(fā)布與開發(fā)流程,未來 LayaAirIDE中將集成一鍵上傳微信小游戲的動態(tài)加載包到騰訊云,避免人工拆分目錄 、打開服務(wù)器傳輸工具等繁瑣流程,同時,用戶還可以將 LayaAirIDE中的帳號與騰訊云關(guān)聯(lián)綁定,通過 IDE快速購買騰訊云的服務(wù)器。
5 實踐:如何利用小程序技術(shù)解決企業(yè)銷售難題
小程序時代,不僅需要懂開發(fā),還要你善運營,一個擁有多功能和高性能的小程序,需要配合完備的運營手段,才能發(fā)揮最大的價值。加推科技聯(lián)合創(chuàng)始人劉翌,分享典型企業(yè)營銷場景痛點解析,以及加推如何結(jié)合小程序解決企業(yè)銷售難題。
企業(yè)營銷痛點解析
在講解企業(yè)營銷痛點之前,劉翌分析了企業(yè)營銷的三大剛需,即收入、銷售和銷售管理,這里面,后兩點直接影響了企業(yè)收入,那么,企業(yè)如何做銷售和銷售管理呢?下圖是是一個中國 8000萬名銷售員的痛點的總結(jié),可以大部分企業(yè)都會面臨以下四大類的痛點:
-
首先獲客難度大,獲客成本非常高。舉個例子,大家經(jīng)常會碰到房產(chǎn)中介,每一天可能要打 300個電話,每個通話假設(shè)只有 30秒,核算下來也有 150分鐘,但一般電話銷售的最終轉(zhuǎn)化都非常低;
另外觸達率很低:假設(shè)在人員密集的展會上,一個銷售遞出去 500張名片,這其中,可能有 480張名片將會被拋棄,獲客觸達難,所以成交率就低;
銷售流動性高:在所有職業(yè)里面,銷售的流動性絕對是排前的,而一旦銷售離職,很多該銷售手上的客戶就會被帶走,最終造成客戶流失;
成交率低:不管是電話營銷、現(xiàn)場交流還是名片傳遞,這些方式的成交率都非常低,可能 2000個電話里面才會觸達 1個客戶,10場展會只有 1個實現(xiàn)轉(zhuǎn)化。
加推微信智能營銷解決方案
不管是微信公眾號、微商城、企業(yè)官網(wǎng)還是小程序,在企業(yè)初期階段,沒有推流和運營的情況下,獲客率一般都不高;即便獲的銷售線索,由于缺乏可視化、智能化篩選工具,營銷人員只能一對一聯(lián)系跟蹤,無法系統(tǒng)管理客戶,工作效率較低。
那么,有沒有一種通用的方法和工具,能夠打通企業(yè)、微信、小程序等不同渠道,將推廣、運營、銷售轉(zhuǎn)化形成有效的閉環(huán)?基于這種思路,加推結(jié)合微信小程序,從 SaaS小程序接入,開發(fā)了全球首款 B2S2C微信智能銷售系統(tǒng)。通過 AI名片、AI雷達等解決方案實現(xiàn)微信小程序 10億用戶的觸達與轉(zhuǎn)化。
-
AI名片:智能生成個人小程序名片,用戶只需掃一掃銷售小程序碼,即可添加名片,添加成功的用戶可以隨時查看銷售個人信息,包括個人聯(lián)系方式、公司職位、功能產(chǎn)品等,信息可根據(jù)需要自主設(shè)置;
AI銷售雷達:在小程序添加朋友之后,AI銷售雷達通過智能“客戶捕手”和客戶管理等功能,實時追蹤客戶行為軌跡,隨時隨地掌控客戶真實需求,及時跟進,同時客戶管理功能通過客戶畫像分析,標(biāo)簽化分類用戶,篩選精準(zhǔn)用戶;
BOSS雷達:BOSS雷達通過可視化員工分析系統(tǒng),將員工拜訪執(zhí)行過程同步到 BOSS系統(tǒng),沉淀準(zhǔn)客戶資源,同時,員工客戶數(shù)據(jù)自動保存云端,即使離職,所有數(shù)據(jù)都能保證全程可追溯。
總的來說,B2S2C微信智能銷售系統(tǒng)主要先深度打通微信原生消息通道,打通微信數(shù)據(jù)層,實時抓取客戶行為軌跡并生成用戶畫像,然后通過小程序技術(shù)重構(gòu)個人名片,搭建企業(yè)版微信朋友圈,利用 AI核心算法分析用戶行為數(shù)據(jù),尋找商業(yè)合作突破口,重構(gòu)客戶通訊錄,將微信流量導(dǎo)入企業(yè)官網(wǎng)或企業(yè)系統(tǒng),BOSS平臺可實時掌控員工客戶數(shù)據(jù),實現(xiàn)流量永久資源化。
版權(quán)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻,該文觀點僅代表作者本人。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如發(fā)現(xiàn)本站有涉嫌抄襲侵權(quán)/違法違規(guī)的內(nèi)容, 請發(fā)送郵件至 舉報,一經(jīng)查實,本站將立刻刪除。