每个android项目都包含一个AndroidMainfest.xml文件,它包含了组成应用程序的每一个Acitivity、Service、Content Provider和Broadcast Receiver的节点,并使用Intent Filter 和权限来确定这些组件之间以及这些组件和其他应用程序是如何交互的。

1.根节点manifest

package属性:当前应用的包名

versionCode属性:将当前应用程序的版本定义为一个整数,每次版本迭代时,该数字都会增加

versionName属性:定义一个显示给用户的公共版本号

installLocation属性:指定是否允许(或者首选)将应用程序安装到外部存储器(通常为SD卡)。其值可以为:preferExternal或auto,使用前者,只要有可能就会把应用程序安装在外部存储器上,后者则由系统决定。若不指定installLocation属性,则将当前应用安装到内部存储器,而不能将其移动到外部存储器。

如:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"

package="cn.csc.mydemo"

android:versionCode="1"

android:versionName="1.0 Beta"

android:installLocation=”preferExternal”>

</manifest>

2.manifest的常见子节点:

1)uses-sdk:

如:<uses-sdk

android:minSdkVersion="10"

android:targetSdkVersion="14" />

minSdkVersion属性:指定应用要求的最低SDK版本,未指定,则默认为1

maxSdkVersion属性:最高SDK版本,一般最好不要指定,除非知道应用在更新版本的平台上肯定不能正确运行。

targetSdkVersion属性:用于指定开发和测试中所使用的平台版本。即使应用程序没有使用任何新的API,也应当将目标SDK设为最新的平台版本,这被认为是一种最佳实践。

2)uses-permission:

配置应用程序所需要的权限,在安装应用程序时,设定的所有权限将会告诉给用户,由他们来决定是否同意安装使用。

如:<uses-permission android:name="android.permission.INTERNET"/>需要网络权限

3)instrumentation:

单元测试时,用到

如:<instrumentation

android:name="android.test.InstrumentationTestRunner"

android:targetPackage="cn.csc.demo" />指定要测试的包名

4)application:

一个mainfest文件只能有一个application节点,它的属性和子节点都比较常用

3.application节点:

如:<application

android:icon="@drawable/ic_launcher"

android:label="@string/app_name" >

icon属性:指定当前应用程序的图标

label属性:指定当前应用程序的标题

1)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" />

</intent-filter>

</activity>

应用程序中用到的每一个Activity都要求有一个Activity子节点,启动一个没有在Manifest中定义的Activity时都会抛出一个运行时异常。每个Activity节点都允许使用intent-filter子节点来定义用于启动该Activity的Intent。

name属性:指定Activity类的名字

2)service子节点:应用程序使用的service

3)provider子节点:应用程序使用的Content Provider

4)receiver子节点:引用程序使用的Broadcast Receiver

5)uses-library子节点:用于指定应用程序需要的共享库

android菜鸟学习笔记3----关于AndroidMainfest.xml的更多相关文章

  1. android菜鸟学习笔记22----ContentProvider(二)ContentObserver的简单使用

    现在有这样一个应用A通过ContentProvider提供自己的数据给其他应用,应用B通过ContentResolver获取应用A中提供的数据,并将其展示在ListView中,而应用C通过Conten ...

  2. android菜鸟学习笔记19----Android数据存储(三)XML文件的解析及序列化

    Android内置了PULL解析器的XPP3实现,以及SAX解析器等,可以直接使用PULL或SAX解析XML,直接把JAVA中进行PULL或SAX解析的代码直接拿来用,遗忘的话,可以参考java拾遗1 ...

  3. android菜鸟学习笔记30----Android使用百度地图API(一)准备工作及在应用中显示地图

    1.准备工作: 百度地图API是免费开放的,但是需要申请API Key: 1)先注册一个百度开发者帐号 2)进入百度开放服务平台http://developer.baidu.com/ 3)进入LBS云 ...

  4. android菜鸟学习笔记29----Android应用向用户发送提示信息的方式总结

    常见的向用户发送提示信息的方式有3种,分别为: 1)发送Toast信息 2)弹出对话框 3)发送通知 总结如下: 方式1:发送Toast信息: 这种方式最简单,在之前的学习中多次使用过.Toast是在 ...

  5. android菜鸟学习笔记23----ContentProvider(三)利用内置ContentProvider监听短信及查看联系人

    要使用一个ContentProvider,必须要知道的是它所能匹配的Uri及其数据存储的表的结构. 首先想办法找到访问短信及联系人数据的ContentProvider能接受的Uri: 到github上 ...

  6. android菜鸟学习笔记21----ContentProvider(一)ContentProvider的简单使用

    ContentProvider是Android四大组件之一,它用来封装数据,并通过ContentResolver接口将数据提供给其他应用.只有当需要在多个应用之间共享数据时才会用到ContentPro ...

  7. android菜鸟学习笔记7----android布局(二)

    3.FrameLayout:帧布局 如同Flash或者photoshop中图层的概念,在上面的图层遮盖下面的图层,没被遮到的地方仍然显示出来. 右击res/layout,然后在弹出的菜单中选择new, ...

  8. android菜鸟学习笔记2----关于adb

    adb : android debug bridge android调试桥 路径:adt-bundle目录/sdk/platform-tools/adb.exe 常见的adb命令: adb devic ...

  9. android菜鸟学习笔记27----Fragment的简单使用

    1.Fragment的生命周期: 简单在新建一个MyFragment继承自Fragment,重写各个生命周期回调方法,各个方法中直接输出标识相关函数被调用的信息. 重写MainActivity的各个生 ...

随机推荐

  1. 爬虫学习笔记(三)requests模块使用

    前面在说爬虫原理的时候说了,就写代码自动化的获取数据,保存下来数据,那怎么写代码来请求一个网址,获取结果呢,就得用requests模块了. 这篇博客说一下requests模块的使用,requests模 ...

  2. Codeforces 371A K-Periodic Array(模拟)

    题目链接 K-Periodic Array 简单题,直接模拟即可. #include <bits/stdc++.h> using namespace std; #define REP(i, ...

  3. shell date获取时间值

    使用Shell获取上一个月.星期的时间范围 #!/bin/bash date_today=`date -d '1 day ago' +%Y%m%d`   #最近7天 date_befor_7day=` ...

  4. [转] 使用SVN进行源码管理

    原文地址:gyzhao's, 使用SVN进行源码管理(下) 软件下载 1. Viusal SVN, Download(官网),安装该软件之前,请先安装TortoiseSVN,Download. 2. ...

  5. tomcat部署不成功 Deployment failure on Tomcat 6.x. Could not copy all resources to

    解决办法: tomcat服务并没有启动.上网搜索之后发现和大家犯的是一个毛病,原来工程中我引了一个包,后来这个包被我给删除了,但是因为已经发布过这个工程了,所以classpath中就有这个包名了,这样 ...

  6. vue2.0中怎么获取元素

    在元素上添加 v-el:food-wrapper (不用驼峰的写法) vue1版本 报错: vue2版本 (vue2把vue1中的 v-el 改为了 ref vue1 v-el:foods-wrapp ...

  7. AngularJS中,<span class="bluetext" ng-bind="ctrl.user.name|uppercase"></span>和{{ctrl.user.name|uppercase}}是等价的,但不等于<span class="bluetext" ng-bind="ctrl.user.name|uppercase"/>

    代码下载:https://files.cnblogs.com/files/xiandedanteng/angularjsAttenSpan.rar AngularJS中,<span class= ...

  8. 用循环将三个DIV变成红色

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  9. hosts.allow、hosts.deny无效查看服务是否支持tcp_Wrappers

    通过配置hosts.allow.hosts.deny,控制SSH限制固定IP登陆 按照以往的方法,分别在hosts.allow.hosts.deny加入以下配置 # more /etc/hosts.a ...

  10. (Caffe)基本类Blob,Layer,Net(一)

    本文地址:http://blog.csdn.net/mounty_fsc/article/details/51085654 Caffe中,Blob.Layer,Net,Solver是最为核心的类,下面 ...