Mainfest.xml文件的初步解析

AndroidManifest.xml配置文件的介绍

1.全局篇


package:所建项目的包名

minSdkVersion:最小的SDK版本,对应Android不同版本的API Level。

maxSdkVersion:最大的SDK版本。

在安装程序的时候,如果目标设备的API版本小于minSdkVersion,或者大于maxSdkVersion,程序将无法安装。一般情况下,没有必要设置maxSdkVersion。

targetSdkVersion:这个属性会相对复杂一些。在程序执行时,如果目标设备的API版本正好等于此数值,他会告诉Android平台:此程序在此版本已经经过充分测试,没有问题。不需要再为此程序开启兼容性检查判断的工作了。换句话说就是,如果tergetSdkVersion与目标设备的API版本相同时,运行效率可能会高一些。

但是,这个设置仅仅是一个声明,一个通知,不会有太实质的作用,比如说,使用了targetSdkVersion这个SDK版本中的一个特性,但是这个特性在低版本中是不支持的,那么在低版本的API设备上运行程序时,可能会报错。

这四个数值在程序编译时也没有严格的检查,比如说,你可以将minSdkVersion设置的比maxSdkVersion还打,它会自动忽略掉错误的maxSdkVersion

简单举例:target是14,你的设备是10,程序中使用14的某个属性,在编译的时候就会报错;

min是16,你的设备是11,程序安装不上。

API等级与Android各版本一一对应的结果如下:

API等级1:Android 1.0

API等级2:Android 1.1 Petit Four

API等级3:Android 1.5 Cupcake(纸杯蛋糕)

API等级4:Android 1.6 Donut(甜甜圈)

API等级5:Android 2.0 Éclair(闪电泡芙,松饼)

API等级6:Android 2.0.1 Éclair

API等级7:Android 2.1 Éclair

API等级8:Android 2.2 - 2.2.3 Froyo(冻酸奶)

API等级9:Android 2.3 - 2.3.2 Gingerbread(姜饼)

API等级10:Android 2.3.3-2.3.7 Gingerbread

API等级11:Android 3.0 Honeycomb(蜂巢)

API等级12:Android 3.1 Honeycomb

API等级13:Android 3.2 Honeycomb

API等级14:Android 4.0 - 4.0.2 Ice Cream Sandwich(冰激凌三明治)

API等级15:Android 4.0.3 - 4.0.4 Ice Cream Sandwich

API等级16:Android 4.1 Jelly Bean(果冻豆)

API等级17:Android 4.2 Jelly Bean

API等级18:Android 4.3 Jelly Bean

API等级19:Android 4.4 KitKat(奇巧巧克力棒)

API等级20:Android 4.4W

API等级21:Android 5.0 Lollipop(棒棒糖)

API等级22:Android 5.1 Lollipop

API等级23:Android 6.0 Marshmallow(棉花糖)

 

2.组件篇

2.1 application组件


name:包名.类名。

icon:图标

lable:标题

theme:主题样式

一个清单配置文件中只能包含一个application组件。

2.2  activity

图一:

图二:

name:包名.类名(这个是一个活动的真实姓名)

启动一个没有在清单中定义的Activity会抛出异常。

intent-filter:过滤器的作用,使用intent时,可以利用action和category的name来启动一个活动。

2.3 service

用于后台逻辑代码的处理。

2.4 ContentProvider

内容提供者,用来管理数据库访问以及程序内和程序间共享的。

2.5 BroadcastReceiver

广播接受者,可以理解为全局事件的监听器。

<receiver/>

intent-filter:可以理解为组件的的个人介绍,意思就是有和我一样的,你们就要执行相应代码。

</receiver>

3.权限篇

3.1 使用系统权限

<uses-permission>申请权限

声明了哪些是由你定义的权限,而这些权限是应用程序正常执行所必须的。在安装程序的时候,你设定的所有权限,将会告诉给用户,由他们来决定同意与否,对很多本地Android服务来说,权限都是必须的。特别是哪些需要付费或者有安全问题的服务(eg:使用基于位置的服务)

3.2 自定义权限

保护安卓的某些重要组件。

(自行查询中。。。)

总结:四大组件中,除了BroadcastReceiver可以使用代码声明注册外,其他组件必须在Manifest文件中进行声明配置,否则会报错。

为啥觉得越写问题越多。。。。。。。

谁有比较详细的解析,留个链接也好的呀

小妞静等


 


  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当在开发中直接调用`Mainfest.permission.XXXX`时,可能会出现`Can not find Symbol Mainfest.permission.XXXX`的问题。 这通常是因为`Mainfest.permission.XXXX`权限没有正确声明或引入。解决这个问题的一种方法是在`Mainfest.permission.XXXX`之前加上`android.`前缀。例如,在代码中使用`android.Manifest.permission.XXXX`来替代`Mainfest.permission.XXXX`。 另外,如果在`<application>`元素中没有设置`permission`属性,那么该属性设置将应用到`<activity>`元素上。如果连`<application>`元素也没有设置该属性,那么该`<activity>`就没有受到权限保护的限制。 因此,确保在相关的`<activity>`元素中正确声明和引用权限,可以避免`Mainfest.permission`找不到符号的问题。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [【Android】关于在Activity中申请权限时出现“Can not find Symbol Manifest.permission.XXXX”问题处理](https://blog.csdn.net/louislrt/article/details/83624388)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [Android开发之Activity(三)—— Manifest.xml中的Activity ](https://blog.csdn.net/iteye_4552/article/details/82602946)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值