AndroidManifest.xml 详细解读

发布时间:2026/10/12 3:30:54

AndroidManifest.xml 详细解读 一、文件概述AndroidManifest.xml是每个 Android 应用的核心配置文件位于项目根目录。它向 Android 系统描述了应用的基本信息、组件、权限、硬件需求等关键内容。系统在安装和运行应用前必须先读取此文件。二、整体结构框架?xml version1.0 encodingutf-8?manifestxmlns:androidhttp://schemas.android.com/apk/res/androidpackagecom.example.myapp!-- 权限声明 --uses-permission/!-- SDK 版本要求 --uses-sdk/!-- 硬件/软件特性需求 --uses-feature/!-- 应用主体 --applicationactivity/service/receiver/provider//application/manifest三、核心元素详解1.manifest根元素manifestxmlns:androidhttp://schemas.android.com/apk/res/androidpackagecom.example.myappandroid:versionCode1android:versionName1.0android:installLocationauto属性说明xmlns:android定义 android 命名空间必须package应用唯一包名作为应用 IDandroid:versionCode内部版本号整数用于升级判断android:versionName显示给用户的版本名字符串android:installLocation安装位置auto/internalOnly/preferExternal注意新版 Gradle 项目中versionCode、versionName、package通常在build.gradle中配置。2.uses-permission权限声明uses-permissionandroid:nameandroid.permission.INTERNET/uses-permissionandroid:nameandroid.permission.CAMERA/uses-permissionandroid:nameandroid.permission.ACCESS_FINE_LOCATION/!-- 可指定最大适用SDK --uses-permissionandroid:nameandroid.permission.WRITE_EXTERNAL_STORAGEandroid:maxSdkVersion28/常见权限权限用途INTERNET网络访问ACCESS_NETWORK_STATE查看网络状态CAMERA使用相机READ/WRITE_EXTERNAL_STORAGE读写外部存储ACCESS_FINE_LOCATION精确定位RECORD_AUDIO录音Android 6.0 的危险权限需在运行时动态申请。3.uses-sdkSDK 版本uses-sdkandroid:minSdkVersion21android:targetSdkVersion33android:maxSdkVersion34/属性说明minSdkVersion最低支持的 API 级别targetSdkVersion目标 API 级别测试适配版本maxSdkVersion最高支持级别很少使用现代项目中一般在build.gradle配置这些值。4.uses-feature特性需求!-- 声明需要相机功能 --uses-featureandroid:nameandroid.hardware.cameraandroid:requiredtrue/!-- 非必需仅优先使用 --uses-featureandroid:nameandroid.hardware.bluetoothandroid:requiredfalse/requiredtrue时不支持该特性的设备无法在应用商店安装此应用。5.application应用元素applicationandroid:name.MyApplicationandroid:allowBackuptrueandroid:iconmipmap/ic_launcherandroid:labelstring/app_nameandroid:roundIconmipmap/ic_launcher_roundandroid:themestyle/AppThemeandroid:supportsRtltrueandroid:networkSecurityConfigxml/network_security_configandroid:usesCleartextTrafficfalse!-- 四大组件在此声明 --/application常用属性属性说明android:name自定义 Application 类android:icon应用图标android:label应用名称android:theme应用默认主题android:allowBackup是否允许数据备份android:supportsRtl是否支持从右到左布局android:usesCleartextTraffic是否允许明文 HTTP 流量四、四大组件的声明1.activity活动activityandroid:name.MainActivityandroid:exportedtrueandroid:launchModesingleTopandroid:screenOrientationportrait!-- Intent过滤器定义为启动入口 --intent-filteractionandroid:nameandroid.intent.action.MAIN/categoryandroid:nameandroid.intent.category.LAUNCHER//intent-filter/activity关键属性属性说明android:nameActivity 类名android:exported是否可被外部组件调用Android 12 必须显式声明android:launchMode启动模式standard/singleTop/singleTask/singleInstanceandroid:screenOrientation屏幕方向android:configChanges配置变化时不重建 Activity2.service服务serviceandroid:name.MyServiceandroid:enabledtrueandroid:exportedfalseandroid:foregroundServiceTypelocation/后台运行的组件无用户界面。3.receiver广播接收器receiverandroid:name.BootReceiverandroid:exportedtrueintent-filteractionandroid:nameandroid.intent.action.BOOT_COMPLETED//intent-filter/receiver用于接收系统或应用广播事件。4.provider内容提供者providerandroid:nameandroidx.core.content.FileProviderandroid:authorities${applicationId}.fileproviderandroid:exportedfalseandroid:grantUriPermissionstruemeta-dataandroid:nameandroid.support.FILE_PROVIDER_PATHSandroid:resourcexml/file_paths//provider用于跨应用共享数据。五、intent-filter意图过滤器用于声明组件能响应的 Intent 类型intent-filter!-- 动作 --actionandroid:nameandroid.intent.action.VIEW/!-- 类别 --categoryandroid:nameandroid.intent.category.DEFAULT/categoryandroid:nameandroid.intent.category.BROWSABLE/!-- 数据如处理http链接 --dataandroid:schemehttpsandroid:hostwww.example.com//intent-filter子元素作用action要执行的动作category附加类别信息data数据类型/URI 匹配六、meta-data元数据用于附加键值对配置常被第三方 SDK 使用meta-dataandroid:namecom.google.android.geo.API_KEYandroid:valueYOUR_API_KEY/七、完整示例?xml version1.0 encodingutf-8?manifestxmlns:androidhttp://schemas.android.com/apk/res/androidpackagecom.example.myappuses-permissionandroid:nameandroid.permission.INTERNET/uses-permissionandroid:nameandroid.permission.CAMERA/uses-featureandroid:nameandroid.hardware.cameraandroid:requiredfalse/applicationandroid:name.MyApplicationandroid:allowBackuptrueandroid:iconmipmap/ic_launcherandroid:labelstring/app_nameandroid:themestyle/AppTheme!-- 主Activity --activityandroid:name.MainActivityandroid:exportedtrueintent-filteractionandroid:nameandroid.intent.action.MAIN/categoryandroid:nameandroid.intent.category.LAUNCHER//intent-filter/activity!-- 服务 --serviceandroid:name.MyServiceandroid:exportedfalse/!-- 广播接收器 --receiverandroid:name.MyReceiverandroid:exportedtrueintent-filteractionandroid:nameandroid.intent.action.BOOT_COMPLETED//intent-filter/receiver!-- 内容提供者 --providerandroid:name.MyProviderandroid:authoritiescom.example.myapp.providerandroid:exportedfalse//application/manifest八、重要注意事项android:exportedAndroid 12API 31起含intent-filter的组件必须显式声明此属性否则无法安装。组件必须注册Activity、Service 等必须在 Manifest 中声明才能使用动态注册的 BroadcastReceiver 除外。合并机制使用库时多个模块的 Manifest 会通过Manifest Merger合并成最终文件。权限最小化只申请必要权限提升用户信任度与合规性。
延伸阅读

更多相关文章

2026/10/12 3:24:34

现代公寓内景全解:动线比例、材质灯光与渲染落地实战指南

现代公寓内部场景这个题目,这几年被问到的频率特别高。圈内人看到“现代公寓内景”这个词,第一反应往往不是某个具体风格,而是一整套关于比例、材质、光线和秩序的处理方式。这篇就从一个刚完成的内景项目说起,把这几年折腾现代公…

2026/10/12 3:24:34

游戏对象模型与资源管理:从ECS到缓存友好的引擎架构实践

1. 游戏对象模型:引擎架构里的“骨架”做游戏引擎的人都有一个共识:引擎里最容易被低估、却最难改好的两个系统,一个管“谁活在场景里”,一个管“这些活物用了什么资源”。前者叫游戏对象架构,后者叫资源管理。很多项目…

2026/10/12 3:24:34

AI端到端交付全栈项目:从需求到上线的实践与边界

说实话,我过去半年对“AI写代码”这件事的态度一直有点拧巴。一方面日常确实在用Copilot补全,确实能省不少敲键盘的时间;另一方面总觉得它离“独立交付一个完整项目”还差得远,更别提什么“全程不写几行代码”。直到前阵子&#x…

2026/10/11 0:02:13

Python调用Gemini Structured Outputs实现工单路由门禁

客服工单最怕的不是模型“答错一句话”,而是它给出一段看起来合理的说明,程序却从中猜错优先级。通俗做法是:要求模型只交 JSON(JavaScript Object Notation,轻量数据格式),再让代码验证它。Gem…

2026/10/11 0:02:13

Spring Boot超市进销存系统毕设实战:从需求拆解到答辩通关

最近带的一个学生项目组里,有A同学跑来问我:选什么毕设题目最稳妥,既能让评审老师觉得工作量够,又不会在答辩时被问到语无伦次。我第一反应就是推荐基于Spring Boot的超市仓库管理系统——也就是超市进销存系统。这个题目乍一看平…

2026/10/11 0:02:13

Flutter StatefulWidget 生命周期核心解析

很多刚开始接触 Flutter 的朋友,在看完一堆“Hello World”和基础组件之后,大概率都会撞上同一堵墙:StatefulWidget 里那堆 initState、build、dispose 方法,到底什么时候被调用?为什么顺序是那样?在里面到…

2026/10/12 0:04:22

绝缘子缺陷检测数据集清洗与工业级训练实战指南

简介:本资源是面向电力AI研发人员、工业视觉工程师及智能巡检系统开发者的绝缘子缺陷检测专用YOLO格式数据集,解决无人机航拍场景下绝缘子破损、污闪、积雪等9类典型缺陷的精准识别与定位难题。数据集共2139张真实巡检图像(含训练/验证/测试集…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑