【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 )。当你运行应用时,这些资源也会被加载到内存。如果你的资源很大,这是个问题。如果是在 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/
推荐阅读
- Apache Spark 2.2.0 中文文档 - Submitting Applications | ApacheCN
- 计蒜客 Overlapping Rectangles (离散化)
- Android Framework 初探
- Appium的图像界面浅说
- 从零开始学android -- 简易的socket通信
- 本文教你如何查看电脑设置
- 本文教你电脑花屏的原因是啥
- 本文教你运用暴风激活windows系统
- 电脑快捷键大全下载