每个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. Codeforces 482B Interesting Array(线段树区间更新)

    题目链接 Interesting Array 区间更新.然后对于每一个约数重新求一遍区间的&值,不符合就跳出. #include <bits/stdc++.h> using nam ...

  2. 安全性测试入门 (四):Session Hijacking 用户会话劫持的攻击和防御

    本篇继续对于安全性测试话题,结合DVWA进行研习. Session Hijacking用户会话劫持 1. Session和Cookies 这篇严格来说是用户会话劫持诸多情况中的一种,通过会话标识规则来 ...

  3. java 两个int类型的数据相除并输出百分号保留两位有效数字

    java代码: public void IntA(int a , int b){ //首先判断分母不能为0 if(b!=0){ folat num = (float) a*100/b; Decimal ...

  4. Elasticsearch搜索结果返回不一致问题

    一.背景 这周在使用Elasticsearch搜索的时候遇到一个,对于同一个搜索请求,会出现top50返回结果和排序不一致的问题.那么为什么会出现这样的问题? 后来通过百度和google,发现这是因为 ...

  5. Docker镜像原理和最佳实践

    https://yq.aliyun.com/articles/68477 https://yq.aliyun.com/articles/57126  DockerCon 2016 深度解读: Dock ...

  6. Scut游戏服务器引擎6.0.5.2发布

    1. 增加C#脚本中能引用多个C#脚本文件的支持2. 修正Web应用程序中使用C#脚本解析不到Bin目录的问题

  7. 慕课网python进阶函数式编程学习记录

    函数 不等于 函数式 函数: function 函数式: functional,一种编程范式 就好比计算机 不等于 计算 c语言: 函数 python :函数式(计算) 函数式编程特点: 把计算视为函 ...

  8. Android之——流量管理程序演示样例

    转载请注明出处:http://blog.csdn.net/l1028386804/article/details/47680811 眼下.市面上有非常多管理手机流量的软件,能够让用户实时获取到自己手机 ...

  9. Another unnamed CacheManager already exists in the same VM

    今天学习Spring 缓存机制.遇到不少问题~ 好不easy缓存的单元測试用例调试成功了,在同一项目下单元測试另外一个文件时,发生了异常: org.springframework.beans.fact ...

  10. 《转》 在C++中使用TinyXML2解析xml

    读取和设置xml配置文件是最经常使用的操作,试用了几个C++的XML解析器,个人感觉TinyXML是使用起来最舒服的,由于它的API接口和Java的十分类似.面向对象性非常好.       TinyX ...