1. AndroidManifest.xml 基础认知
作为一名从 Eclipse 时代一路走来的 Android 开发者,我至今记得第一次接触 AndroidManifest.xml 时的困惑。这个看似简单的 XML 文件,实际上承载着 Android 应用最核心的配置信息。让我们先建立对它的基础认知。
1.1 文件本质与定位
AndroidManifest.xml 是每个 Android 项目的必备文件,它位于项目的 app/src/main/ 目录下(Android Studio 标准结构)。这个文件之于 Android 应用,就像身份证之于我们每个人 - 没有它,系统根本无法识别你的应用。
在实际开发中,我见过不少新手会犯的两个典型错误:
- 误以为存在单独的 manifest 文件夹(其实文件直接放在 main 目录下)
- 尝试删除或重命名该文件(这会导致项目立即报错)
重要提示:Android Studio 2020.3 之后的新项目模板中,部分配置已迁移到 build.gradle,但 Manifest 的核心地位依然不可动摇。
1.2 历史演变与现状
从 Android 的发展历程来看,Manifest 文件的重要性有增无减:
- Eclipse 时代:所有配置都集中在 Manifest 中
- Android Studio 初期:开始将部分配置分散到 Gradle
- 现代项目:包名、版本号等基础信息仍在 Manifest,但编译配置更多由 Gradle 管理
这种演变带来一个常见问题:当配置出现冲突时(比如 Manifest 和 Gradle 都定义了 minSdkVersion),系统会以 Gradle 配置为准。这是需要特别注意的兼容性细节。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 核心结构与标签详解
2.1 文件整体框架
一个标准的 AndroidManifest.xml 通常包含以下结构层次:
xml复制<?xml version="1.0" encoding="utf-8"?>
<manifest>
<uses-sdk />
<uses-permission />
<application>
<activity>
<intent-filter>
<action />
<category />
</intent-filter>
</activity>
<service />
<receiver />
<provider />
</application>
</manifest>
2.2 根标签 manifest
<manifest> 标签是整个文件的根容器,它的几个关键属性决定了应用的基础身份:
xml复制<manifest
xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.myapp"
android:versionCode="1"
android:versionName="1.0">
-
package:应用的唯一标识符,必须遵循 Java 包名规范。这里有个开发者常踩的坑:一旦应用发布后,修改包名会导致 Google Play 视为全新应用!
-
versionCode & versionName:版本控制的关键。我建议团队采用这样的规范:
- version
