This file is indexed.

/usr/share/qt5/doc/qtdoc/platform-notes-android.html is in qt5-doc-html 5.3.2-3.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en_US" lang="en_US">
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<!-- platform-notes-android.qdoc -->
  <title>Platform and Compiler Notes - Android | QtDoc 5.3</title>
  <link rel="stylesheet" type="text/css" href="style/offline.css" />
</head>
<body>
<div class="header" id="qtdocheader">
    <div class="main">
    <div class="main-rounded">
        <div class="navigationbar">
        <ul>
<li><a href="index.html">Qt 5.3</a></li>
<li>Platform and Compiler Notes - Android</li>
<li id="buildversion">
Qt 5.3.2 Reference Documentation</li>
    </ul>
    </div>
</div>
<div class="content">
<div class="line">
<div class="content mainContent">
<p class="naviNextPrevious headerNavi">
</p><p/>
<div class="toc">
<h3><a name="toc">Contents</a></h3>
<ul>
<li class="level1"><a href="#android-development-in-qt-creator">Android Development in Qt Creator</a></li>
<li class="level1"><a href="#application-package">Application Package</a></li>
<li class="level1"><a href="#deployment">Deployment</a></li>
<li class="level2"><a href="#deployment-with-ministro">Deployment with Ministro</a></li>
<li class="level2"><a href="#deployment-for-debugging">Deployment for Debugging</a></li>
<li class="level1"><a href="#plugins-and-imports-special-considerations">Plugins and Imports Special Considerations</a></li>
<li class="level1"><a href="#text-special-considerations">Text Special Considerations</a></li>
<li class="level1"><a href="#opengl-special-considerations">OpenGL Special Considerations</a></li>
<li class="level1"><a href="#multimedia-special-considerations">Multimedia Special Considerations</a></li>
<li class="level1"><a href="#assets-file-system">Assets File System</a></li>
<li class="level1"><a href="#supported-architectures">Supported Architectures</a></li>
</ul>
</div>
<h1 class="title">Platform and Compiler Notes - Android</h1>
<span class="subtitle"></span>
<!-- $$$platform-notes-android.html-description -->
<div class="descr"> <a name="details"></a>
<p>This page contains information particular to building Qt applications for and running them on the <a href="android-support.html">Android</a> platform. Qt supports Android versions 2.3&#x2e;3 (API level 10) or later.</p>
<a name="android-development-in-qt-creator"></a>
<h2>Android Development in Qt Creator</h2>
<p>The easiest way to develop with Qt for Android is to use <a href="http://qt-project.org/doc/qtcreator/creator-developing-android.html">Qt Creator</a>. When you apply a <b>Qt for Android Kit</b> to a Qt Creator project, it will create and maintain a set of files which are required to make your application run on Android.</p>
<p>The files added to your project are:</p>
<ul>
<li><i>.java</i> files will serve as the entry point into your application and automatically load Qt to execute the native code in your application</li>
<li><i>AndroidManifest.xml</i> which provides meta-information about your application</li>
<li>Other XML files detailing the dependencies of your application</li>
<li>Resource files</li>
<li>Depending on the deployment method selected in Qt Creator, additional files like libraries and QML files can be included in the project.</li>
</ul>
<p>Qt Creator adds these files in a subdirectory of your project called <b>android</b>. The contents of the <b>android</b> folder is used as basis for your app's distributable application package.</p>
<a name="application-package"></a>
<h2>Application Package</h2>
<p>On Android, apps are distributed in packages called <i>APK</i>. Qt Creator builds the <i>APK</i> for you, but if you for some reason want to do this manually, you must first make sure that the appropriate packaging and build files are in place. For more detailed information about how the packaging is done, see <a href="deployment-android.html">Deploying an Application on Android</a>.</p>
<a name="deployment"></a>
<h2>Deployment</h2>
<p>Qt Creator currently supports three methods of deployment for Android apps: the default deployment method is suitable for distribution of the APK file. With this deployment method, the necessary Qt libraries and files will be copied into your project directory, and bundled as part of the APK, so that you get a stand-alone, distributable application package.</p>
<a name="deployment-with-ministro"></a>
<h3>Deployment with Ministro</h3>
<p>The second method is suitable if you want to minimize the size of your APK, and can be selected by opening the <b>Run</b> settings of your project, expanding <b>Deploy Configurations</b> and removing the tick from the <b>Use local Qt libraries</b> check box. In this case, your application will have an external dependency called <b>Ministro</b>. If a user downloads your application, and it is the first application on their device to depend on Ministro, they will be asked to install it before they can run your application. Ministro downloads Qt libraries from a repository of your choice. The repository URL can be set by editing the file <i>android/res/values/libs.xml</i> which is created by Qt Creator when configuring your project. Ministro will then serve as a central repository for Qt libraries, and several apps can share the libraries to limit the amount of duplication. Note that using this deployment method requires a repository for the libraries you want to distribute.</p>
<a name="deployment-for-debugging"></a>
<h3>Deployment for Debugging</h3>
<p>The third method is more convenient when you are simply testing your application on a device physically connected to your development machine (or an emulator). It will copy the Qt libraries into a temporary directory on your device and run the application against these instead. An APK built in this way is not distributable, since it relies on the device being prepared to contain the Qt libraries in the correct location. However, since the Qt libraries are only copied into the device once, it benefits from a faster turn-around time, so it's more suited for testing changes to your application during development. This deployment method can be selected by opening the <b>Run</b> settings of your project, expanding <b>Deploy Configurations</b> and choosing <b>Deploy local Qt libraries</b>. Make sure the <b>Use local Qt libraries</b> check box is also ticked.</p>
<a name="plugins-and-imports-special-considerations"></a>
<h2>Plugins and Imports Special Considerations</h2>
<p>If an application uses plugins or imports that depend on other modules, these modules have to be listed in the application's dependencies. This is because Qt Creator does not know ahead of time which imports or plugins your application will end up loading.</p>
<p>For example, if your application's QML code imports <a href="../qtmultimedia/qtmultimedia-index.html">Qt Multimedia</a>, then the Qt Multimedia module must explicitly be made a dependency of the application. You can do this by adding it to the application .pro file:</p>
<pre class="cpp">QT <span class="operator">+</span><span class="operator">=</span> multimedia</pre>
<p>It is also possible to manually enable dependencies on Qt libraries by opening the <b>Run</b> settings of your project, expanding <b>Package configurations</b> and selecting the <b>Libraries</b> tab. Manually check the libraries that are dependencies of your project.</p>
<a name="text-special-considerations"></a>
<h2>Text Special Considerations</h2>
<p>Because of a bug in some <a href="../qtopengl/opengl-module.html">OpenGL</a> drivers, the mechanism used by Qt to cache text glyphs does not work as expected on all Android devices, causing text to appear scrambled. To remedy this, a workaround is in place, which increases memory consumption and can also affect text rendering performance. Before Qt 5.3&#x2e;2, the workaround was enabled only for a particular set of devices. It is now used by default on all devices.</p>
<p>You can disable the workaround by setting the <tt>QT_ANDROID_DISABLE_GLYPH_CACHE_WORKAROUND</tt> environment variable to <tt>1</tt>. You should do so only after verifying that text appears correctly on all targeted devices.</p>
<a name="opengl-special-considerations"></a>
<h2>OpenGL Special Considerations</h2>
<p>Qt for Android provides two separate platform plugins: One which is suited for traditional <a href="../qtwidgets/qtwidgets-index.html">widget-based</a> apps that do not require <a href="../qtopengl/opengl-module.html">OpenGL</a> support, and one which will be used when <a href="../qtopengl/opengl-module.html">OpenGL</a> is required. When building and deploying your app, Qt Creator will detect whether the <a href="../qtopengl/opengl-module.html">OpenGL</a>-enabled plugin is required by checking if your app depends on either the <a href="../qtopengl/qtopengl-index.html">Qt OpenGL</a> module or the <a href="../qtquick/qtquick-index.html">Qt Quick</a> module.</p>
<p>There are some special considerations to be made when the <a href="../qtopengl/opengl-module.html">OpenGL</a>-enabled platform plugin is in use. The plugin only supports full screen top-level windows. This means that even dialogs and popups will be shown as full screen. There may also be drawing errors if you try to stack windows that have animations or otherwise require updating their UI while they are obscured by another window.</p>
<p>It is recommended that you try to avoid multiple top-level windows in the case of Android apps, as there is no traditional window system on this platform.</p>
<p><b>Note: </b>Embedding a <a href="../qtopengl/qglwidget.html">QGLWidget</a> inside a widget hierarchy is not supported. When <a href="../qtopengl/qglwidget.html">QGLWidget</a> is in use, it must be the top-level widget.</p><a name="multimedia-special-considerations"></a>
<h2>Multimedia Special Considerations</h2>
<p><a href="../qtmultimedia/qtmultimedia-index.html">Qt Multimedia</a>, like the rest of Qt, supports Android versions 2.3&#x2e;3 (API level 10) or later. There is however an exception for video output which requires Android versions 3.0 (API level 11) or later. This affects camera preview and video player features.</p>
<p>Additionally, the <a href="../qtmultimediawidgets/qtmultimediawidgets-index.html">Qt Multimedia Widgets</a> module is not supported on Android, which means video display is only available using the <a href="../qtmultimedia/qml-qtmultimedia-videooutput.html">VideoOutput</a> and <a href="../qtmultimedia/qml-qtmultimedia-video.html">Video</a> QML items.</p>
<a name="assets-file-system"></a>
<h2>Assets File System</h2>
<p>Qt for Android provides a special, virtual file system which is based on the <i>assets</i> mechanism in Android. Files that are put under <i>assets</i> in the <i>android</i> folder created by Qt Creator, will be packaged as part of your application package. These can be accessed in Qt by prefixing the paths with <tt>assets:/</tt>. For instance, to access the image <i>logo.png</i> in the folder <i>assets/images</i>, you can use <tt>QPixmap(&quot;assets:/images/logo.png&quot;)</tt>.</p>
<p>If using the assets mechanism is not required for your app, the recommended way of distributing resources with your Qt app is to use <a href="../qtcore/resources.html">the Qt Resource System</a>, which is a cross-platform mechanism for distributing resources with your app.</p>
<a name="supported-architectures"></a>
<h2>Supported Architectures</h2>
<p>Qt for Android currently has binaries for ARMv7 and x86. Make sure you select the correct architecture for the device or emulator you are targeting, otherwise your application will crash. The MIPS archictecture is currently not supported by Qt.</p>
<p>If you want to support several different architectures in your application, the recommendation is to build separate APKs for each architecture, so that each APK only contains the binaries required for the targeted architecture. For more information about this, see the Android documentation about <a href="http://developer.android.com/google/play/publishing/multiple-apks.html">Multiple APK Support</a>.</p>
</div>
<!-- @@@platform-notes-android.html -->
<p class="naviNextPrevious footerNavi">
</p>
        </div>
       </div>
   </div>
   </div>
</div>
<div class="footer">
   <p>
   <acronym title="Copyright">&copy;</acronym> 2014 Digia Plc and/or its
   subsidiaries. Documentation contributions included herein are the copyrights of
   their respective owners.<br>    The documentation provided herein is licensed under the terms of the    <a href="http://www.gnu.org/licenses/fdl.html">GNU Free Documentation    License version 1.3</a> as published by the Free Software Foundation.<br>    Digia, Qt and their respective logos are trademarks of Digia Plc     in Finland and/or other countries worldwide. All other trademarks are property
   of their respective owners. </p>
</div>
</body>
</html>