logadbdemo
AndroidManifest.xml
安卓开发配置文件/清单文件,类似html。
1. 定义
AndroidManifest.xml 是安卓应用的全局配置文件,位于项目 src/main/ 目录下,是安卓系统识别应用的「身份证」。它包含了应用的包名、组件注册、权限申请、系统兼容等核心信息,安卓系统启动应用、加载组件时,第一步就是读取这个文件。
2. 语法类型:XML
| 核心规则 | 示例 / 说明 |
|---|---|
| 标签必须闭合 | <activity>...</activity>(成对闭合)或 <application />(自闭合,无内容时用) |
| 标签有层级(父子关系) | <manifest> 是根标签,<application> 是其子标签,<activity> 又是 <application> 的子标签 |
| 属性用键值对表示 | android:name=".MainActivity"(android: 是命名空间前缀,name 是属性名,值用双引号包裹) |
| 命名空间必须声明 | 根标签 <manifest> 中必须声明 xmlns:android="http://schemas.android.com/apk/res/android"(否则android: 前缀无效) |
3. 核心结构(从上到下的层级)
<?xml version="1.0" encoding="utf-8"?>
<!-- 根标签:整个配置的入口,包含包名和命名空间 -->
<!-- xmlns:android="http://schemas.android.com/apk/res/android" 是安卓系统属性的官方命名空间地址,相当于告诉系统:以android为前缀的属性,都遵循安卓系统的标准。 -->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.seres.logadbdemo2">
<!-- 权限申请:应用需要的系统权限(比如联网、拍照) -->
<uses-permission android:name="android.permission.INTERNET" />
<!-- 应用核心配置:包含所有组件(Activity/Receiver/Service等) -->
<application
android:name=".MyApp"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name">
<!-- 界面组件:Activity(用户交互的界面) -->
<activity android:name=".MainActivity" android:exported="true">
<!-- intent-filter:主页面 -->
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<!-- 广播组件:BroadcastReceiver(接收外部指令) -->
<receiver android:name=".LogLevelReceiver" android:exported="true">
<intent-filter>
<action android:name="com.seres.logadbdemo2.CHANGE_LOG_LEVEL" />
</intent-filter>
</receiver>
</application>
</manifest>
二、<application> 标签详解(核心配置)
<application> 是 AndroidManifest.xml 中最核心的子标签,用于配置应用的全局属性和注册所有组件(Activity、BroadcastReceiver、Service、ContentProvider)。
1. 核心作用
- 定义应用的全局特征(图标、名称、主题、权限等);
- 作为所有组件的「容器」,所有组件必须嵌套在
<application>内才能被系统识别。
2. 常用属性(新手必掌握)
| 属性名 | 作用 | 示例 |
|---|---|---|
android:name |
自定义的 Application 类(全局初始化用) |
android:name=".MyApp" |
android:icon |
应用的图标(桌面图标、任务栏图标) | android:icon="@mipmap/ic_launcher" |
android:label |
应用的名称(桌面图标下方的文字、应用内的标题栏) | android:label="@string/app_name" |
android:theme |
应用的全局主题(控制界面样式,比如有无标题栏、颜色) | android:theme="@style/Theme.AppCompat.Light.NoActionBar" |
android:allowBackup |
是否允许应用数据备份(测试包默认 true,正式包建议根据需求设置) |
android:allowBackup="true" |
android:exported |
(安卓 12 + 新增)应用是否允许外部访问(默认 false,一般无需设置) |
android:exported="false" |
android:debuggable |
是否为调试模式(debug 包默认 true,release 包默认 false) |
android:debuggable="true" |
3. 组件注册(<application> 内的子标签)
所有安卓组件必须在 <application> 内注册,否则系统无法识别:
| 组件标签 | 作用 |
|---|---|
<activity> |
界面组件(用户交互的窗口,比如 MainActivity) |
<receiver> |
广播接收器(接收系统 / 外部广播,比如 LogLevelReceiver) |
<service> |
服务组件(后台运行的任务,比如音乐播放、数据下载) |
<provider> |
内容提供者(跨应用共享数据,比如通讯录、相册) |
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.seres.logadbdemo2">
<application
android:name=".MyApp"
android:allowBackup="true" <!-- 是否允许app备份数据 -->
android:icon="@mipmap/ic_launcher" <!-- app图标为res/mipmap/ic_launcher -->
android:label="@string/app_name" <!-- app名称为res/string下面的命名,string标签的app_name属性来取,也可以直接写“logadbdemo2” -->
android:roundIcon="@mipmap/ic_launcher_round" <!-- 不同android版本选取的图标不同 -->
android:supportsRtl="true"
android:theme="@style/Theme.AppCompat.Light.NoActionBar"> <!-- 主题 -->
<!-- 主界面(必含MAIN/LAUNCHER标签,保证有图标) -->
<activity
android:name=".MainActivity" <!--MainActivity.kt文件,一个MainActivity表示一个显示页面 -->
android:exported="true">
<intent-filter> <!-- 起始页,固定 -->
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<!-- ADB广播接收器(车机无UI时修改日志等级) -->
<receiver
android:name=".LogLevelReceiver"
android:exported="true"
android:enabled="true">
<intent-filter android:priority="1000">
<action android:name="com.seres.logadbdemo2.CHANGE_LOG_LEVEL" />
</intent-filter>
</receiver>
</application>
</manifest>
<manifest> //整个文件的标签,所有标签都要包含在这里面
<application> //第一个就是app,这也是APP的由来
</application>
</manifest>
常见的 AppCompat 主题(新手常用)
| 主题名称 | 效果描述 |
|---|---|
Theme.AppCompat.Light.NoActionBar |
浅色主题 + 无标题栏(最常用) |
Theme.AppCompat.Light |
浅色主题 + 显示默认标题栏 |
Theme.AppCompat.DayNight.NoActionBar |
跟随系统的浅色 / 深色主题 + 无标题栏(安卓 10 + 支持) |
Theme.AppCompat.NoActionBar |
深色主题 + 无标题栏 |
主页面:MainActivity.kt & activity_main.xml
主页面:在AndroidManifest.xml中声明.MainActivity作为首页面,MainActivity.kt中的代码需要与activity_main.xml布局绑定。不然会是空白页面。
·这两个文件的命名和存放位置都不是完全固定的,只不过遵循开发的习惯。
存放位置:
1. MainActivity.kt(kotlin代码文件)
作为kotlin文件,必须放在必须放在 src/main/java/ 目录下的任意子目录,一般放在app/src/main/java/[你的包名]/MainActivity.kt。
2.activity_main.xml(布局文件)
- 必须放在
src/main/res/目录下的以layout开头的子目录(这是安卓的资源目录规范):layout/:默认布局目录(适配所有设备);layout-land/:横屏布局目录;layout-v21/:安卓 5.0+ 设备的布局目录;- 你也可以自定义
layout-large/(大屏设备)等。
- 不能放在
res/values/(字符串 / 样式目录)、res/mipmap/(图标目录)等其他资源目录,否则安卓系统无法识别为布局文件。
更多推荐

所有评论(0)