【BB10开发】通过编译QML为二进制代码来加速启动兼保护源代码

QML是可以通过编译为二进制代码来加速启动的,同时编译QML兼具保护源代码的效果。
以下的实例是经过与老外讨论总结出来的,测试通过:

1. 项目根目录新建文件qrc-assets.qrc 内容为:
<!DOCTYPE RCC>
<RCC version="1.0">
<qresource>
<file>assets/main.qml</file>
<file>assets/common/mycomponent.qml</file>

...
</qresource>
</RCC>

关键点:包含 所有qml文件。不支持通配符

2. 修改.pro文件,最后加入:
RESOURCES += qrc-assets.qrc
DEPENDPATH += assets

3.修改bar-descriptor.xml,以过滤 *.qml
把"<asset path="assets">assets</asset>"改成如下 

<asset path="assets" dest="assets">
    <exclude name="**/*.qml"/>
</asset>

4. 最后需要修改qml、cpp文件
QML:
import   "Common"  //这样的路径不用动
import   "../Common"
qml里面引用qml文件可以不用动,可以这样:
source   :   "about.qml"

如果图像 是这样就不行:
imageSource   "images/icon_vibro.png"
是绝对路径就不用改:
imageSource   :   "asset:///images/icon_vibro.png"
imageSource: "file:///accounts/1000/...../images/icon_vibro.png"
注意asset没有s

CPP:
QmlDocument   *qml =   QmlDocument ::create(   "asset:///main.qml" ).parent(   this );
改成:
QmlDocument   *qml =   QmlDocument ::create(   "qrc:/assets/main.qml" ).parent(   this );
(注意asset加个s)

如果图像 是这样就不行:
btnSensorSwitch  ->  setImageSource (  QUrl (  "images/icon_stop.png"  ));
是绝对路径就不用改:
btnSensorSwitch   ->  setImageSource (  QUrl (   "asset:///images/icon_stop.png"   ));

shared/documents/这类的不用改
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值