Android应用开发之AndroidManifest.xml

一.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.mzph.cn/web/18040.shtml

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

相关文章

韭菜收割项目

最近在玩股票&#xff0c;被人当成韭菜收割了一顿。高点追涨&#xff0c;第二天直接跌停。以为是低点&#xff0c;想抄底&#xff0c;结果别人直接抄家&#xff0c;血亏!!! 作为一个程序员&#xff0c;还是好好敲代码赚钱好了&#xff0c;一步一步。想不劳而获是不可能的。 我写…

[智能AI摄像头]使用docker搭建RV1126开发环境

创建ubuntu docker 创建dockerfile # 设置基础镜像为Ubuntu 18.04FROM ubuntu:20.04# 设置作者信息MAINTAINER warren "2016426377qq.com"# 设置环境变量&#xff0c;用于非交互式安装ENV DEBIAN_FRONTENDnoninteractive# 备份源列表文件RUN cp -a /etc/apt/source…

视频号小店脱颖而出,一跃成为电商黑马!马化腾要实现电商梦了?

大家好&#xff0c;我是喷火龙。 视频号这个名字在电商的圈子里是经常被提起的&#xff0c;特别是从今年开始&#xff0c;很多之前的电商项目不行&#xff0c;加上传统电商平台开始走下坡路&#xff0c;于是很多电商人都把视频号小店作为一个新的突破口。 因为视频号小店足够…

.NET技术成长路线架构图

.NET技术成长路线架构图 1. 入门基础 编程语言&#xff1a;C# 基础知识&#xff08;变量、数据类型、控制结构、面向对象编程&#xff09;开发环境&#xff1a;Visual Studio 安装与配置基础框架&#xff1a;.NET Framework 或 .NET Core/.NET 5 的基本概念 2. 进阶技能 We…

MySQL 数据备份实战

文章目录 前言简介一、数据备份导出SQL文件第一步&#xff1a;登录MySQL第二步&#xff1a;选中数据库第三步&#xff1a;数据导出SQL文件 二、还原SQL文件第一步&#xff1a;登录MySQL第二步&#xff1a;创建数据库第三步&#xff1a;选中数据库第三步&#xff1a;终端命令行语…

担心安全性?银行卡四要素检测API帮你搞定

聚合小课堂&#xff0c;每天一个API 不知道家里是不是还有坚持不用电子支付的显眼包长辈 一问就是怕支付平台“漏财”。 但是&#xff0c;你还别说&#xff0c; 你怕商家坑你 商家也怕被你逗着玩 要是不幸遇上一个牛鬼蛇神 盗刷、欺诈&#xff0c;财货两空 那才是&#xff0c;叫…

代码随想录算法训练营第四十二天 | 62.不同路径、63. 不同路径 II

62.不同路径 代码随想录 视频讲解&#xff1a;动态规划中如何初始化很重要&#xff01;| LeetCode&#xff1a;62.不同路径_哔哩哔哩_bilibili 解题思路 1.dp[i][j]表示从00走到ij有多少种方式 2. ij可以由i-1&#xff0c;j往右走一步&#xff0c;或者i&#xff0c;j-1往想下走…

精通Java:高级面试问题精粹与解答(一)

Java 高级面试问题及答案 1. 如何在Java中实现多线程&#xff1f; 答案&#xff1a; 在Java中实现多线程有几种方式&#xff1a; 继承Thread类&#xff1a;创建一个类继承自Thread类&#xff0c;并重写其run()方法。实现Runnable接口&#xff1a;创建一个类实现Runnable接口…

修改ui 组件 表格划过效果

问题描述 Ant Design Vue 中table 表格 取消划过效果&#xff0c;正常使用类找到效果并修改后 会出现闪白的情况。 .ant-table-cell-row-hover:hover:not(.ant-table-expanded-row) > td{background-color: green !important; }原因分析&#xff1a; 代码运行自上而下并因…

1791.找出星形图的中心节点

刷算法题&#xff1a; 第一遍&#xff1a;1.看5分钟&#xff0c;没思路看题解 2.通过题解改进自己的解法&#xff0c;并且要写每行的注释以及自己的思路。 3.思考自己做到了题解的哪一步&#xff0c;下次怎么才能做对(总结方法) 4.整理到自己的自媒体平台。 5.再刷重复的类…

电脑中msvcp100.dll丢失了怎么办?总结7种靠谱的解决方法

msvcp100.dll 文件是 Microsoft Visual C 2010 Redistributable 的一部分&#xff0c;这是一个重要的动态链接库&#xff08;DLL&#xff09;文件&#xff0c;用于存储许多程序共同使用的代码和资源。它是执行 C 编写的应用程序所必需的&#xff0c;尤其是那些使用 Visual C 20…

全局配置Maven

如果开着项目&#xff0c;就file->close project 如果创建有问题可以转到这篇rIDEA2024创建maven项目-CSDN博客https://blog.csdn.net/weixin_45588505/article/details/139271562?spm1001.2014.3001.5502

Layui 项目打开左侧菜单空白解决方案

home/index.html 页面中 替换 navigation 为 menu

海外仓ERP系统:赋能海外仓,实现标准化管理

随着业务规模的不断发展和业务类型的复杂度逐渐提升&#xff0c;传统的海外仓管理模式已经很难适应现在的情况了。对海外仓企业来说&#xff0c;一套合适的海外仓管理erp系统可以起到很大的辅助作用。 不过很多小型海外仓企业会纠结于是同时选择企业erp系统和海外仓管理系统&a…

图论(五)-最短路

一、Bellman-Ford算法 算法思想&#xff1a;通过 n 次循环&#xff0c;每次循环都遍历每条边&#xff08;共 m 条边&#xff09;&#xff0c;进而更新节点的距离&#xff0c;每次循环至少可以确定一个点的最短路&#xff0c;循环 n 次&#xff0c;求出 n 个点的最短路 时间复杂…

vue2中如何使用事件总线完成任意组件间的通信

main.js Vue.prototype.$bus new Vue()demo01.vue: 发起事件 this.$bus.$emit("menuFold", menuFold)demo02.vue接收事件 ** 注意&#xff1a;接收事件需要写到created或者mounted里面 ** mounted() {this.$bus.$on("menuFold", (fold) > {console.…

《QT实用小工具·六十七》QTabWidget实现的炫酷标签工具栏

1、概述 源码放在文章末尾 该项目基于QTabWidget和QTabBar实现了灵活的标签工具栏&#xff0c;主要包含如下功能&#xff1a; 1、标签栏可以收起&#xff0c;可以展开 2、可以在标签栏中添加新的标签界面 3、可以从标签工具栏中把界面拖出来&#xff0c;也可以拖回去 4、关闭拖…

源码解析之p-limit(限制异步任务并发数量)

p-limit是一个用于限制异步任务并发数量的javascript库&#xff0c;可以有效地管理资源并避免系统负载过高 简单使用如下&#xff1a; import pLimit from "p-limit"// 限制并发数量为2 const limit pLimit(2)const delay (ms) > {return new Promise(resolve…

【CSharp】ushort[]的IntPtr快速转换为ushort[]无符号短整型数组

【CSharp】ushort[]的IntPtr快速转换为ushort[]无符号短整型数组 1.背景2.代码1.背景 参考博客: 【CSharp】无符号短整型数组ushort[]转化为IntPtr https://blog.csdn.net/jn10010537/article/details/139278321?spm=1001.2014.3001.5501探测器/相机SDK获得是InPtr指针,它…

python自动化-自动化网络配置工具v2(可巡检,可批量配置)

在日常工作中遇到需要配置相同配置的场景&#xff0c;网络工程师一个个去登陆配置会让工作效率显得没那么高效。 但是随着科技发展&#xff0c;人们不断的学习&#xff0c;我们似乎可以使用一些软件或者脚本来帮助我们实现巡检任务或者配置任务。 今天我想给大家分享一款我自己…