Qt Android Manifest 文件配置
Android Manifest 是任何 Android 应用都必须的 XML 文件。它包含应用使用的不同设置和功能的配置,以及关于应用本身的一些细节,例如,包名、应用名、版本等。也可以在配置中设置权限和硬件功能。
Qt for Android 保持一个具有默认配置的 AndroidManifest.xml
文件版本,这些配置包括构建系统需要用于在 Android 上构建和运行 Qt 应用所需的功能、权限和其他配置。
Qt 项目到 Manifest 配置
Qt 定义了一些 元数据,这些数据由构建系统传递给 androiddeployqt,以填充正确的值,而无需在配置文件中明确设置这些值。这种 元数据 赋予的值形式为 "-- %%INSERT_VALUE%% --"
,例如
<manifest ... android:versionCode="-- %%INSERT_VERSION_CODE%% --" ... </manifest>
这将是通过,例如,CMake
设置的版本码填充。
Qt 默认配置
Qt 默认设置以下配置文件配置
部分 | 选项 | 描述 |
---|---|---|
<manifest> | package | 设置包名。默认值是 org.qtproject.example.app_name 。警告:此字段已弃用,并移至 |
android:installLocation | 设置应用的安装位置,内部存储还是外部存储。默认值是 auto 。 | |
android:versionCode | 设置内部版本码。从 ANDROID_VERSION_CODE (qmake) 和 QT_ANDROID_VERSION_CODE (CMake) 填充。默认值是 1 。 | |
android:versionName | 设置公共版本名称。从 ANDROID_VERSION_NAME (qmake) 和 QT_ANDROID_VERSION_NAME (CMake) 填充。默认值是 1.0 。 | |
<supports-screens> | 设置应用支持的屏幕尺寸,默认值是 anyDensity 、largeScreens 、normalScreens 和 smallScreens 。 | |
<application> | android:name | 应用程序类名称。默认值是 org.qtproject.qt.android.bindings.QtApplication 。 |
android:label | 应用程序名称标签。默认值是 Qt 项目的目标名称。 | |
android:hardwareAccelerated | 设置硬件加速偏好。默认值是 true 。 | |
android:requestLegacyExternalStorage | 是否使用Android作用域存储。默认值是true 。 | |
android:allowBackup | 是否允许应用程序参与备份和还原基础架构。如果设置为false ,则永远不会对应用程序执行备份或还原。默认值是true 。 | |
android:fullBackupOnly | 是否在设备上使用自动备份(如果可用)。默认值是false 。 | |
<activity> | android:name | 活动类的名称。默认值是org.qtproject.qt.android.bindings.QtActivity 。 |
android:configChanges | 列出活动处理配置更改的内容。默认值是orientation 、uiMode 、screenLayout 、screenSize 、smallestScreenSize 、layoutDirection 、locale 、fontScale 、keyboard 、keyboardHidden 、navigation 、mcc 、mnc 、density 。 | |
android:launchMode | 用于启动活动的方发。默认值是singleTop 。 | |
android:screenOrientation | 活动在设备上的显示方向。默认值是unspecified 。 | |
<intent-filter> | 指定活动可以响应的意图类型。默认值是<action android:name="android.intent.action.MAIN"/> <category android:name="android.intent.category.LAUNCHER"/> | |
android:exported | 设置是否允许其他应用程序的组件启动该活动。默认值是true 。 |
Qt专用元数据
除了Qt设置的默认清单配置外,Qt还定义了一些仅适用于Qt应用程序的元数据。此类元数据通常位于清单文件中的<activity>
部分,形式为
<meta-data android:name="meta-data-name" android:value="meta-data-value" />
以下是Qt定义的此类元数据列表
元数据名称 | 描述 |
---|---|
android.app.lib_name | 活动所使用的本地C++库的文件名。 注意:此属性是必需的,不应删除。默认值是Qt项目的目标名称。 |
android.app.extract_android_style | 用于提取本地Android样式信息的方发。更多信息,请参阅样式提取。默认值是minimal 。 |
android.app.background_running | 设置是否使应用程序在后台持续运行任务。将其设置为true 相当于将环境变量QT_BLOCK_EVENT_LOOPS_WHEN_SUSPENDED 设置为0 。默认值是false 。警告:将其设置为 |
android.app.arguments | 设置要传递给应用程序的参数列表"arg1 arg2" 。从ANDROID_APPLICATION_ARGUMENTS (qmake)和QT_ANDROID_APPLICATION_ARGUMENTS (CMake)中获取。默认值未设置。 |
android.app.splash_screen_drawable_portrait | 为特定于纵向模式的启动画面设置可绘制资源。例如:android:resource="@drawable/splash_portrait" 。默认值未设置。 |
android.app.splash_screen_drawable_landscape | 为特定于横向模式的启动画面设置可绘制资源。例如:android:resource>@drawable/splash_landscape 。默认值未设置。 |
android.app.splash_screen_drawable | 为应用程序启动时的启动画面设置可绘制资源。 注意:首先检查特定方向的启动画面,如果未设置,则使用此代替。例如: |
android.app.splash_screen_sticky | 设置启动画面是否一直可见,直到程序显式隐藏。更多信息,请参阅QAndroidApplication::hideSplashScreen。 |
android.app.trace_location | 指定应用可以在设备上保存跟踪文件的位置。例如:/storage/emulated/0/Android/data/<app_package_name>/files/。在使用通用跟踪格式(CTF)跟踪后端时需要此。 注意:应用需要对该位置有存储权限。默认:未设置。 |
应用特定元数据
一些元数据属性是全局的,应放置在<application>
部分下
元数据名称 | 描述 |
---|---|
android.app.system_libs_prefix | 指定用于库加载查找的专用系统库路径。如果使用安装在应用默认本地(JNI)库目录之外的应用Qt库,则需要此路径。默认值是/system/lib/ 。 |
服务中的元数据
一些元数据属性也可用于服务。主要的是
Qt权限和功能
不同的Qt模块可能需要一些Android权限或功能才能正常工作,例如,在QtMultimedia中使用的相机权限。androiddeployqt工具会在构建过程中负责将此类要求包含到Android清单中。Qt将以下行定义到清单中,它们将被实际的值替换
<manifest ... <!-- %%INSERT_PERMISSIONS --> <!-- %%INSERT_FEATURES --> ... </manifest>
注意:如果从项目清单中删除这些行,Qt将无法包含正确的权限。因此,某些功能可能无法正常工作。
风格提取
Qt使用不同的方法来确定Qt小部件和Qt Quick控件应该如何进行样式设置
默认
或完整
:当使用Qt小部件或Qt Quick控件1时。注意:此方法使用一些Android非SDK接口,从Android 9.0(API 28)开始,谷歌已经开始限制和删除这些接口。因此,不建议在Android 9.0或更高版本中使用。
最小
:当使用Qt Quick控件2且没有Qt小部件或Qt Quick控件1时。比使用默认或完整选项更快。无
:没有样式提取。
Qt 6.2版本之前的Qt清单
比Qt 6.2更早的Qt版本以前使用了一组由Qt定义的额外元数据。这些属性曾经用于管理依赖关系,其中一些用于已被废弃的Ministro
服务。使用Qt 6.2,它们应该被删除。以下是这些属性的列表
- android.app.qt_sources_resource_id
- android.app.repository
- android.app.bundled_libs_resource_id
- android.app.bundle_local_qt_libs
- android.app.use_local_qt_libs
- android.app.libs_prefix
- android.app.load_local_libs_resource_id
- android.app.load_local_jars
- android.app.static_init_classes
- android.app.qt_libs_resource_id
- android.app.ministro_not_found_msg
- android.app.ministro_needed_msg
- android.app.fatal_error_msg
有关Android清单的更多信息,请参阅Android应用清单。
© 2024 Qt公司有限公司。此处包含的文档贡献的版权归其各自所有者所有。提供的文档受自由软件基金会发布的 GNU自由文档许可证第1.3版 的条款约束。Qt及其相关标志是芬兰以及全球其他国家的Qt公司有限公司的商标。所有其他商标归其各自所有者所有。