尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
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合并成最终文件。权限最小化只申请必要权限提升用户信任度与合规性。
RELATED

相关推荐

如何在OpenAPK快速找到免费开源APK:从搜索到下载的保姆级教程

如何在OpenAPK快速找到免费开源APK:从搜索到下载的保姆级教程

如何在OpenAPK快速找到免费开源APK:从搜索到下载的保姆级教程 【免费下载链接】openapk List of awesome open source apps for Android. Updated daily! 项目地址: https://gitcode.com/gh_mirrors/op/openapk OpenAPK 是一个每日更新的安卓免费开源APK大全…

📅 2026/10/8 18:36:21
PoB2 物品系统完整流程:从装备模拟到词缀优化的实战指南

PoB2 物品系统完整流程:从装备模拟到词缀优化的实战指南

PoB2 物品系统完整流程:从装备模拟到词缀优化的实战指南 【免费下载链接】PathOfBuilding-PoE2 项目地址: https://gitcode.com/GitHub_Trending/pa/PathOfBuilding-PoE2 Path of Building PoE2(下称 PoB2)是面向流放之路2 的桌面构建…

📅 2026/10/8 5:49:30
phpstan-doctrine 最佳实践:让 PHPStan Level 8 成为团队代码质量标配

phpstan-doctrine 最佳实践:让 PHPStan Level 8 成为团队代码质量标配

phpstan-doctrine 最佳实践:让 PHPStan Level 8 成为团队代码质量标配 【免费下载链接】phpstan-doctrine Doctrine extensions for PHPStan 项目地址: https://gitcode.com/gh_mirrors/ph/phpstan-doctrine phpstan-doctrine 是 PHPStan 官方出品的 Doctrin…

📅 2026/10/5 1:23:04
MORE NEWS

更多资讯

📰

Java项目中DML与数据迁移SQL的规范化管理实践

1. 问题背景与核心矛盾 在Java开发项目中,DML.sql文件通常被用作开发阶段新增数据的存储容器。这个文件会在上线时被带到生产环境执行,用于同步开发环境与生产环境的数据差异。然而在实际操作中,经常出现团队成员将数据迁移SQL也提交到同一个…

📰

AI辅助测试用例生成:提升效率与覆盖率

1. 项目概述:AI测试用例生成效率革命 去年在负责一个电商后台系统迭代时,我遇到了测试用例编写的瓶颈——新上线的优惠券模块涉及12种业务场景,按照传统方式编写测试用例需要3人天的工作量。直到尝试用Cursor的Skill功能,才真正体…

📰

Matlab自抗扰ADRC与PID控制源码对比:ESO扰动估计与参数整定实战

简介:这份资源是围绕Matlab平台整理的自抗扰控制器(ADRC)与PID控制源码合集,面向自动化、电子信息工程、数学等专业的学生及控制算法初学者,可用于课程设计、期末大作业或毕业设计中的算法验证与对比研究。包内共36个文…

📰

Cursor AI生成测试用例的实战技巧与效能提升

1. 项目概述:Cursor与AI生成测试用例的实战价值在软件测试领域,编写高质量的测试用例往往需要耗费大量时间。传统手工编写方式不仅效率低下,还容易遗漏边界条件。Cursor这款AI编程工具近期推出的Skill功能,通过自然语言交互就能快…

📰

Python爬虫实战:Requests+Xpath爬取新闻并Flask+Echarts可视化

简介:这份资源是一套基于Python、Flask与Echarts构建的观察者新闻网爬虫项目源码,面向具备一定Python基础、希望学习网络爬虫与数据可视化开发的进阶学习者。项目通过Requests发送请求,结合etree解析HTML并利用Xpath精准定位新闻信息&#xf…

📰

营销技能全景拆解:从用户洞察到数据闭环的实战方法论

干了十几年市场,看过无数简历上写着"精通营销"的人,也带过不少真正靠营销技能撑起增长的项目。说实话,营销这个行当门槛很低,低到谁都能发两条内容、投一笔预算;但天花板又极高,高到大多数团队卡…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬