Qt on Android:qrc与assets

使用 Qt 为 Android 开发应用时,有时我们的应用会携带一些资源文件,如 png 、 jpg 等,也可能有一些配置文件,如 xml 等,这些文件放在哪里呢?

有两种方式:

  1. qrc
  2. assets

咱们分别来看下。

the Qt Resource System

qrc , Qt 的资源文件系统,很好用哦。看个图:

图1 qrc 示意图

你放在 qrc 里的文件,如 copy.png ,会被编译到 exe 文件中(Android应用是 libapplication.so )。当你运行应用时,这些资源也会被加载到内存。如果你的资源很大,这是个问题。

如果是在 Android 平台上,你还有另外一个选择。

Android 的 assets

Android 项目目录中有一个 assets 目录,该目录内放置的文件会原封不动打包到 APK 中,APK 在 Android 系统安装时, assets 不会被安装到应用目录下,注意,它还在 APK 里哦,但是应用可以访问这个文件夹内的资源!

Qt 利用了这种机制,实现了 assets 虚拟文件系统,我们常见的 QFile 、 QPixmap 、 QImage 等,都可以通过 "assets:/" 的方式来访问 assets 内的文件。

使用 assets 虚拟文件系统,你的资源文件不会在程序启动时就加载到内存,比较节省资源。

看一个图:

图2 assets 示意图

那资源文件怎么放呢?很简单,就是放在 Qt 项目目录下的 android/assets 文件夹内即可。如图3:

图3 使用 assets 的目录结构

只要你这么一放, Qt 编译时就会把 assets 内的文件打包到 APK ,然后就可以在 C++ 代码内访问了。

使用 assets 的 Android 示例

参考《Qt on Android:图文详解Hello World全过程》建立一个针对 Android 的项目。

创建 AndroidManifest.xml ,然后在 android/assets 目录下放一个 beauty.jpg 。删除项目的 widget.h 和 widget.cpp 。修改 main.cpp ,如下:

#include <QApplication>
#include <QLabel>
#include <QPixmap>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    QLabel label;
    QPixmap pixmap("assets:/beauty.jpg");
    label.setPixmap(pixmap);
    label.show();

    return a.exec();
}

编译,运行,可以看到图 4 :

图 4 使用 assets 的 Qt on Android 示例

OK,到此结束。

回顾一下 Qt on Android 系列:

  • Qt on Android:图文详解Hello World全过程
  • Windows下Qt 5.2 for Android开发入门
  • Qt for Android 部署流程分析
  • Qt on Android:将Qt调试信息输出到logcat中
  • Qt on Android: Qt 5.3.0 发布,针对 Android 改进说明
  • Qt on Android Episode 1(翻译)
  • Qt on Android Episode 2(翻译)
  • Qt on Android Episode 3(翻译)
  • Qt on Android Episode 4(翻译)
  • Qt for Android 编译纯C工程
  • Windows下Qt for Android 编译安卓C语言可执行程序
  • Qt on Android: Android SDK安装
  • Qt on Android: http下载与Json解析
  • Qt on Android 之设置应用名为中文
  • Qt on Android:让 Qt Widgets 和 Qt Quick 应用全屏显示
  • Qt on Android:怎样适应不同的屏幕尺寸
  • Qt on Android:使用JNI与第三方jar包

  • 《Qt on Android核心编程》介绍

  • 时间: 2024-10-10 15:41:00

    Qt on Android:qrc与assets的相关文章

    Qt on Android 资源文件系统qrc与assets

    使用 Qt 为 Android 开发应用时,有时我们的应用会携带一些资源文件,如 png . jpg 等,也可能有一些配置文件,如 xml 等,这些文件放在哪里呢?有两种方式:qrc和assets,咱们分别来看下. Qt Resource System qrc , Qt 的资源文件系统,很好用哦.看个图: 你放在 qrc 里的文件,如 copy.png ,会被编译到 exe 文件中(Android应用是 libapplication.so ).当你运行应用时,这些资源也会被加载到内存.如果你的资

    Qt on Android:创建可伸缩界面

    使用 Qt 来开发 Android 应用,也需要适配不同移动设备,适配多种多样的屏幕和分辨率.这次我们大概来讲一下如何使用 Qt 提供的机制来创建可伸缩的界面. 博客之星评选,点击投我一票,谢谢.投过了也可以点哦,每天都可以投投一票. DPI 必须要解释一下 DPI . DPI , dot per inch ,即每英寸包含的点数.还有一个概念是 PPI ,即每英寸包含的像素数. 这个值越大,像素密度越大,小尺寸的屏幕就可以有大分辨率.比如有的 Android 手机, 3.7 吋屏幕就能提供 96

    Qt on Android: Qt 5.3.0 发布,针对 Android 改进说明

    5月20日,Qt 官方博客宣布 Qt 5.3.0 发布! 这个版本聚焦在性能.稳定性和可用性的提升上,与 5.1 / 5.2 相比有很大提升. 5.3.0 的主要变化: 稳定能.可用性大大提升 Qt for Windows Runtime Beta Official support for QNX 6.6 and QNX 6.5 SP1 引入的新特性 QQuickWidget,混合使用 Qt Widgets 和 Qt Quick 变得更加方便 Compiled Qt Quick Purchasi

    qt on android之GPS信号的获取

    0.      写在最前面 本人參考安晓辉大侠的一篇博文后.做了Qt on android的GSP相关的实验.为了后面不时之需.故而记录下来. 1.      Qt on Android GPS系统流程 图1. 系统流程图 如图1所看到的,系统含两个层面:其一为基于QT的UI.提供启动GPS的button(QPushButton).以及显示GPS信号的文本域(QTextBrowser).其二为基于Activity的GPS服务,提供GPS的启动,GPS信号上报等服务.两个层面的交互及C++与Jav

    Qt on Android Episode 6(翻译)

    原文链接:http://www.kdab.com/qt-android-episode-6/,Aprile 16, 2015 by BogDan Vatra 译者foruok,转载请保留出处. 在Qt on Android Episode 5中我们学习了用Qt的方式在Android上使用JNI的基本知识.这次,我想把重点放在那些(当我们使用JNI扩展Qt on Android应用时)可以帮助我们提高生产率的工具上. 使用外部IDE来管理Java文件 不幸的是,Qt Creator对Java的支持

    创建一个QT for Android的传感器应用应用程序(摘自笔者2015年将出的《QT5权威指南》,本文为试读篇)

     这个手册描述了使用Qt Quick面访的方式在Android和ios设备上开发QtQuick应用程序的方法.我们使用Qt Creator实现一个QtQuick应用程序,这个应用程序基于加速器的值来加速一个SVG(可伸缩矢量图形). 设置开发环境: 要想能够在移动设备上构建和运行一个应用程序,您必须为设备平台设置开发环境,配置Qt Creator和手机设备之间的连接. 要想部署到Android设备,您必须下载和安装最新的Android NDK和SDK.更新SDK去获取为开发所需的API和工具

    Qt for Android 打包 SQLite 数据库

    Qt for Android 调用 SQLite 数据库时, 怎样将已经存在的数据库附加到 APK 中? 直接在你项目里面的Android源码的根目录下新建一个文件夹assets, 数据库就可以放里面了, QT在打包apk的时候会自动打包这个目录里面的东西进去的  本文用菊子曰发布

    Qt on Android: Qt 5.3.0 公布,针对 Android 改进的说明

    5月20日本,Qt 官方博客宣布 Qt 5.3.0 公布! 这个版本号聚焦在性能.稳定性和可用性的提升上,与 5.1 / 5.2 相比有非常大提升. 5.3.0 的主要变化: 稳定能.可用性大大提升 Qt for Windows Runtime Beta Official support for QNX 6.6 and QNX 6.5 SP1 引入的新特性 QQuickWidget,混合使用 Qt Widgets 和 Qt Quick 变得更加方便 Compiled Qt Quick Purch

    【Qt for Android】第一个安卓程序

    1)首先需要去官网上下载 Qt for android 版本的 Qt SDK 2)下载 android 相关的 SDK,下载地址不用找了,在Qt Creator工具选项的Android配置中有相应的下载链接地址. 3)下载完安卓SDK后,在上面的配置界面中指定相应SDK的目录,然后在"Build & Run"中新增Android的Kits 4)编写Qt代码后,点击"Run"即可,在弹出的Android设备列表中,选择程序要安装运行的Android设备.(下图