Android学习笔记3——Android的Manifest文件介绍
来源:互联网 发布:u盘数据恢复免费软件 编辑:程序博客网 时间:2024/09/21 08:44
在Android能够启动一个app组件之前,android系统必须通过读取manifest文件来知道这个组件的存在,你的app必须在这个文件中定义所有的组件,并且这个文件必须包含在app根目录下。
在manifest文件中为了定义这个app的组件需要做一些事情,例如:
1、定义这个app所要求的权限,例如访问网络或者是读取联系人的权限;
2、定义这个app所需要的最小API level;
3、定义这个app所需的硬件和软件的特性,例如照相机,蓝牙服务,或者多点触屏;
4、这个app需要的API库,例如Google Maps library.
定义组件:
这个manifest文件最主要的任务是通知这个系统这个app的全部组件,例如:
<?xml version="1.0" encoding="utf-8"?><manifest ... > <application android:icon="@drawable/app_icon.png" ... > <activity android:name="com.example.project.ExampleActivity" android:label="@string/example_label" ... > </activity> ... </application></manifest>在application这个元素中android:icon属性指定了这个应用图标的路径,acitivity这个元素中android:name指定了这个activity的类名称和android:lable属性指定了这个activity的标题。用这种方式可以定义service receiver provider,而那些没有定义在manifest文件中的组件对系统是不可见的,不被运行。然而broadcast reiceiver 既能够被定义在manifest文件中,也可以动态通过registerReceiver在代码中注册。
如何定义组件的功能呢?
正如前面所描述的,我们可以通过Intent来启动Activity、Services和broadCast receiver,我们能够把要启动的目标组件封装到Intent中来达到启动特定组件的目的。然而,Intents的真正的作用在于Intent的概念上。一个模糊不清的INtent的仅仅描述了要进行的行为类型,让系统可以找到能够实现定义行为并启动它,如果都有多个组件能够实现所定义的行为,系统就会让用户选择一种。
系统这种识别出能够相应所定义Intent的组件的方法是把所接收到的Intent和设备中所有app的manifest文件中所定义的Intent filter做比较。
当你在你的app的manifest文件中定义一个activity时,你必须包含能够定义这个activity功能的intent filter以至于它能够相应其他app的Intent。你能为你的组件定义一个intent filer 通过想这个组件的定义元素中增加一个Intent filer子元素。例如
<manifest ... > ... <application ... > <activity android:name="com.example.project.ComposeEmailActivity"> <intent-filter> <action android:name="android.intent.action.SEND" /> <data android:type="*/*" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> </activity> </application></manifest>定义app的要求:
拥有android系统的各种各样的设备上,并不是所有的都拥有同样的特性和功能。为了防止你的app安装在你的app不支持的设备上,在你的app的manifest文件中明确清晰的定义出你的app支持的设备类型和软件要求是非常重要的,这些定义的信息大部分系统是不会读取他们的,只是外部服务例如Google PLay去读取他们为了当用户为他们的设备搜索app时提供过滤。
例如。如果你的app需要照相功能并且需要在android2.1才会才会拥有的api,你应该在你的manifest文件中如此定义。
<manifest ... > <uses-feature android:name="android.hardware.camera.any" android:required="true" /> <uses-sdk android:minSdkVersion="7" android:targetSdkVersion="19" /> ...</manifest>这样如果一个设备上没有照相功能,或者系统版本低于2.1,则这个设备就不会从Google Play中安装你的app.
- Android学习笔记3——Android的Manifest文件介绍
- android学习笔记之首----Manifest
- Android的Manifest配置文件介绍
- Android的Manifest配置文件介绍
- Android的Manifest配置文件介绍
- Android的Manifest配置文件介绍
- Android的Manifest配置文件介绍
- Android的Manifest配置文件介绍
- Android manifest文件中的标签详细介绍
- Android manifest文件中的标签介绍
- Android manifest文件中的标签详细介绍
- Android manifest文件中的标签详细介绍
- Android manifest文件中的标签详细介绍
- android Manifest介绍
- Android学习笔记0--配置2--manifest
- Android学习【7】manifest文件讲解
- Android学习 - ANDROID的MANIFEST.XML解析
- Android笔记【0】--manifest
- KMP
- Oracle笔试题目
- Linux驱动学习笔记(2)
- quick在android上真机测试
- gcc和g++的比较
- Android学习笔记3——Android的Manifest文件介绍
- An existing resource has been found at location D:\Tomcat 7\apache-tomcat-7.0.55\webapps\futureOA02.
- withValueBackReference的理解
- Nouveau源码分析(一):从module_init开始
- Tomcat7下面配置Gzip
- 你需要知道的16个服务器监控命令
- 按年月日时分秒+自增序号的一种数据库主键生成策略
- mysql 创建数据库、用户、给用户赋权限、创建表的过程
- Oracle与SQL Server的语法区别