Android清单文件

清单文件AndroidManifest.xml

AndroidManifest.xml 配置清单文件是 每个 Android 应用的配置中心,系统在安装和运行应用时,首先会读取它。

它是 Android 应用的 "说明书",主要作用是:

功能 说明
声明应用组件 比如 Activity、Service、BroadcastReceiver 等
请求权限 比如访问网络、读写存储、拍照等
声明应用信息 应用名、图标、版本号、最小兼容 SDK 等
配置 intent-filter 指定某个组件能响应哪些 Intent(尤其是隐式 Intent)
设置应用入口 指定启动时第一个 Activity

基本结构

xml 复制代码
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.myapp">

    <!-- 权限声明 -->
    <uses-permission android:name="android.permission.INTERNET" />

    <!-- 应用本体 -->
    <application
        android:label="@string/app_name"
        android:icon="@mipmap/ic_launcher"
        android:theme="@style/AppTheme">

        <!-- 启动 Activity -->
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

        <!-- 其他 Activity -->
        <activity android:name=".SecondActivity" />
    </application>

</manifest>

主要节点详解

<manifest> 根节点
属性 说明
xmlns:android 声明 XML 命名空间,必须有
package 包名,必须唯一,通常和代码一致

<uses-permission> 声明权限

声明你的应用需要什么权限,例如:

xml 复制代码
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.INTERNET" />

系统会在安装时提示用户。


<application> 应用级设置

它包含整个应用的组件和元数据。

属性 说明
android:label 应用名称(需要在strings.xml中定义)
android:icon 应用图标,放在res/mipmap目录
android:theme 主题样式
android:name (可选)自定义 Application 类

<activity> 声明 Activity 页面

这个 Android 项目中的全部 Activity 都必须在清单文件中用声明

xml 复制代码
<activity android:name=".MainActivity">
    <!-- 设置该页面为启动页面 -->
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>
属性 说明
android:name Activity 的类名(可用 .类名 简写)
intent-filter 定义此 Activity 可响应的 Intent
android:screenOrientation 屏幕方向(portrait/landscape)

<intent-filter> 意图过滤器

包括在中

用于指定组件能响应该怎样的 Intent。

最典型用途:指定 App 的主入口 Activity。告诉系统哪些Intent可以触发当前activity

xml 复制代码
<intent-filter>
    <action android:name="android.intent.action.MAIN" />
    <category android:name="android.intent.category.LAUNCHER" />
</intent-filter>

含义是:这是一个 主界面(MAIN) + 桌面图标(LAUNCHER)

属性 说明
<action> 指定Intent的动作(如MAIN代表主入口)
<category> 指定intent的类别(如LAUNCHER代表启动器)
服务(Service)
xml 复制代码
<service android:name=".MyService" />
广播接收器(BroadcastReceiver)
xml 复制代码
<receiver android:name=".MyReceiver">
    <intent-filter>
        <action android:name="android.intent.action.BOOT_COMPLETED" />
    </intent-filter>
</receiver>
内容提供者(ContentProvider)
xml 复制代码
<provider android:name=".MyProvider"
    android:authorities="com.example.myapp.provider"
    android:exported="false" />

权限机制注意

从 Android 6.0(API 23)开始,除了在 AndroidManifest.xml 里声明权限外,还必须 在运行时动态申请某些敏感权限(比如摄像头、位置、存储读写)。

下面是一些常用的权限

xml 复制代码
    <uses-permission android:name="android.permission.INTERNET" /> <!-- 添加网络权限 -->

    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <!-- 添加写入外部存储权限 -->
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <!-- 添加读取外部存储权限 -->
    <uses-permission android:name="android.permission.CAMERA" /> <!-- 添加相机权限 -->

常见错误

问题 原因
页面跳转时报错 没有在 manifest 里声明目标 Activity
权限不生效 没在 manifest 中声明,或没有动态申请
找不到主入口 忘了加 MAIN + LAUNCHER 的 <intent-filter>

相关推荐
花开月满西楼37 分钟前
保姆级【快数学会Android端“动画“】+ 实现补间动画和逐帧动画!!!
android·前端·android studio
这儿有一堆花41 分钟前
打造你的 Android 图像编辑器:深入解析 PhotoEditor 开源库
android·开源
皮皮高2 小时前
itvbox绿豆影视tvbox手机版影视APP源码分享搭建教程
android·前端·后端·开源·tv
EnzoRay2 小时前
MotionEvent
android
玲小珑3 小时前
Auto.js 入门指南(七)定时任务调度
android·前端
墨狂之逸才3 小时前
adb常用命令调试
android
YoungForYou3 小时前
Android端部署NCNN
android
移动开发者1号3 小时前
Jetpack Compose瀑布流实现方案
android·kotlin
移动开发者1号3 小时前
Android LinearLayout、FrameLayout、RelativeLayout、ConstraintLayout大混战
android·kotlin
移动开发者1号4 小时前
ListView与RecyclerView区别总结
android·kotlin