AndroidManifest文件标签总结

AndroidManifest.xml文件与build.gradle在Android项目中都是两大灵魂人物,在项目中的地位举足轻重。熟练掌握AndroidManifest文件的配置,就能在整个项目的开发中有更强大的把控力。

  • manifest标签:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    package="com.example.dev">

package 声明包名;
xmlns 命名空间的声明,使得各种Android系统级的属性能让我们使用。
installLocation 程序的安装位置,
有三个值可以选择:internalOnly、auto、preferExternal
分别为只能装内置内存中、可相互转移,优先装入SD卡中。

uses-configuration标签

这个属性用于指定该应用程序所需要的硬件和软件功能。

<uses-configuration android:reqFiveWayNav=["true" | "false"] 
                    android:reqHardKeyboard=["true" | "false"]
                    android:reqKeyboardType=["undefined" | "nokeys" | "qwerty" | "twelvekey"]
                    android:reqNavigation=["undefined" | "nonav" | "dpad" | "trackball" | "wheel"]
                    android:reqTouchScreen=["undefined" | "notouch" | "stylus" | "finger"] />

supports-screens标签

声明应用支持的分辨率类型

    <supports-screens
        android:anyDensity="true"
        android:largeScreens="true"
        android:normalScreens="true"
        android:resizeable="true"
        android:smallScreens="true"
        android:xlargeScreens="true" />

resizeable 是否可以调整尺寸,增加屏幕适配的兼容性
anyDensity 是否包含了能够适用于任何屏幕密度的资源。

uses-permission标签

应用所需权限的声明,常用权限声明

    <!-- 用于进行网络定位 -->
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <!-- 用于访问GPS定位 -->
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <!-- 获取运营商信息,用于支持提供运营商信息相关的接口 -->
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <!-- 用于访问wifi网络信息,wifi信息会用于进行网络定位 -->
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <!-- 这个权限用于获取wifi的获取权限,wifi信息会用来进行网络定位 -->
    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
    <!-- 用于访问网络,网络定位需要上网 -->
    <uses-permission android:name="android.permission.INTERNET" />
    <!-- 用于读取手机当前的状态 -->
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    <uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
    <!-- 写入扩展存储,向扩展卡写入数据,用于写入缓存定位数据 -->
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <!-- 拨打电话 -->
    <uses-permission android:name="android.permission.CALL_PHONE" />
    <!-- 调用相机 -->
    <uses-permission android:name="android.permission.CAMERA" />
    <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
    <!-- 调用闪光灯 -->
    <uses-permission android:name="android.permission.FLASHLIGHT" />
    <!-- 震动器 -->
    <uses-permission android:name="android.permission.VIBRATE" />
    <uses-permission android:name="android.permission.RECORD_AUDIO" />
    <!-- 读取通讯录 -->
    <uses-permission android:name="android.permission.READ_CONTACTS" />
    <uses-permission android:name="android.permission.GET_ACCOUNTS" />

application标签

设置应用整体属性

name 设置Application
label 设置应用名
icon 启动图标
theme 应用统一theme
largeHeap 请求开辟更大的应用内存
hardwareAccelerated 全局开启硬件加速。不推荐在application中开启,非要开可以在单独使用的activity标签中开,避免过大内存开销。
debuggable 指定应用程序是否能够被调试

process 这个属性用于定义一个进程名称

activity标签

screenOrientation 设置当前Activity固定屏幕方向
configChanges 配置的内容变化是否重启生命周期
launchMode 设置当前Activity启动模式
exported 设置该activity是否可以被其他应用启动,设置为true也可以直接启动就进入该activity
windowSoftInputMode 共9个属性,可以分别为软键盘设置始终隐藏,始终显示,大小调整等类型
taskAffinity 指定在任务栈的标识
hardwareAccelerated 开启硬件加速

meta-data标签

这个元素用name-value对的格式给其父组件提供任意可选的数据。
比如各种第三方sdk设置key使用的方式。

       <!-- 友盟Key配置 -->
        <meta-data
            android:name="UMENG_APPKEY"
            android:value="" />
        <meta-data
            android:name="UMENG_CHANNEL"
            android:value="${UMENG_CHANNEL_VALUE}" />

        <!-- 高德地图 -->
        <meta-data
            android:name="com.amap.api.v2.apikey"
            android:value="" />
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容