src directory are a collection of files and an
directory. One of the files is an XML file called
that describes the resources to be included with the application.
app_resources.gresource.xml file is an XML resource description file
that will be compiled by the build system to produce the
app_resources.gresource resource bundle file. This file is then packaged
with the application and can be loaded at run-time.
The XML file itself provides a manifest of the data files to be included in the resource bundle.
<?xml version="1.0" encoding="UTF-8"?> <gresources> <gresource prefix="/com/example/app_resources"> <file>images/picture.svg</file> </gresource> </gresources>
Two details are important in this description:
prefixattribute defines the path to the resources for this application. Everything provided by the resource bundle will be accessible inside the virtual
- The image file we want to include in the resource bundle is specified as a file path inside the
fileelement. The path is relative to the location of the resource description file on the workstation’s file system.
app_resources.gresource.xml file is processed by the build system,
the tool used to compile it to a bundle locates the image in the directory
Because the file is specified as
images/picture.svg in the description, an
images directory will be included in the virtual directory structure
contained in the
app_resources.gresource resource bundle file.
Since the resource description included a prefix and the
is stored in the
images directory, the application needs to combine the
prefix and the path in order to access its data:
The use of a prefix means that an application can load multiple resources file from different producers and, in theory, the paths used to access resources should not overlap. This provides a unified way to access resources via a single mechanism.
In this part of the tutorial we saw that resource description files provide information about the files to be included in a resource bundle, and we looked at how they specify a directory structure for them. More details about this type of file can be found in Application Resources.
Next, we will look at the application’s source code and see how resources are accessed at run-time.