Android之布局androidmanifest.xml 资源清单 概述
转载:https://www.cnblogs.com/wytings/p/4083463.html
AndroidManifest.xml配置文件对于Android应用开发来说是比较细但又很重要的基础知识。
比较通用的AndroidManifest.xml文件样例:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.test"
android:versionCode="1"
android:versionName="1.0" > <!-- SDK版本的要求 -->
<uses-sdk
android:minSdkVersion="14"
android:targetSdkVersion="21" /> <!-- 获取系统相关的权限配置 如果不知道系统有多少属性,不用那么麻烦去搜,直接在name便签的双引号里alt+/就好,多直接~ -->
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/> <!-- 应用配置细节
icon是图标;
label是程序名称显示在titlebar中的
theme是整个程序的主题,这里是自己文件定义的主题,如果想用android的就是@android:style/Theme再加alt+/就可以随便选了
-->
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" > <!-- Activity配置 -->
<activity android:name=".MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
<data android:host="MainActivity"/>
</intent-filter>
</activity> <!-- Service配置 -->
<service >
<intent-filter >
<action />
<category />
<data />
</intent-filter>
</service> <!-- Receive配置 -->
<receiver >
<intent-filter />
<meta-data />
</receiver> <!-- Provider配置 -->
<provider >
<grant-uri-permission />
<meta-data />
<path-permission />
</provider> <!-- 程序需要的外部库 -->
<uses-library /> </application> </manifest>
纵观上面的各个系统组件配置,基本都有一个Intent-filter属性,来对系统中各种乱七八糟的intent进行过滤处理。因为android系统中会时时刻刻发送着各种消息各种intent,有些是系统发的有些是各个程序发的,怎么从那么多的消息中获取自己想要的?那就过滤,Intent-filter就是起这个作用。下面我们来详细问题一下这个Intent-filter的相关属性,虽然各个组件的Intent-filter有差别,但是了解大概后,基本都差不多,举一反三,触类旁通嘛。
Intent消息还包含有名称、动作、数据、类别几个重要属性,同时这几个点因过滤的标签的不同而有一些差别。
<action>标签用于描述具体消息的名称;
<category>标签用于表示能处理消息组件的类别;
<data>标签则用于描述消息需要处理的数据格式,支持使用正则表达式来限定数据来源;
例如以下是一个activity的intent-filter:
<intent-filter>
<action android:name="wytings msg" />
<category android:name="android.intent.category.DEFAULT" />
<data mimeType="*/*" />
</intent-filter>
只要系统中有程序发出的intent的action为wytings msg这个activity就可以收到。
category设置的是默认配置,一般category主要就是android.intent.category.DEFAULT和android.intent.category.LAUNCHER两个(前者是默认配置,看action怎么设置,就怎么启动,后者是代表的第一个启动的基本都得和<action android:name="android.intent.action.MAIN" />一起用),其他的看自己需求,要是还是不知道还是alt+/就好了。
data中设置了处理类型,意思就是消息我收到了,如果不是我处理的类型,我依然不干活。比如我们把上面的action设置为android.intent.action.SEND(意思是当我们点发送的时候,系统就会调用这个activity,还有个前提是发送的文件得是它支持的,这里是什么都文件类型都支持)
Android之布局androidmanifest.xml 资源清单 概述的更多相关文章
- Android学习之AndroidManifest.xml清单之<uses-feature>
无意之中看了几个小时的官方英文文档,关于<uses-feature>的介绍.有必要在这里记录一下,应该有很多人不知道<uses-feature>到底是做什么用的,因为我们平时根 ...
- 【转】Android学习之AndroidManifest.xml清单之<uses-feature>
无意之中看了几个小时的官方英文文档,关于<uses-feature>的介绍.有必要在这里记录一下,应该有很多人不知道<uses-feature>到底是做什么用的,因为我们平时根 ...
- Android 基础 一 AndroidManifest.xml
一.概述 AndroidManifest.xml是Android应用的入口文件,它描述了package中暴露的组件(activities, services, 等等),他们各自的实现类,各种能被处理的 ...
- Android APP 读取 AndroidManifest.xml 中的版本信息详解
APP都会涉及到版本的问题,Android APP的版本信息保存在AndroidManifest.xml文件的顶部.如下图: 有2个属性表示,“android:versionCode”和“androi ...
- Android Studio 学习 - AndroidManifest.xml文件学习
首先,今天发现了一个很牛逼的教程网站:慕课网(http://www.imooc.com/).有很多大牛发布的教学视频.值得收藏.学习. 今天主要参照陈启超老大的视频,学习了多个Activity之间的切 ...
- Android Studio常见问题 -- AndroidManifest.xml 覆盖问题
问题如下 D:\source-code\AndroidStudio\MyApplication\app\src\main\AndroidManifest.xmlError:(14, 9) Attrib ...
- Android之读取 AndroidManifest.xml 中的数据
转:http://www.2cto.com/kf/201208/151123.html 下来示例如何读取这些数据. 1 版本信息.应用名称 2 Appliction 的Meta-data 3 Acti ...
- Android之读取 AndroidManifest.xml 中的数据:版本号、应用名称、自定义K-V数据(meta-data)
AndroidManifest.xml中的定义如下: <manifest xmlns:android="http://schemas.android.com/apk/res/andro ...
- 如何把android中布局文件(.xml)与相关的类(.java)进行关联?
eg:把一个布局文件名为page1.xml与MainActivity.java(工程自动生成)进行 1.在存放使用资源的res文件夹下的layout文件夹内新建一个XML布局文件,如命名为:page1 ...
随机推荐
- 数据库连接池DBCP的使用
一.直接使用代码链接(一般企业开发不用这种方式) 1.导入JAR 把jar包拷贝到lib文件夹里面然后右击 build path一下 2.建一个jdbc.proprtties文件 driverClas ...
- Spring注解——@Transactional
@Transactional 用于service实现类,声明这个service所有方法需要事务管理.每一个业务方法开始时都会打开一个事务.(未完待续)
- Pickle incompatibility of numpy arrays between Python 2 and 3
Traceback (most recent call last): File "mnist.py", line 7, in <module> train_set, v ...
- oracle11g忘记管理员密码
oracle的sys和system密码是我们经常忘记的,忘记之后我们可以通过sqlplus来修改重置. 首先打开sqlplus:在运行处可直接输入打开 进入窗口后,首先输入 sqlplus/as sy ...
- Docker部署NETCORE应用程序
Docker部署NETCORE应用程序 创建.netcore项目,本文以ASP.NET Core2.2 版本为例 设置Dockerfile属性始终复制 编辑Dockerfile内容 FROM micr ...
- qt 字符串 转换 hex
1. qt 中两个字符的字符串直接转换为 hex,类似于 "1A" 要转换成 16进制的 0x1A,使用 int QString::toInt(bool *ok, int base ...
- 吴裕雄--天生自然 JAVASCRIPT开发学习:比较 和 逻辑运算符
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- .NET Core开发实战(第11课:文件配置提供程序)--学习笔记
11 | 文件配置提供程序:自由选择配置的格式 文件配置提供程序 Microsoft.Extensions.Configuration.Ini Microsoft.Extensions.Configu ...
- VUE v-if与v-show
v-if 本质:vue-if是动态的向DOM树内添加或者删除DOM元素 优点:更加灵活 <li v-for="(item, index) in scene" v-if=&qu ...
- faster rcnn报错:TypeError: slice indices must be integers or None or have an __index__ method
https://blog.csdn.net/qq_27637315/article/details/78849756 https://blog.csdn.net/qq_21089969/article ...