AndroidManifest文件详解

这篇具有很好参考价值的文章主要介绍了AndroidManifest文件详解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

AndroidManifest 官方解释是应用清单(Manifest意思是货单),每个应用的根目录中都必须包含一个,并且文件名必须为AndroidManifest。这个文件中包含了APP的配置信息,系统需要根据里面的内容运行APP的代码,显示界面。
Android四大组件都需要声明才能使用,每个组件都需要在 AndroidManifest.xml文件中进行配置。
Android四大组件如下:
Activity:界面组件,就是一个单独的窗口(例如冷启动应用进入界面的就是launchale-activity)。
Service:服务组件,用于在后台完成用户指定的操作(如后台音乐播放)。
Cotent provider:内容组件,是一种数据共享型组件,用于向其他组件乃至其他应用共享数据(如短信和联系人应用之间的数据共享)。
Broadcast receiver:消息组件,监听/接收应用App发出的广播消息并做出响应(如电话呼入,耳机插入)。

1、manifest元素
所有的AndroidManifest.xml 都必须包含manifest元素。这是文件的根节点,它必须包含元素,并且指明xmlns:android 和 package。
AndroidManifest文件详解

xmlns:android属性
这个属性定义了android 命名空间。必须设置成“http://schemas.android.com/apk/res/android”。不要手动修改。

package属性
包名也代表着唯一的application ID,用来发布应用。包名由英文字母(大小写均可)、数字和下划线组成。每个独立的名字必须以字母开头。

android:VersionCode属性
内部的版本号。用户表明那个版本更新,这个数字不会显示给用户,显示给用户的是VersionName。这个必须是数字,且不能为16进制

android:VersionName属性
对外发布版本号。

2、元素
应用的声明,包含用于声明每个应用组件的子元素,并且具有会影响所有组件的属性。
其中许多属性(如 icon、label、permission、process、taskAffinity 和allowTaskReparenting)会为组件元素的相应属性设置默认值。其他属性(如debuggable、enabled、description 和 allowClearUserData)则为整个应用设置值,并且不能被组件替换。
AndroidManifest文件详解

android: allowBackup属性
是否允许应用参与备份和恢复基础架构。如果设置为false,则不会为该应用执行备份或恢复,即使采用全系统备份方法也不例外(这种备份方法通常会通过 adb 保存所有应用数据),此属性的默认值为true。

3、permission元素

声明限制此类应用安全权限
AndroidManifest文件详解

android:name属性
权限的名称

android:protectionLevel属性
出于安全考虑,Android对一些访问进行了限制,比如网络访问(需付费)以及获取联系人(涉及隐私)等。应用程序如果想要进行此类访问,则需要申请相应权限。Android对这些权限进行了四类分级,不同级别的权限对应不同的认证方式。
normal:低风险权限,只要申请了就可以使用(在AndroidManifest.xml中添加标签),安装时不需要用户确认。
dangerous:高风险权限,安装时需要用户的确认才可使用;
signature:只有当申请权限的应用程序的数字签名与声明此权限的应用程序的数字签名相同时(如果是申请系统权限,则需要与系统签名相同),才能将权限授给它;
signatureOrSystem:申请权限的应用数字签名与该应用数字签名相同,或者申请权限的应用为系统应用才可以授权。

4、uses-permission元素
指定用户必须授予的系统权限,以便应用正常运行。当(在运行 Android 5.1 和更低版本的设备上)安装应用或(在运行 Android 6.0 和更高版本的设备上)运行应用时,用户需要手动授予权限

AndroidManifest文件详解

5、Activity界面组件

声明实现应用部分可视化界面的 Activity,必须使用 AndroidManifest 中的 元素表示所有 Activity。系统不会识别和运行任何未进行声明的Activity。
AndroidManifest文件详解

android:name属性
表示实现 Activity 的类的名称,是 Activity 的子类。

6、Service 服务组件
使用将服务(Service)子类声明为应用的一个组件,服务用于实现长时间运行的后台操作。

AndroidManifest文件详解

7、Receiver 消息组件
使用 将广播接收器(BroadcastReceiver 子类)声明为应用的组件之一。广播接收器允许应用接收由系统或其他应用广播的 Intent。

AndroidManifest文件详解

8、Provider 内容组件
应用中的所有内容提供程序都必须在清单文件的元素中定义,声明内容提供程序组件。

AndroidManifest文件详解

9、intent-filter元素
意图过滤器,主要用来过滤隐式意图。当用户进行一项操作的时候,Android系统会根据配置的意图过滤器来寻找可以相应该操作的组件服务,由、 和 三个属性构成。在四大组件中均可以存在此元素
AndroidManifest文件详解
学习记录,文章出处https://www.cnblogs.com/yomia/p/15345009.html文章来源地址https://www.toymoban.com/news/detail-469873.html

到了这里,关于AndroidManifest文件详解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 安卓-AndroidManifest.xml修复

    解析编译之后的AndroidManifest文件格式:http://www.520monkey.com/archives/575 案例apk jadx打开发现AndroidManifest.xml异常,无法正常显示 那么我们用apktool反编译试试 可以看到报错了,显示不能解析此xml文件,原因是预期是0x001c0001,得到的是0x01001c00,可以看到是头部出错误了 那么预期的

    2023年04月17日
    浏览(31)
  • AndroidManifest.xml日常笔记

    Bundle主要用于传递数据;它保存的数据,是以key-value(键值对)的形式存在的。 我们经常使用Bundle在Activity之间传递数据,传递的数据可以是boolean、byte、int、long、float、double、string等基本类型或它们对应的数组,也可以是对象或对象数组。当Bundle传递的是对象或对象数组时,必

    2024年02月14日
    浏览(51)
  • 【可解释性机器学习】详解Python的可解释机器学习库:SHAP

    可解释机器学习 在这几年慢慢成为了机器学习的重要研究方向。作为数据科学家需要防止模型存在偏见,且帮助决策者理解如何正确地使用我们的模型。越是严苛的场景,越 需要模型提供证明它们是如何运作且避免错误的证据 。 关于模型解释性,除了线性模型和决策树这种

    2023年04月09日
    浏览(43)
  • 设计模式详解-解释器模式

    类型:行为型模式 实现原理:实现了一个表达式接口,该接口使用标识来解释语言中的句子 作用:给定一个语言,定义它的文法表示,并定义一个解释器,这个解释器来解释。 主要解决:一些重复的固定文法分别创建解释器会很麻烦 何时使用:某一种特定类型的问题发生的

    2024年02月12日
    浏览(55)
  • WebSocket—STOMP详解(官方原版)

    WebSocket协议定义了两种类型的消息(文本和二进制),但其内容未作定义。该协议定义了一种机制,供客户端和服务器协商在WebSocket之上使用的子协议(即更高级别的消息传递协议),以定义各自可以发送何种消息、格式是什么、每个消息的内容等等。子协议的使用是可选的

    2024年02月04日
    浏览(39)
  • Java Sockets详解—官方原版

    通常情况下,服务器运行在特定的计算机上,并且具有绑定到特定端口号的Socket。服务器只是等待,监听Socket,等待客户端发出连接请求。 在客户端:客户端知道服务器正在运行的机器的主机名以及服务器正在侦听的端口号。要发出连接请求,客户端会尝试在服务器的计算机

    2024年02月03日
    浏览(31)
  • QGIS源码编译步骤详解——官方新方案

      方案详细可见源码文件中INSTALL.md。   QGIS源码下载:https://github.com/qgis/QGIS/releases   建议3.16版本,本文源码版本3.16.3。   3.22版本编译后会出现大量关于inline的错误,暂时不知如何解决。 下载Cygwin64安装包,setup-x86_64.exe。 安装Cygwin64,并安装Flex、Bison。 Flex = 2.5.

    2024年02月06日
    浏览(32)
  • 对virsh dumpxml 文件的解释

    nameCentos/name:这一行定义了一个名为“Centos”的虚拟机。 uuiddc502a07-6a66-0472-45b2-0afc2b7a8237/uuid:这是一个唯一标识符(UUID),它为这个虚拟机提供了一个唯一的标识。UUID是在全局范围内唯一的32位标识符,通常用于数据库和网络协议等场景,以确保唯一性。 memory unit=\\\'KiB\\\'16580608

    2024年02月04日
    浏览(27)
  • Android Studio: AndroidManifest.xml:11: AAPT: error: attribute android:dataExtractionRules not found

    Android Studio: AndroidManifest.xml:11: AAPT: error: attribute android:dataExtractionRules not found. flyfish 错误如图 打开AndroidManifest.xml文件 删除 dataExtractionRules 这句

    2024年02月12日
    浏览(50)
  • 设计模式之解释器模式详解及实例

    1、解释器设计模式概述: 解释器模式(Interpreter Pattern)是一种设计模式,它主要用于描述如何构建一个解释器以解释特定的语言或表达式。该模式定义了一个文法表示和解释器的类结构,用于解释符合该文法规则的语句。解释器模式通常用于实现编程语言解释器、自定义脚

    2024年02月12日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包