浅析permission标签的区别及用法
在我之前的安全与权限系列文章中对此已经有所描述,但是具体到标签的使用没有一个系统的比较。于是乎偶就想写篇文章总结下。本文只是浅析在Manifest文件中各个标签的用法,算是抛砖引玉。(终于拽了个成语 ,虽然到目前为止,偶连块砖头都没有收到过,但是本着予人玫瑰,手有余香的助人为乐精神,偶还是撰写了这篇文章。好,打住,开始正文。)
在Android的manifest文件中有四个标签与permission有关,它们分别是 <permission>
<permission-group>
<permission-tree> 和
<uses-permission>。其中最常用当然是
<uses-permission>,
当我们需要获取某个权限的时候就必须在我们的manifest文件中声明
<uses-permission>。而其它三个是不常用的(这句是废话)。通常情况下我们不需要为自己的应用程序声明某个权限,除非你提供了供其他应用程序调用的代码或者数据。这个时候你才需要使用
<permission>
这个标签。很显然这个标签可以让我们声明自己的权限。比如偶可以声明
1 <permission android:name="com.notfatboy.project.VIEW_MYDATA" . . . />
当偶声明了这个<permission>之后,偶就可以在偶的程序中使用这个permission了,比如在偶的某个activity中用这个权限保护,如下:
1<application . . .>
2 <activity android:name="com.notfatboy.project.FileManageActivity" . . . >
3 android:permission="com.notfatboy.project.VIEW_MYDATA"
4 . . . >
5 . . .
6 </activity>
7 </application>
当然你千万不要以为你自己声明的permission你就可以随意使用,你还是需要使用<uses-permission>来声明你需要该权限,这时你的应用才能正常工作。
<permission-group>
<permission-tree>这两个标签就更少见了,简单说
<permission-group> 就是声明一个标签,该标签代表了一组permissions,而
<permission-tree>是为一组permissions声明了一个namespace。这两个标签可以看之前的系列文章。