关于androidManifest.xml的概叙以及intent-filter的详细分析_移动开发_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > 移动开发 > 关于androidManifest.xml的概叙以及intent-filter的详细分析

关于androidManifest.xml的概叙以及intent-filter的详细分析

 2014/11/8 21:06:46  长风无及  程序员俱乐部  我要评论(0)
  • 摘要:AndroidManifest.xml配置文件对于Android应用开发来说是比较细但又很重要的基础知识,本文旨在总结该配置文件中常用到的几个属性,以便日后查阅,至于那些比较细的属性,主要是平时开发比较少用便不列举,如果自己有需要直接在eclipse中直接“alt+/”就好了……下面是一个比较通用的AndroidManifest.xml文件样例(所建的工程目录是Test),<?xmlversion="1.0"encoding="utf
  • 标签:android Intent Ten 分析 XML

AndroidManifest.xml配置文件对于Android应用开发来说是比较细但又很重要的基础知识,本文旨在总结该配置文件中常用到的几个属性,以便日后查阅,至于那些比较细的属性,主要是平时开发比较少用便不列举,如果自己有需要直接在eclipse中直接“alt+/”就好了……

下面是一个比较通用的AndroidManifest.xml文件样例(所建的工程目录是Test),

<?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,还有个前提是发送的文件得是它支持的,这里是什么都文件类型都支持)

 

发表评论
用户名: 匿名