Android应用开发之AndroidManifest.xml

news2024/12/23 6:02:17

一.AndroidManifest.xml介绍

  1.定义

    AndroidManifest官方解释是应用清单(manifest意思是货单),每个应用的根目录中都必须包含一个,并且文件名必须一模一样。

它是Android程序的全局配置文件,是每个 android程序中必须的文件。它位于我们开发的应用程序的根目录下,描述了package中的全局数据,包括package中暴露的组件 (activities, services, 等等),以及他们各自的实现类,各种能被处理的数据和启动位置等重要信息。

2.AndroidManifest的作用是什么?

上述的功能是非常笼统的解释,具体到细节就是:

为应用的 Java 软件包命名。软件包名称充当应用的唯一标识符。

描述应用的各个组件,包括构成应用的 Activity、服务、广播接收器和内容提供程序。它还为实现每个组件的类命名并发布其功能,例如它们可以处理的 Intent 消息。这些声明向 Android 系统告知有关组件以及可以启动这些组件的条件的信息。

确定托管应用组件的进程。

声明应用必须具备哪些权限才能访问 API 中受保护的部分并与其他应用交互。还声明其他应用与该应用组件交互所需具备的权限

列出 Instrumentation类,这些类可在应用运行时提供分析和其他信息。这些声明只会在应用处于开发阶段时出现在清单中,在应用发布之前将移除。

声明应用所需的最低 Android API 级别

列出应用必须链接到的库

上面是官方的解释。很多东西笔者现在还不能理解,也没有用到,先挑笔者理解的进行解释。

第一条:提供软件包名。这就是我们的apk的名字,通常我们的名字都是类似"com.android.gles3jni"这种,和Java类名类似,目的是确定使其成为一个唯一值。

第二条:描述应用的各个组件。这是用来定义四大组件用的。我们最常用的就是Activity组件。它需要定义组件的表现形式(组件名、主题、启动类型),组件可以响应的操作(例如某个启动意图)等。

第三条、第四条和第五条:还没用到,不做解释。

第五条:声明最低API级别。这个级别在build.gradle文件中也能定义,字段是minSdkVersion。在AndroidManifest.xml文件中定义的情况比较少。

第六条:列出必要的lib库。这东西在3.0以后的Android Studio似乎也没什么功能,因为在3.0以后编译用的是CMakeLists.txt文件,以及build.gradle文件来指定库。

二.AndroidManifest.xml具体组成

1.一份真实的AndroidManifest.xml

<?xml version="1.0"?>

<manifest xmlns:android="http://schemas.android.com/apk/res/android"

    package="org.qtproject.example.zoomlinechart"

    android:installLocation="auto"

    android:versionCode="1"

    android:versionName="1.0">

    <uses-permission android:name="android.permission.INTERNET" />

    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

    

    <supports-screens

        android:anyDensity="true"

        android:largeScreens="true"

        android:normalScreens="true"

        android:smallScreens="true" />

    <application

        android:name="org.qtproject.qt.android.bindings.QtApplication"

        android:hardwareAccelerated="true"

        android:label="zoomlinechart"

        android:requestLegacyExternalStorage="true"

        android:allowBackup="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"

            android:exported="true">

            <intent-filter>

                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />

            </intent-filter>

          <meta-data

                android:name="android.app.lib_name"

                android:value="zoomlinechart" />

          <meta-data

                android:name="android.app.arguments"

                android:value="" />

        </activity>

        <provider

            android:name="androidx.core.content.FileProvider"

            android:authorities="${applicationId}.qtprovider"

            android:exported="false"

            android:grantUriPermissions="true">

            <meta-data

                android:name="android.support.FILE_PROVIDER_PATHS"

                android:resource="@xml/qtprovider_paths"/>

        </provider>

    </application>

</manifest>

2.AndroidManifest.xml各个部分属性参考文章:

https://cloud.tencent.com/developer/article/1858085

https://blog.csdn.net/qq_41382216/article/details/88868338

三.QT工程中打开AndroidManifest.xml查看及设置内容

四.QT工程中自定义AndroidManifest.xml设置方法:

在工程文件pro文件中添加:

    ANDROID_PACKAGE_SOURCE_DIR = $$PWD/android

说明:$$PWD/android:为当前工程下的android目录,在里面添加自定义的AndroidManifest.xml配置文件即可。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1707422.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java入门基础学习笔记45——String使用的注意事项

String使用时的注意事项&#xff1a; 1&#xff09;String对象的内容不可改变&#xff0c;被称为不可变字符串对象。 Strings are constant; their values cannot be changed after they are created. String buffers support mutable strings. Because String objects are im…

最新百度专用站群seo官网程序源码二级泛程序

发布站专用站群SEO推广网站源码支持泛解析无限扩张功能&#xff1a; 1、支持伪静态功能&#xff0c;减少生成静态页增加网站内容&#xff0c;比动态网站更有利于网站收录。 2、支持百度seo优化效果&#xff0c;主动提交百度收录&#xff0c;可生成sitemap.xml文件提交百度减少…

企业内网终端监控管理软件有哪些?推荐4款企业终端监控管理软件

企业内网终端监控管理软件是一种专为企业内部网络设计的安全与管理工具&#xff0c;旨在帮助企业管理、监控和保护其内部网络中的各种终端设备&#xff0c;如个人电脑、笔记本、移动设备等。 这类软件的主要功能包括但不限于以下几个方面&#xff1a; 1&#xff0c;实时监控&a…

总结常见漏洞的代码审计方法

前言 这篇文章主要是总结一下在安全工作中常见漏洞的代码审计方法&#xff0c;以及修复方案&#xff0c;希望能对初学代码审计小伙伴们有所帮助&#xff0c;笔芯♥️ 代码审计的思路 通常做代码审计都是检查敏感函数的参数&#xff0c;然后回溯变量&#xff0c;判断变量是否可…

探索Solana链上DApp开发:高性能区块链生态的新机遇

Solana 是一个新兴的区块链平台&#xff0c;致力于为 DApp&#xff08;去中心化应用程序&#xff09;开发者提供高性能、低成本的解决方案。Solana 的独特之处在于其创新性的共识机制和高吞吐量的网络&#xff0c;使得开发者可以构建高度可扩展的 DApp&#xff0c;并为用户提供…

如何在Python 中如何导入和引用外部文件(Colab VS Code)

1. 上传文件 在 Google Colab 中&#xff0c;从左侧界面的文件选项中使用 "Upload" 按钮上传文件。 在 VS Code 中&#xff0c;通过菜单栏中的 "File" -> "Open File/Folder" 选项上传文件&#xff08;建议将所有文件放入一个文件夹中&#…

Linux--进程间通信(2)(有名管道)

目录 1.原理 2.创建命名管道 3.使用命名通道实现简单的通信 4.使用创建的命名管道 1.原理 匿名管道没有名称&#xff0c;它们是通过句柄在父进程和子进程之间传递的。这意味着匿名管道只能用于具有父子关系的进程之间。 但如果程序之间没关系&#xff0c;那么这时候就要用…

向传音手机学习产品市场定位与产品需求定义

2024 年第一季度全球智能手机发货量同比增长 11%&#xff0c;排在第一名的是三星&#xff0c;占比 21%&#xff0c;苹果占比 17% 排在第二位&#xff0c;小米 14%排在第三名&#xff0c;传音手机10% 排在第四位&#xff0c;OPPO为 9% 排在第五名。 「非洲之王」传音手机表现十…

增强创作者能力:The Sandbox 首届 “创作者挑战” 回顾

首届 "创作者挑战" 为创作者在平台上赚取收入提供了难得机会。 我们发起 “创作者挑战” 的目的是支持创作者&#xff0c;赋予他们构建元宇宙的能力。我们提出三大行动号召&#xff1a;发布、参与和赚钱。新推出的「参与奖池」&#xff08;Engagement Pool&#xff0…

灵动微单片机洗衣机方案——【软硬件开发支持】

RAMSUN英尚以洗衣机洗涤主驱电机为例&#xff0c;主驱电机和多电机控制首选MM32SPIN0280.灵动微电子能够提供完整的软硬件开发支持&#xff0c;目前方案已经在主流家电厂出货。 洗衣机方案 皮带洗衣机 DD直驱洗衣机 波轮洗衣机 Mini壁挂和桌面洗衣机 洗涤烘干双变频方案 热泵烘…

【机器学习】利用机器学习优化陆军战术决策与战场态势感知

&#x1f512;文章目录&#xff1a; &#x1f4a5;1.引言 &#x1f6f4;2.机器学习在陆军战术决策中的应用 &#x1f6e3;️2.1数据收集与预处理 &#x1f304;2.2模型构建与训练&#xff1a; &#x1f305;2.3实时决策支持&#xff1a; &#x1f305;2.4代码实现 &…

C++学习日记 | LAB 6 static library 静态库

资料来源&#xff1a;南科大 余仕琪 C/C Program Design LINK&#xff1a;CPP/week06 at main ShiqiYu/CPP GitHub 一、本节内容 本节主要介绍静态库和动态库。 1.1 静态库和动态库的概念 静态链接和静态库(也称为存档)是链接器将所有使用的库函数复制到可执行文件的结果。静…

2024儿科常用心理评估量表汇总,附详细操作步骤与评定标准

在社会的快速发展以及家庭教育模式的转变下&#xff0c;儿童心理健康问题正逐步成为公众瞩目的焦点。焦虑症、抑郁症、适应障碍等儿科常见的症状&#xff0c;不仅对孩子的身心健康构成威胁&#xff0c;更可能在他们的学习旅程和社交互动中制造重重障碍。 儿科医师常用评估量表…

联想打印APP添加打印机方法

联想打印APP添加打印机操作方法&#xff1a; 1、在手机上下载“联想打印”APP&#xff1b; 2、打开“联想打印”APP,然后在软件内右下角找到“我的”图标并选择&#xff1b; 3、点击“请登录/注册”&#xff1b; 4、勾选“我已阅读并同意”然后在上面填写手机号码后&#xff0…

H6246 60V降压3.3V稳压芯片 60V降压5V稳压芯片IC 60V降压12V稳压芯片

H6246降压稳压芯片是一款电源管理芯片&#xff0c;为高压输入、低压输出的应用设计。以下是对该产品的详细分析&#xff1a; 一、产品优势 宽电压输入范围&#xff1a;H6246支持8V至48V的宽电压输入范围&#xff0c;使其能够适应多种不同的电源环境&#xff0c;增强了产品的通用…

WMS仓库管理系统是怎么操作的?WMS操作流程详解

WMS 是仓库管理系统(Warehouse Management System) 的缩写。通过标准化的来料管理、拣配管理、仓库管理&#xff0c;打造实时化、透明化、可视化的仓储管理体系。一款合格的wms系统具有以下优势 提供实时可视性和自动化仓储流程&#xff0c;帮助企业更好地应对复杂的供应链网络…

多张图片上传、图片回显、url路径转成File文件

1. 实现 背景&#xff1a;在表单中使用element-plus实现多张图片上传(限制最多10张)&#xff0c;因为还要与其他参数一起上传&#xff0c;所以使用formData格式。 编辑表单回显时得到的是图片路径数组&#xff0c;上传的格式是File&#xff0c;所以要进行一次转换。 <tem…

IDEA提示Untrusted Server‘s certificate

如果你用的是Intellij系列IDE&#xff08;GoLand, PHPStorm, WebStorm, IDEA&#xff09;&#xff0c;突然弹出个提示『Untrusted Servers certificate 』 莫慌&#xff0c;这是因为你用了破解版的 IDE&#xff0c;破解过程中有个hosts绑定的操作&#xff1a; 0.0.0.0 account.…

智慧农田视频监控技术应用:智能监管引领农业新时代

据新闻报道&#xff0c;5月24日合肥市公安局接到群众报警&#xff0c;反映自己辛苦种植的小麦有几十亩地被人偷偷用收割机盗割。公安机关迅速出警并立案侦查&#xff0c;通过查看监控视频得知&#xff0c;用户所在的公司租用了几千亩土地进行农业种植&#xff0c;因公司与村民之…

nginx的常用配置与命令相关硬核干货

今天小晨跟大家分享Nginx常用配置与命令相关的硬核干货&#xff0c;可以说运维工作中基本都会用到这些&#xff0c;掌握它&#xff0c;你可以不用求人&#xff01; Nginx特点 高并发、高性能&#xff1b; 模块化架构使得它的扩展性非常好&#xff1b; 异步非阻塞的事件驱动模…