关于QT for Android生成的AndroidManifest.xml学习说明

<?xml version="1.0"?>
<manifest package="org.qtproject.example" xmlns:android="http://schemas.android.com/apk/res/android" android:versionName="1.0" android:versionCode="1" android:installLocation="auto">
    <application android:hardwareAccelerated="true" android:name="org.qtproject.qt5.android.bindings.QtApplication" android:label="-- %%INSERT_APP_NAME%% --">
        <activity android:configChanges="orientation|uiMode|screenLayout|screenSize|smallestScreenSize|layoutDirection|locale|fontScale|keyboard|keyboardHidden|navigation" android:name="org.qtproject.qt5.android.bindings.QtActivity" android:label="-- %%INSERT_APP_NAME%% --" android:screenOrientation="unspecified" android:launchMode="singleTop">
            <intent-filter>
                <action android:name="android.intent.action.MAIN"/>
                <category android:name="android.intent.category.LAUNCHER"/>
            </intent-filter>

            <!-- Application arguments -->
            <!-- meta-data android:name="android.app.arguments" android:value="arg1 arg2 arg3"/ -->
            <!-- Application arguments -->

            <meta-data android:name="android.app.lib_name" android:value="untitled1"/>
            <meta-data android:name="android.app.qt_sources_resource_id" android:resource="@array/qt_sources"/>
            <meta-data android:name="android.app.repository" android:value="default"/>
            <meta-data android:name="android.app.qt_libs_resource_id" android:resource="@array/qt_libs"/>
            <meta-data android:name="android.app.bundled_libs_resource_id" android:resource="@array/bundled_libs"/>
            <!-- Deploy Qt libs as part of package -->
            <meta-data android:name="android.app.bundle_local_qt_libs" android:value="-- %%BUNDLE_LOCAL_QT_LIBS%% --"/>
            <meta-data android:name="android.app.bundled_in_lib_resource_id" android:resource="@array/bundled_in_lib"/>
            <meta-data android:name="android.app.bundled_in_assets_resource_id" android:resource="@array/bundled_in_assets"/>
            <!-- Run with local libs -->
            <meta-data android:name="android.app.use_local_qt_libs" android:value="-- %%USE_LOCAL_QT_LIBS%% --"/>
            <meta-data android:name="android.app.libs_prefix" android:value="/data/local/tmp/qt/"/>
            <meta-data android:name="android.app.load_local_libs" android:value="-- %%INSERT_LOCAL_LIBS%% --"/>
            <meta-data android:name="android.app.load_local_jars" android:value="-- %%INSERT_LOCAL_JARS%% --"/>
            <meta-data android:name="android.app.static_init_classes" android:value="-- %%INSERT_INIT_CLASSES%% --"/>
            <!--  Messages maps -->
            <meta-data android:value="@string/ministro_not_found_msg" android:name="android.app.ministro_not_found_msg"/>
            <meta-data android:value="@string/ministro_needed_msg" android:name="android.app.ministro_needed_msg"/>
            <meta-data android:value="@string/fatal_error_msg" android:name="android.app.fatal_error_msg"/>
            <!--  Messages maps -->

            <!-- Splash screen -->
            <!-- meta-data android:name="android.app.splash_screen_drawable" android:resource="@drawable/logo"/ -->
            <!-- meta-data android:name="android.app.splash_screen_sticky" android:value="true"/ -->
            <!-- Splash screen -->

            <!-- Background running -->
            <!-- Warning: changing this value to true may cause unexpected crashes if the
                          application still try to draw after
                          "applicationStateChanged(Qt::ApplicationSuspended)"
                          signal is sent! -->
            <meta-data android:name="android.app.background_running" android:value="false"/>
            <!-- Background running -->

            <!-- auto screen scale factor -->
            <meta-data android:name="android.app.auto_screen_scale_factor" android:value="false"/>
            <!-- auto screen scale factor -->

            <!-- extract android style -->
            <!-- available android:values :
                * full - useful QWidget & Quick Controls 1 apps
                * minimal - useful for Quick Controls 2 apps, it is much faster than "full"
                * none - useful for apps that don‘t use any of the above Qt modules
                -->
            <meta-data android:name="android.app.extract_android_style" android:value="full"/>
            <!-- extract android style -->
    </activity>

    <!-- For adding service(s) please check: https://wiki.qt.io/AndroidServices -->

    </application>

    <uses-sdk android:minSdkVersion="16" android:targetSdkVersion="16"/>
    <supports-screens android:largeScreens="true" android:normalScreens="true" android:anyDensity="true" android:smallScreens="true"/>

    <!-- The following comment will be replaced upon deployment with default permissions based on the dependencies of the application.
         Remove the comment if you do not require these default permissions. -->
    <!-- %%INSERT_PERMISSIONS -->

    <!-- The following comment will be replaced upon deployment with default features based on the dependencies of the application.
         Remove the comment if you do not require these default features. -->
    <!-- %%INSERT_FEATURES -->

</manifest>

1、manifest 根节点,必须包括一个application节点

  package属性用于设置应用进程的默认名称;

  xmlns:android属性用于设置android命名空间,一般为http://schemas.android.com/apk/res/android,这样使得Android中各种标准属性能在文件中使用,提供了大部分元素中的数据;

  android:versionName属性设置APP的版本号,用于提供给用户版本说明

  android:versionCode属性是设置设备升级版本识别号,保存APP更新次数,必须是数值型,例如第一版为1,之后二三版为2、3

  android:installLocation属性设置程序安装位置,有三个值

    internalOnly—APK必须安装到内部存储空间。并且安装之后,不能将程序移动到SD卡上。

    auto—系统会根据存储空间去选择将APK安装在内部存储空间还是SD卡上。安装之后,可以在内部存储空间和SD卡之间移动。

    preferExternal—系统会优先考虑将APK安装到SD卡上,如果SD存储已满,也会安装到内部存储上。

2、application标签

  android:hardwareAccelerated属性设置程序中所有Activity和View对象启用硬件加速渲染,true启动;false不启动。默认为true

  andriod:name属性设置application子类的实现,应用程序启动时,这个类在其他组件模块之前实例化,这个属性设置值采用完整的java类名;可选项,如果没有自己的子类,默认"org.qtproject.qt5.android.bindings.QtApplication"这个基本的Application实例

  android:lable属性是一个标签,默认为%%INSERT_APP_NAME%%

3、activity标签

  android:configChanges属性设置了需要Activity自己处理的配置变化项,这些设置的项如果发生变化,则要进行自我处理。默认情况,运行时配置变化发生时,Activity会关闭并重启,如果设置了这些配置变化项,则不会重启Activity。

  默认值:"orientation|uiMode|screenLayout|screenSize|smallestScreenSize|layoutDirection|locale|fontScale|keyboard|keyboardHidden|navigation"

    orientation—屏幕方向发生变化,要自我处理,例如旋转屏幕

    uiMode—用户界面发生变化时,要自我处理(这里的变化方式不太明白)

    screenLayout—屏幕布局发生变化时,要自我处理,例如采用不同的显示模式时

    smallestScreenSize—设备物理尺寸发生变化时,要自我处理,例如显示在不同显示器上

    layoutDirection—布局方向发生变化时,要自我处理(这里的变化方式不太明白)

    locale—语言环境变化时,要自我处理,例如选择不同的语种类型

    fontScale—字体大小变化时,要自我处理,例如选择不同的字体大小设置

    keyboard—键盘类型变化时,要自我处理,例如插入外接键盘

    keyboardHidden—键盘的可用性发生变化时,要自我处理,例如启用了其他新接入的键盘

    navigation—导航类型变化时,要自我处理

  android:name属性设置了这个Activity的名字,默认值"org.qtproject.qt5.android.bindings.QtActivity"v,

  android:lable属性是标签,默认值%%INSERT_APP_NAME%%

  android:screenOrientation属性设置Activity在设备上的显示方向,默认值"unspecified"

    unspecified—默认值,由系统来选择方向

    user—使用用户当前首选的方向

    sensor—显示的方向是由设备的方向传感器来决定的,但是这个设置可能不能满足4个方向的旋转,可使用fullSensor

    fullSensor—显示方向4个方向的旋转

    noSensor—不会按照方向传感器进行选准

    另外还有一些横向、纵向旋转的设置,可以自行查找了解一下。

  

  android:launchMode属性设置如何启动Activity的指令。默认值"singleTop",有四个值供选择

    standard—Activity能够实例化多次,每次需要创建新的Intent对象

    singleTop—Activity能够实例化多次,不一定需要创建新的Intent对象

    singleTask—Activity只能启动一次,允许其他Activity作为它的一部分运行

    singleInstance—Activity只能启动一次,不允许其他Activity作为它的部分运行

4、intent-filter标签,用于指定Activity、Service或Broadcast Receiver能够响应的Intent对象的类型,相当于过滤器

5、action标签,给Intent过滤器添加一个操作,一个<intent-filter>里面必须包含一个或者多个action,如果一个都没有,就不会有Intent对象通过过滤器。

  android:name属性设置操作的名称,一般用ACTION_string常量定义标准操作,关联这些操作和这个属性的时候,需要将ACTION_转换成"android.intent.action.",例如ACTION_MAIN->action.intent.action.MAIN;对于自定义的操作,可以使用包名来替换,确保唯一性,例如org.qtproject.example.GETTINGDAT。

6、category标签,给Intent过滤器添加一个分类名称

  android:name属性定义分类的名称,标准的分类一般用CATEGORY_name常量定义,关联这个定义和这个属性的时候,需要将CATEGORY_name转换成"andoid.intent.category.",例如CATEGORY_LAUNCHER->andoid.intent.category.LAUNCHER;自定义分类可使用报名来替代,如action标签。

7、meta-data标签,用name-value对的方式给父组件提供数据,一个组件的元素能够包含任意多个<meta-data>子元素,所有这些meta元素中定义的值会被集合到一个对象中,并且提供给组件。

  android:name属性设置应用的唯一名称,使用java的命名规则可确保命名的唯一性,例如android.app.lib_name

  android:value属性给这个name项分配一个值,可以分配不同的Int、String等类型,不同类型的值获取方式不同,例如getInt()、getString()

  android:resource属性定义了要引用的资源,资源的ID会进行关联(这里的获取还不太清楚)

8、uses-sdk标签,定义APK能够运行的版本

  android:minSdkVersion属性设置能够运行APK的最小sdk版本。如果没有设定的话,默认是1。

  android:targetSdkVersion属性设置了运行APK的目标的API级别。如果没有设定的话,默认等于minSdkVersion。

  另外还有一个android:maxSdkVersion属性,设置能够运行APK的最大sdk版本,一般这个属性不设置,因为可能导致应用不能在升级后的平台使用

9、supports-screens标签,控制应用支持的屏幕尺寸,并且针对当出现比应用程序支持的屏幕还要大的屏幕时,启动屏幕兼容模式

  android:largeScreens属性设置是否支持较大外形的屏幕,默认为true

  android:normalScreens属性设置是否支持普通外形的屏幕,默认为true

  android:anyDensity属性设置是否包含使用任意外形屏幕的资源,默认为true

  android:smallScreens属性设置是否支持较小外形的屏幕,默认为true

10、还有很多其他的标签,不过目前还未遇到,以后遇到在继续进行补充;感觉应该就是java的AndroidManifest.xml文件一样的配置。只是C++的程序员应该不怎么了解java还需要继续学习。
  

原文地址:https://www.cnblogs.com/warmSnowFY/p/9542376.html

时间: 2024-10-03 01:47:48

关于QT for Android生成的AndroidManifest.xml学习说明的相关文章

Android 基础 一 AndroidManifest.xml

一.概述 AndroidManifest.xml是Android应用的入口文件,它描述了package中暴露的组件(activities, services, 等等),他们各自的实现类,各种能被处理的数据和启动位置. 除了能声明程序中的Activities, ContentProviders, Services, 和Intent Receivers,还能指定permissions和instrumentation(安全控制和测试). 二.结构 <?xmlversion="1.0"e

android 权限大全AndroidManifest.xml

android权限大全 访问登记属性 android.permission.ACCESS_CHECKIN_PROPERTIES ,读取或写入登记check-in数据库属性表的权限 获取错略位置 android.permission.ACCESS_COARSE_LOCATION,通过WiFi或移动基站的方式获取用户错略的经纬度信息,定位精度大概误差在30~1500米 获取精确位置 android.permission.ACCESS_FINE_LOCATION,通过GPS芯片接收卫星的定位信息,定位

创建一个QT for Android的传感器应用应用程序(摘自笔者2015年将出的《QT5权威指南》,本文为试读篇)

 这个手册描述了使用Qt Quick面访的方式在Android和ios设备上开发QtQuick应用程序的方法.我们使用Qt Creator实现一个QtQuick应用程序,这个应用程序基于加速器的值来加速一个SVG(可伸缩矢量图形). 设置开发环境: 要想能够在移动设备上构建和运行一个应用程序,您必须为设备平台设置开发环境,配置Qt Creator和手机设备之间的连接. 要想部署到Android设备,您必须下载和安装最新的Android NDK和SDK.更新SDK去获取为开发所需的API和工具

Qt on Android:让 Qt Widgets 和 Qt Quick 应用全屏显示

Android 系统版本很多,较新的 4.4 ,较老的 2.3 ,都有人用. Qt on Android 开发的 Android 应用,默认在 Android 设备上是非全屏的.而有些应用的需求是全屏显示,比如游戏.那么怎么样才能做到这点呢? 请给我的决赛文章<Qt Quick 图像处理实例之美图秀秀(附源码下载)>投票,谢谢. 我们需要分 Android 系统版本来说. Android 2.x 对于 4.0 以前,比如 2.2 . 2.3 的系统,可以修改 AndroidManifest.x

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修改应用程序的图标和名称

使用QT开发出的Android Apk安装后默认的图标是安卓的小机器人,下面介绍在QT5.12版本上修改APP名称和图标的方法. 1.  编译一次项目后,在编译目录下找到AndroidManifest.xml 2.  试试在项目目录下创建一个文件夹android_sources,把图标和 AndroidManifest.xml文件放进去 3.  右键项目,在弹出的菜单中选择“添加现有文件…” 4.  双击AndroidManifest.xml文件,在右侧进行修改,在"Application ic

BroadcastReceiver广播接收者(二)——利用AndroidManifest.xml注册广播接收者

MainActivity如下: package cc.testbroadcasta; import android.os.Bundle; import android.app.Activity; import android.content.Intent; /** * Demo描述: * 利用AndroidManifest.xml注册广播接收者 */ public class MainActivity extends Activity { @Override protected void onC

【React Native】Error: Attribute [email&#160;protected] value=(false) from AndroidManifest.xml

解决办法:在Android Studio修改AndroidManifest.xml文件. 文件路径:android->app->src->debug->AndroidManifest.xml 在manifest标签中添加 xmlns:tools="http://schemas.android.com/tools" 在application标签中添加 tools:replace="android:allowBackup" android:all

quick cocos2d x 手机(Android端)启动过程学习

简要学习下quick cocos2d x 在安卓端启动的过程. 首先需要了解一点:quick cocos2d x是依托于Android的activity和GLSurfaceView(继承自SurfaceView)的环境来显示quick层的游戏界面. (1)首先quick类的android游戏从AndroidManifest.xml文件指定的activity(假设AC)启动. (2)AC继承父类的Cocos2dxActivity. (3)调用静态初始化块,加载cocos2dx的动态库.也就是一些C