基于Cordova的跨平臺智能家居移動終端的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于智能家居移動終端設(shè)計(jì)領(lǐng)域,具體涉及基于Cordova的跨平臺智能家居移動終端設(shè)計(jì)方法。
技術(shù)背景
[0002]隨著移動互聯(lián)網(wǎng)的逐漸普及,面向移動互聯(lián)網(wǎng)的應(yīng)用、服務(wù)快速發(fā)展,各大移動平臺如Google的Android、蘋果的1S等不斷地拓展、豐富移動平臺的功能。移動設(shè)備終端已逐漸成為日常生活中不可或缺的產(chǎn)品,而與此同時(shí),移動互聯(lián)網(wǎng)應(yīng)用也正在向生活化、人性化的趨勢發(fā)展,逐漸滲透人們的生活、社交當(dāng)中,智能家居也開始走進(jìn)一些家庭中。
[0003]智能家居系統(tǒng)是一個(gè)集硬件、軟件、通信多方面技術(shù)的應(yīng)用系統(tǒng),其中移動終端作為用戶操作行為的接口,擁有遠(yuǎn)程控制、監(jiān)控等豐富功能。當(dāng)前移動終端設(shè)備有各種品牌,擁有不同的系統(tǒng)平臺,目前大部分廠商需要為智能家居移動終端開發(fā)適合多種平臺的軟件,需要根據(jù)不同平臺的API進(jìn)行原生應(yīng)用的開發(fā),而現(xiàn)今流行的主流移動平臺操作系統(tǒng)有Android、1S、Windows Phone等,分別在各自的移動操作系統(tǒng)上進(jìn)行原生應(yīng)用的開發(fā),會帶來昂貴的開發(fā)費(fèi)用、耗費(fèi)大量人力、增加修改維護(hù)難度,若僅僅對部分功能進(jìn)行細(xì)微修改,也不能避免在各個(gè)操作系統(tǒng)上單獨(dú)進(jìn)行版本改動。
[0004]對于上述的問題,首先考慮到的解決方案,就是選擇一個(gè)跨移動平臺的應(yīng)用開發(fā)解決方案,當(dāng)前國內(nèi)外主流的跨移動平臺應(yīng)用開發(fā)解決方案,主要有兩種:1.利用B/S架構(gòu)開發(fā)基于Web的移動應(yīng)用,但這類應(yīng)用缺乏本地功能支持,如設(shè)備傳感器數(shù)據(jù)等;2.利用跨移動平臺開發(fā)框架,如Apache Cordova、Titanium、Corona等,這類應(yīng)用能夠抽取出大部分公共模塊,并結(jié)合對本地操作系統(tǒng)API的支持,比較節(jié)省開發(fā)成本。對于智能家居移動終端應(yīng)用來說,大部分廠商都把遠(yuǎn)程控制家電、視頻監(jiān)控、安防警報(bào)等作為研發(fā)的重點(diǎn)功能,而這些功能的實(shí)現(xiàn),需要涉及家電設(shè)備信息數(shù)據(jù)處理、不同視頻監(jiān)控設(shè)備廠商的SDK整合以及移動平臺上的消息推送技術(shù),顯然需要采用第二種方案,但是單純利用開發(fā)框架,也未能很好地滿足智能家居移動終端應(yīng)用程序的功能實(shí)現(xiàn),故本發(fā)明對框架進(jìn)行模塊擴(kuò)展,以滿足更復(fù)雜的功能需求。
【發(fā)明內(nèi)容】
[0005]本發(fā)明的目的在于針對智能家居移動終端應(yīng)用的多平臺開發(fā)問題,對ApacheCordova框架進(jìn)行模塊擴(kuò)展,基于此設(shè)計(jì)并實(shí)現(xiàn)了基于Cordova的跨平臺智能家居移動終端。
[0006]為了實(shí)現(xiàn)上述目的,本發(fā)明采用的技術(shù)方案如下。
[0007]基于Cordova的跨平臺智能家居移動終端,包括Apache Cordova框架、數(shù)據(jù)緩存擴(kuò)展模塊、視頻監(jiān)控?cái)U(kuò)展模塊、消息推送擴(kuò)展模塊以及Web層主要邏輯模塊,整個(gè)終端通過Cordova框架支撐,分為Web層、Cordova層以及Native適配層,其中Native適配層提供底層功能支持,Cordova層包括各所述擴(kuò)展模塊;Web層提供各擴(kuò)展模塊的Javascript封裝,以及上層的功能邏輯;
所述數(shù)據(jù)緩存擴(kuò)展模塊包括:數(shù)據(jù)緩存DataCache Plugin適配模塊,實(shí)現(xiàn)Android端與1S端的適配,用于向Web層提供本地沙盒環(huán)境的文件讀寫、Sqlite數(shù)據(jù)庫讀寫功能;
所述視頻監(jiān)控?cái)U(kuò)展模塊包括:視頻監(jiān)控Monitor Plugin適配模塊,實(shí)現(xiàn)Android端與1S端的適配,用于向Web層提供視頻監(jiān)控模塊調(diào)用,能在Native層接入第三方視頻監(jiān)控SDK,上層通過Javascr ipt調(diào)用開啟、控制視頻監(jiān)控模塊;
所述消息推送擴(kuò)展模塊包括:消息推送Push Plugin模塊,實(shí)現(xiàn)Android端與1S端的適配,用于向Web層提供消息推送、通訊模塊調(diào)用;
所述Web層主要邏輯模塊包括:基于HTML、CSS、Javascript以及jQuery MobiIe技術(shù)的UI界面、功能邏輯,這一層通過Javascr ipt來調(diào)用Cordova擴(kuò)展模塊功能。
[0008]進(jìn)一步地,基于Cordova擴(kuò)展模塊為針對智能家居移動應(yīng)用而設(shè)計(jì)的本地功能支持模塊,其通過Cordova框架連接Javascript層與Native層,向上提供Javascript接口調(diào)用,并能在Nat ive適配層執(zhí)行完畢之后,通過Cal Iback回調(diào)Javascr ipt層中的回調(diào)函數(shù)。
[0009]進(jìn)一步地,所述的數(shù)據(jù)緩存模塊,能夠通過統(tǒng)一的Javascript接口進(jìn)行數(shù)據(jù)讀寫、查詢操作,針對沙盒環(huán)境內(nèi)的文件進(jìn)行讀寫,讀寫包括Sqlite文件的讀寫,使得Javascript層可以訪問Andro i d或者1S的沙盒數(shù)據(jù)文件內(nèi)容。
[ΟΟ?Ο] 進(jìn)一步地,所述的視頻監(jiān)控模塊能夠通過Javascript接口進(jìn)行視頻監(jiān)控的調(diào)用,此模塊在不同平臺上進(jìn)行對應(yīng)的第三方SDK接入,通過Javascr ipt層傳入的具體參數(shù)進(jìn)行視頻監(jiān)控調(diào)用。
[OO11 ] 進(jìn)一步地,所述的消息推送模塊能夠通過Javascript接口進(jìn)行Native消息通訊模塊的調(diào)用,包括Android端的TransService提供的消息通訊服務(wù),以及1S中的消息拉取。
[0012]進(jìn)一步地,能夠共享Web層主要邏輯,并通過Javascript接口調(diào)用底層數(shù)據(jù)緩存模塊、視頻監(jiān)控模塊以及消息推送模塊,通過Cordova框架達(dá)到跨平臺目的。
[0013]進(jìn)一步地,本發(fā)明的主要內(nèi)容包括基于Apache Cordova框架的跨平臺智能家居移動終端設(shè)計(jì)如下:
I)數(shù)據(jù)緩存擴(kuò)展模塊
該模塊DataCache Plugin主要包含了如下幾個(gè)子模塊:Act1nDispatcher,DBHelper,F(xiàn)i IeHe Iper。其中Act1nDispatcher用于分發(fā)Javascr ipt層調(diào)用的服務(wù)命令,分析傳入的參數(shù);DBHelper用于處理Native環(huán)境的Sqlite數(shù)據(jù)文件操作,包括查詢、更新、插入等常用操作;FileHelper用于處理Native環(huán)境的文件讀寫操作。此模塊提供了在Javascript層面操作Native的沙盒環(huán)境下的緩存數(shù)據(jù)的功能,能夠滿足面向智能家居移動應(yīng)用的功能需求,提高本地?cái)?shù)據(jù)緩存的利用。
[0014]2)視頻監(jiān)控?cái)U(kuò)展模塊
該模塊Monitor Plugin主要包含了:參數(shù)解析Params Parser,用于解析Javascript層傳入的調(diào)用參數(shù);事件管理EventHandler,用于本地模塊的事件通知處理;平臺相關(guān)的視圖組件(如Android中的Activity、SurfaceView,1S中的ViewcontroIler、UIView等),用于提供可視化組件的接入,包括接入第三方視頻監(jiān)控SDK?;诒灸K,上層的Web代碼可以利用Javascr ipt調(diào)用來實(shí)現(xiàn)視頻監(jiān)控功能。而Javascr ipt的接口封裝也將通過Cordova的exec ()接口與底層通信,通過Plugin的實(shí)際Nat ive代碼段來實(shí)現(xiàn)具體平臺上的功能。對于視頻監(jiān)控第三方接入,將預(yù)留相關(guān)抽象接口。
[0015]3)消息推送擴(kuò)展模塊
該模塊Push Plugin主要包含了消息通訊在移動平臺Native環(huán)境下的網(wǎng)絡(luò)通信組件,由于不同平臺的推送機(jī)制不一樣,故本模塊在對應(yīng)平臺的適配上會有較大區(qū)別,如Android中包括了心跳模塊組件(Heartbeat Task,利用了Android的BroadcastReceiver和AlarmManager結(jié)合,用于維護(hù)TCP長連接)、消息隊(duì)列、消息處理組件以及通知組件等,而1S中包括用戶注冊、token管理、NotiParser通知分析以及MsgTrans消息通訊。
[0016]在該模塊的實(shí)現(xiàn)中,將根據(jù)不同平臺的消息推送機(jī)制而進(jìn)行不同的適配。比如Android中由于國內(nèi)網(wǎng)絡(luò)訪問Google服務(wù)器的情況不大理想,故采用TCP長連接的方式來進(jìn)行通訊鏈路的?;?,而1S本身具備蘋果的APNS推送機(jī)制保障,故推送鏈路保活交由1S系統(tǒng)即可。
[0017]4)Web層UI及頁面邏輯模塊
Web層主要包含了 =Javascript的模塊封裝,即對前面所述擴(kuò)展模塊的接口封裝;頁面邏輯模塊,可以調(diào)用底層Native功能的邏輯模塊;用戶界面模塊,包括基于HTML、CSS、jQuery Mobile相結(jié)合的用戶U10
[0018]該模塊主要為上層邏輯,也是在跨平臺開發(fā)中可以復(fù)用的部分,智能家居移動應(yīng)用中的主要邏輯可以利用Javascript結(jié)合HTML、CSS、jQuery MobiIe等技術(shù)來實(shí)現(xiàn),如果邏輯變更,也可以應(yīng)用到多個(gè)平臺中。
[0019]隨著物聯(lián)網(wǎng)的興起,越來越多的家電廠商、互聯(lián)網(wǎng)公司加入到智能家居解決方案的研究當(dāng)中。目前主流的智能家居解決方案中,少不了對多移動平臺的支持,但是在各平臺的智能家居移動終端上都進(jìn)行原生應(yīng)用程序的開發(fā),會耗費(fèi)開發(fā)團(tuán)隊(duì)較大的人力物力,同時(shí)產(chǎn)生后期各平臺維護(hù)的較高成本。
[0020]與現(xiàn)有技術(shù)相比,本發(fā)明基于ApacheCordova跨移動平臺開發(fā)框架,對該框架進(jìn)行復(fù)雜功能模塊擴(kuò)展,并使用標(biāo)準(zhǔn)Web語言構(gòu)建跨平臺智能家居移動應(yīng)用,具有以下幾個(gè)優(yōu)占.V.I)跨平臺共享主要邏輯。
[0021]本發(fā)明根據(jù)智能家居移動應(yīng)用的復(fù)雜功能需求,設(shè)計(jì)實(shí)現(xiàn)了Cordova的擴(kuò)展模塊,并基于此進(jìn)行Javascript層封裝,使得主要邏輯部分可以在上層編寫,并調(diào)用底層模塊。在不同移動平臺上,能夠復(fù)用上層邏輯,達(dá)到跨平臺的目的。
[0022]2)平臺可擴(kuò)展性強(qiáng)。
[0023]由于ApacheCordova目前對眾多移動平臺都有支持,如果要增加對新的移動平臺的支持,比如Windows Phone,只需要對擴(kuò)展模塊進(jìn)行平臺適配工作,即可以共享上層邏輯模塊,所以擁有更強(qiáng)的平臺擴(kuò)展性。
[0024]3)開發(fā)、維護(hù)、變更成本低。
[0025]由于在多平臺開發(fā)時(shí),應(yīng)用的主要邏輯部分由上層Web語言編寫,包括UI界面以及各功能操作邏輯,而這些模塊都可以得到跨平臺復(fù)用,比獨(dú)立應(yīng)用開發(fā)的方式更低成本。同時(shí),上層邏輯通常會有較多的變更與維護(hù),故在維護(hù)、變更時(shí),只需要進(jìn)行更改一次,即可運(yùn)用到各平臺上,所以維護(hù)變更成本更低。
[0026]4)利用Web語言調(diào)用復(fù)雜本地模塊。
[0027]基于Cordova進(jìn)行模塊擴(kuò)展,并使用Javascript進(jìn)行接口封裝,使得開發(fā)主要邏輯部分均使用標(biāo)準(zhǔn)Web語言,來調(diào)用本地復(fù)雜模塊,相較單純的Webvi ew應(yīng)用開發(fā),具有更強(qiáng)大的本地功能支持。
【附圖說明】
[0028]圖1為本發(fā)明的基于Cordova的跨平臺智能家居移動終端總體架構(gòu)圖;
圖2為本發(fā)明的Cordova框架總體設(shè)計(jì)圖;
圖3為本發(fā)明的基于Cordova的DataCache擴(kuò)展模塊設(shè)計(jì)圖;
圖4為本發(fā)明的基于Cordova的MonitorPlugin擴(kuò)展模塊設(shè)計(jì)圖;
圖5為本發(fā)明的基于Cordova的PushPlugin擴(kuò)展模塊設(shè)計(jì)圖。
【具體實(shí)施方式】
[0029]以下結(jié)合附圖和實(shí)例對本