一、關于cascades
cascades是BB10中一個專門的Qt庫,提供了許多系統基本元件(Control),它可以用QML形式來寫,也可以以C++形式來寫,并且QML可以與C++互動(Qt Quick庫也可以互動,本質是一樣的),隻是經過cascades的封裝,增加了QML與C++互動方面的一些容易使用的接口。
二、應用程式生存周期
應用程式可視狀态分為三種(如上圖):
1. foreground(全屏且正在與使用者互動)
2.background(即active frame狀态且使用者能看見)
3.invisible(不可見,比如其它其它程式正在與使用者互動、鎖屏等)
應用程式的運作狀态分為三種:
1. foreground可視狀态下的應用處于foreground running狀态
2.無背景運作權限的應用在active frame和invisible兩種可視狀态下為stopped狀态
3.有背景運作權限的應用在active frame和invisible可視狀态下處于background running狀态
要使應用有背景運作權限,需要在bar-descriptor.xml中加入下面選項:
<permission>run_when_backgrounded</permission>
是以,處于background running狀态的應用,是沒有 stopped運作狀态的,它能繼續處理操作和事件。
在上面幾種狀态之間切換時,bb::cascades::Application對象會發出狀态變化信号:
1. fullsreen() 應用全屏時
2.thumbnail() 應用被切換到active frame時
3.invisible() 應用不可見時 對于background active frame,預設是擷取從foreground切換到active frame時的截圖界面經過處理後的圖像,但使用者可以使用setCover()進行設定,當具有背景運作權限時,還可以動态設定。
三、cascades應用優化
1. 使用Device-Release模式編譯,此時編譯出來的是library
2. 将将是需檔案編譯加入到.qrc編譯成資源檔案,這樣在程式中加載起來快
3. QML優化。。。。。這内容就多了,比如減少動态加載、減少屬性聲明等等
4. 使用assets,即将常用檔案放到assets目錄中(無論是打包進去,還是放到.qrc中),這樣使用時可以用"asset:///xxxx"這樣的形式來調用
5. 建立UI時使用C++而非QML。 不過這一條,雖然能提升性能,但可開發性卻大大下降。
四、檔案系統
如上圖所示,BB10應用隻能運作在自己的sandbox中,即隻能通路自己工作目錄(working directory)及其子目錄下的檔案。在上圖中,native是app的子目錄,assets是native的子目錄,books, camera, documents, downloads, misc, music, photos, print, videos, voice都是shared的子目錄。workin directory即 可執行檔案目前所在目錄,也即QDir::current()所傳回的目錄。app和shared目錄下的内容是隻讀的。隻有當應用具有access_shared權限時,才能寫shared目錄下的内容。使用者不能在working directory下建立子目錄,應用自己的資源檔案(圖檔、QML、JS、聲音等等)應該放在app/native/assets目錄下,且是隻讀的。使用者自己的檔案,則放在data目錄下,這個目錄下使用者可以建立自己想要的任何檔案。db目錄存放資料庫檔案内容。logs目錄存放日志輸出。tmp目錄存放臨時檔案。QDir::home()傳回的是data目錄,QDir::temp()傳回的是tmp目錄。
五、關于資料庫
BB10支援Json、XML、SQL格式的資料庫,分别提供了JsonDataAccess、XmlDataAccess、和 SqlDataAccess通路的類。
六、其它接口
BB10還提供了其它諸如廣告服務、應用整合(比如與郵件、第三方應用等)、BB社交平台、位置服務、支付服務、個人資訊管理、音視訊、攝像、傳感器、網絡服務、提醒服務、推送服務等等。
原文連結:http://www.qtcn.org/bbs/read-htm-tid-52393.html