博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
The AndroidManifest.xml File
阅读量:4560 次
发布时间:2019-06-08

本文共 3020 字,大约阅读时间需要 10 分钟。

. . .
. . .
. . .

只有<manifest>和<application>元素是必须的,而且只能出现一次。

元素不能包含自己,所有的值都必须通过属性设置,而不是元素中的字符。

除了<manifest>根元素的某些属性,其他所有的属性都以 android:为前缀——例如,android:alwaysRetainTaskState。

因为前缀是通用的,所以当引用属性的名字的时候本文档会自动将其忽略。

如果定义一个子类,比如用户通常会定义的组件子类(Activity,Service,BroadcastReceiver,ContentProvider),通常由name属性声明。

这个名字必须包括完整的包名。
但是,作为简写,如果字符串的第一个字符为一个点,那么字符串将会被添加到应用程序的包名(由manifest的package属性指定)之后

. . .
. . .
效果同上 . . .
. . .

某些属性的值可以展示给用户看——例如,活动的标签和图标。这些属性的值应该本地化,因此可以从一个资源或主题中获取。

资源值通常按以下格式表示, @[package:]type:name
其中,如果资源跟应用程序在同一个包中,那么包名可以省略。
type是资源的类型——例如“string”或者“drawable”——
name是识别具体资源的标识。例如:

从主题中获取的值可以用类似的方法表示,只不过首字符使用而不是@:

?[package:]type:name

当属性值是一个字符串的时候,需要使用双反斜杠('\\')来转义字符——例如'\\n'代表换行,或者'\\uxxxx'代表Unicode字符。

 

任何情况下,在容器元素中设定的图标和标签,将会成为其子元素的默认图标和标签。因此,在application元素中设定的图标和标签,将会是应用程序中每个组件的默认设置。类似的,组件的图标和标签——例如,activity元素——将会是该组件的每一个intent-filter元素的默认设置。如果application元素设置了一个标签,但是activity和intent过滤器没有设置,那么应用程序标签将同时适用于activity和intent过滤器。

不管组件何时展现给用户,intent过滤器设置的图标和标签都代表实现该过滤器功能的组件。 例如,设置了“android.intent.action.MAIN”和“android.intent.category.LAUNCHER”的过滤器代表了由这个activity来启动应用程序——也就是说,应用程序启动的时候,这个activity最先显示。因此,启动画面显示的图标和标签就是过滤器中设置的图标和标签。

 

如果应用程序需要访问有权限保护的特性,必须在manifest中用<uses-permission>元素声明该应用程序需要使用该权限。

或者应用程序也可以定义自己的权限。新的权限通过<permission>元素声明。例如,可以按照以下方法保护activity:

. . .
. . .

注意,在这个例子中,DEBIT_ACCT权限不仅使用<permission>元素声明,同时也需要使用<uses-permission>声明。应用程序的其他组件想要运行被保护的activity的时候,就需要使用该权限,即使该activity是被应用程序本身保护的。

还是这个例子,如果permission属性已经在其他地方声明过了(比如android.permission.CALL_EMERGENCY_NUMBERS中),那么就无需再用<permission>元素声明了,但是<uses-permission>元素的声明还是需要的。

 

每一个应用程序都会连接到android的默认库,这个库中包含了编译应用程序需要的基础包(包中含有常用的类,如Activity, Service, Intent, View, Button, Application, ContentProvider等)。

但是,有些包有自己的库。如果应用程序要使用这些包中的代码,就必须显式地链接这些包的库。在manifest文件中必须包含独立的<uses-library>元素,将需要的库全部列举出来

 

安装位置

AndroidManifest.xml 文件的根元素。 必须包含 <application> 元素且设定 xmlns:android 和 package 属性。

安装位置:

 

. . .

对应用程序的声明。

 

. . .

所有的Activity需要在manifest文件里通过<acctivity>声明,否则不可以被显示也不会运行。

启动模式:

样式与主题:

权限:

Action Bar:

 

..
 

声明了其父组件的功能 — Activity 或 Service 可完成的功能以及 Receiver 可处理的广播类型。

必须包含一个或多个 <action> 元素。 如果其中没有包含任何 <action> 元素,则过滤器不会收到任何 Intent 对象。

以“android.intent.action.”作为前缀,加在 ACTION_ 后的 string 前面。 例如,对于 ACTION_MAIN 而言,用“android.intent.action.MAIN

对于自定义的 Action ,最好用包名作前缀,以确保唯一性。

action:

catelory:

data:

转载于:https://www.cnblogs.com/gcg0036/p/4320738.html

你可能感兴趣的文章
java内部类总结
查看>>
在Ubuntu 16.04 上编译安装OpenCV3.2.0(Cmake + python3 + OpenCV3)(转)
查看>>
BZOJ 1070: [SCOI2007]修车
查看>>
PHPmysqli的 预处理执行插入语句
查看>>
事务隔离级别
查看>>
Vue.js(一)
查看>>
[CQOI2017]小Q的棋盘
查看>>
[bzoj4919]大根堆
查看>>
03-继承与多态-动手动脑
查看>>
[主席树]K-th Number
查看>>
yarn安装
查看>>
[内核驱动] miniFilter 内核层与应用程序通信
查看>>
quartz框架使用笔记
查看>>
搭建git linux 服务器
查看>>
转:javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure 解决方案
查看>>
SQL 设置自增,和default
查看>>
hadoop测试题目-每天5题,总35题,第四天
查看>>
锐捷Linux版的下载和使用(福大客户端)
查看>>
半年总结——欲戴王冠,必承其重
查看>>
HDU Today HDU杭电2112【Dijkstra || SPFA】
查看>>