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

使用 Qt 为 Android 开发应用时,有时我们的应用会携带一些资源文件,如 png 、 jpg 等,也可能有一些配置文件,如 xml 等,这些文件放在哪里呢?有两种方式:qrc和assets,咱们分别来看下。

Qt Resource System

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

你放在 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 虚拟文件系统,你的资源文件不会在程序启动时就加载到内存,比较节省资源。

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

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

使用 assets 的 Android 示例

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


1

2

3

4

5

6

7

8

9

10

11

12

13


#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();

}

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

OK,到此结束。

https://greedysky.github.io/2016/04/03/Qt%20on%20Android%20%E8%B5%84%E6%BA%90%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9Fqrc%E4%B8%8Eassets/

时间: 2024-11-02 23:36:51

Qt on Android 资源文件系统qrc与assets的相关文章

android资源:菜单和assets

1.菜单(menu) 1.menu\menu.xml中定义 <menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" tools:context="com.mytest.testbase.MainActivity" > <item android:id="

Qt on Android:创建可伸缩界面

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

Qt on Android:qrc与assets

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

android资源目录---assets与res/raw区别

android资源目录---assets与res/raw的不同 Android 2011-05-24 14:40:21 阅读20 评论0   字号:大中小 订阅 assets:用于存放需要打包到应用程序的静态文件,以便部署到设备中.与res/raw不同点在于,ASSETS支持任意深度的子目录.这些文件不会生成任何资源ID,必须使用/assets开始(不包含它)的相对路径名. res:用于存放应用程序的资源(如图标.GUI布局等),将被打包到编译后的Java中.不支持深度子目录 res/menu:

《Qt on Android核心编程》相关资源

有不少朋友反馈在搭建 Qt on Android 开发环境时遇到了问题,诸如 Android SDK 无法下载. jdk 找不到合适的版本.创建 AVD 出错等等.为此我把与<Qt on Android核心编程>一书配套的相关工具和SDK都打包上传到了百度云上,列在这里供大家下载. 需要说明的是,我的Android SDK和相关工具,都是32位的,也都不是最新的.不过,我在 Qt 5.2.0 ,Qt 5.3.0 , Qt 5.3.1 , Qt 5.4.0 都试过,是可用的. Android N

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

Android资源管理框架(Asset Manager)简介和学习计划

Android该应用程序包括两个部分组成的:代码和资源. 资源主要是与UI相关的东西,例如UI布局.和其他字符串和照片.代码和资源可以使独立的应用程序来组织的实际需求的基础上,在执行的时候UI.,就能够支持不同的UI布局.这样的特性使得应用程序在执行时能够适应不同的屏幕大小和密度.以及不同的国家和语言等. 在本文中.我们就简要介绍Android的资源管理框架.以及制定学习计划. 在软件开发中.说到代码与资源分离.最easy想到的可能就是Web开发了. 在Web开发中,我们通常会通过CSS文件来描

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和工具