LeoYan Blog

技术分享,生活记录。

0%

Android 清单文件之 Manifest 标签详解

转载请注明出处:www.leoyanblog.com

本文出自 LeoYan 的博客

本文同步发表于我的微信公众号,扫一扫文章底部的二维码或在微信搜索 LeoYan 即可关注。

Manifest:属性

1
2
3
4
5
6
7
8
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.leoyanblog.app"
android:sharedUserId="string"
android:sharedUserLabel="string resource"
android:versionCode="integer"
android:versionName="string"
android:installLocation=["auto" | "internalOnly" | "preferExternal"]>
</manifest>

1、xmlns:android

定义android命名空间,一般为http://schemas.android.com/apk/res/android,这样使得Android中各种标准属性能在文件中使用,提供了大部分元素中的数据。

2、package

指定本应用内Java主程序包的包名,它也是一个应用进程的默认名称

3、sharedUserId

当APK安装的时候,userId这个标志就会产生。APK在设备上的整个生命周期中,这个ID不再改变。同一个应用包在不同设备上可能有不同的userId,重要的是在给定的设备上,每个应用包有自己独立的userId。

userId的特点:

1.) 作为APK身份的标识

2.) userId对应一个Linux用户,所以不同APK(用户)间互相访问数据默认是禁止的。

若要共享数据,第一可以采用Share Preference / Content Provider,第二种就可以采用sharedUserId了,将不同APK的sharedUserId都设为一样,则这些APK之间就可以互相共享数据了。详见:http://www.leoyanblog.com/post/2017/05/07.html

4、sharedUserLabel

这个属性给共享的 UserId 定义了一个用户可读的标签。这个标签必须用字符串资源来设置,不能使用原生的字符串。

这个属性在API Level 3中被引入,只有在sharedUserId属性被设置,这个属性才有意义。

5、versionCode

是给设备程序识别版本(升级)用的,必须是一个interger值,代表app更新过多少次,比如第一版一般为1,之后若要更新版本就设置为2,3等等。。。

6、versionName

这个名称是给用户看的,你可以将你的APP版本号设置为1.1版,后续更新版本设置为1.2、2.0版本等等。。。

7、installLocation

安装参数,是Android2.2中的一个新特性,installLocation有三个值可以选择:internalOnly、auto、preferExternal

选择preferExternal,系统会优先考虑将APK安装到SD卡上(当然最终用户可以选择为内部ROM存储上,如果SD存储已满,也会安装到内部存储上)

选择auto,系统将会根据存储空间自己去适应

选择internalOnly,是指必须安装到内部才能运行