• 6573阅读
  • 0回复

关于BlackBerry10 Native开发方面的一些知识 [复制链接]

上一主题 下一主题
离线XChinux
 

只看楼主 倒序阅读 楼主  发表于: 2013-01-09
一、关于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社交平台、位置服务、支付服务、个人信息管理、音视频、摄像、传感器、网络服务、提醒服务、推送服务等等。





二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
快速回复
限100 字节
 
上一个 下一个