天天看點

關于BlackBerry10 Native開發方面的一些知識

一、關于cascades

     cascades是BB10中一個專門的Qt庫,提供了許多系統基本元件(Control),它可以用QML形式來寫,也可以以C++形式來寫,并且QML可以與C++互動(Qt Quick庫也可以互動,本質是一樣的),隻是經過cascades的封裝,增加了QML與C++互動方面的一些容易使用的接口。

二、應用程式生存周期

關于BlackBerry10 Native開發方面的一些知識

應用程式可視狀态分為三種(如上圖):

       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。  不過這一條,雖然能提升性能,但可開發性卻大大下降。

四、檔案系統    

關于BlackBerry10 Native開發方面的一些知識

如上圖所示,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