AndroidManifest.xml指定了App的注册和运行时配置信息,它是一个XML描述文件
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.bytedance.tiktok">
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.INTERNET"/>
<application
android:name=".application.App"
android:allowBackup="true"
android:icon="@mipmap/launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/launcher"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity
android:name=".activity.SplashActivity"
android:screenOrientation="unspecified"
android:exported="true"
android:theme="@style/Launch_Theme">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".activity.MainActivity"
android:screenOrientation="unspecified"
android:exported="false"/>
<activity android:name=".activity.FocusActivity"
android:exported="false"
android:screenOrientation="unspecified" />
<activity android:name=".activity.PlayListActivity"
android:exported="false"
android:screenOrientation="unspecified" />
<activity android:name=".activity.ShowImageActivity"
android:exported="false"
android:screenOrientation="unspecified"/>
</application>
</manifest>
1.Uses-permission节点
<uses-permission> 节点用于声明应用程序所需要的系统权限。这些权限告诉系统,应用程序需要访问受保护的 API 或资源,例如文件存储、网络连接、相机等。当应用程序被安装时,系统会读取 AndroidManifest.xml 文件,并根据其中声明的权限来决定是否允许应用执行特定的操作。
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.INTERNET"/>
这表明其具有读写外存的权限,以及访问网络的权限。
2.Application节点
可见AndroidManifest.xml的根节点为manifest,它的package属性指定了该App的包名。manifest下面有个application节点,它的各属性说明如下下:
android:allowBackup,是否允许应用备份。允许用户备份系统应用和第三方应用的apk安装包和应用数据,以便在刷机或者数据丢失后恢复应用,用户即可通过adb backup和adb restore来进行对应用数据的备份和恢复。为true表示允许,为false则表示不允许。
android:icon,指定App在手机屏幕上显示的图标。
android:label,指定App在手机屏幕上显示的名称。
android:roundIcon,指定App的圆角图标。
android:supportsRtl,是否支持阿拉伯语/波斯语这种从右往左的文字排列顺序。为true表示支持,为false表示不支持。
android:theme,指定App的显示风格
3.Activity节点
注意到application下面还有个activity节点,它是活动页面的注册声明,只有在AndroidManifest.xml中正确配置了activity节点,才能在运行时访问对应的活动页面。
初始配置的MainActivity正是App的默认主页,之所以说该页面是App主页,是因为它的activity节点内部还配置了以下的过滤信息:
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
提问:什么是intent-filter?