Android AndroidManifest 文件内标签及属性

以下是重新排版后的文章:

AndroidManifest

1. <manifest>

  • 它是AndroidManifest.xml文件的根标签,包含了整个应用程序的基本信息,如应用程序的包名、版本代码、版本名称等。所有其他标签几乎都是在manifest标签内部定义的。

  • 示例:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"package="com.example.myapplication"android:sharedUserId="com.example.shareduser"android:versionCode="1"android:versionName="1.0"android:installLocation="preferExternal"><!-- 这里可以继续添加<application>、<uses - permission>等子标签 -->
</manifest>

属性

  1. xmlns:android

    • 含义:定义 Android 命名空间,用于在清单文件中引用 Android 系统提供的各种属性和标签。
    • 示例
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"package="com.example.myapplication">
    
    • 这个命名空间使得在后续的标签和属性设置中能够使用android:前缀来引用 Android 系统定义的标准属性,如android:iconandroid:label等。
  2. package

    • 含义:指定应用程序的包名。这个包名在整个 Android 系统中是唯一的,用于识别应用。它是应用的一个重要标识符,在很多场景下都会用到,比如组件的引用、权限的定义等。
    • 示例
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"package="com.example.myapplication">
    
    • 包名通常采用反向域名的格式,如com.example.myapplication,其中com.example是开发者或组织的域名倒写,myapplication是应用的具体名称部分。
  3. android:sharedUserId

    • 含义:用于多个应用之间共享用户 ID。当多个应用设置了相同的sharedUserId时,它们可以访问彼此的数据,并且在一定程度上可以共享进程等资源。不过,这种共享也需要谨慎使用,因为可能会带来安全风险。
    • 示例
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"package="com.example.myapplication"android:sharedUserId="com.example.shareduser">
    
    • 在这个例子中,设置了共享用户 ID 为com.example.shareduser,如果其他应用也设置了相同的sharedUserId,就可以在符合权限规则的情况下共享资源。
  4. android:versionCode

    • 含义:用于表示应用程序的版本号,是一个整数值。这个版本号主要用于系统和应用市场来区分应用的不同版本,用于升级等操作。例如,当新版本的versionCode大于旧版本时,系统可以提示用户进行升级。
    • 示例
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"package="com.example.myapplication"android:versionCode="1">
    
    • 开发者在更新应用时,需要逐步递增这个版本号,一般来说,每次发布一个新的版本,版本号都应该比之前的版本大。
  5. android:versionName

    • 含义:这是一个用于显示给用户的版本名称,通常是一个字符串,如1.01.1 - beta等格式。它主要用于用户在应用市场或者应用的关于页面中查看应用的版本信息。
    • 示例
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"package="com.example.myapplication"android:versionName="1.0">
    
    • versionCode不同,versionName更侧重于用户友好的版本展示,它可以包含一些额外的信息,如版本的阶段(alpha、beta、release 等)。
  6. android:installLocation

    • 含义:用于指定应用的安装位置。它可以有三个值:internalOnly(仅安装在内部存储)、preferExternal(优先安装在外部存储,如果外部存储不可用则安装在内部存储)和auto(由系统根据存储情况决定安装位置)。
    • 示例
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"package="com.example.myapplication"android:installLocation="preferExternal">
    
    • 这个设置可以帮助用户更好地管理设备的存储空间,特别是对于一些大型应用或者存储资源有限的设备。

1.2. <uses - permission>

  • 用于声明应用需要的权限。这些权限允许应用访问受保护的系统资源或执行特定的操作。例如,访问网络、读取联系人等。
  • 示例:
<uses - permission android:name="android.permission.INTERNET"/>
  • 这个标签表示应用需要访问网络的权限。

1.3. <permission>

  • 用于定义应用自己的权限。如果应用希望提供数据或者服务给其他应用,并且想要控制对这些内容的访问,就可以使用这个标签来定义权限。
  • 示例:
<permissionandroid:name="com.example.myapplication.permission.MY_PERMISSION"android:description="@string/permission_description"android:label="@string/permission_label"android:protectionLevel="normal"/>

1.4. <instrumentation>

  • 主要用于测试。它可以用来监视应用的运行情况,例如在测试自动化框架中使用,通过它可以在应用运行时收集各种数据。
  • 示例:
<instrumentationandroid:name="android.test.InstrumentationTestRunner"android:targetPackage="com.example.myapplication"/>

1.5. <uses - sdk>

  • 用于指定应用所兼容的 Android SDK 版本信息,包括最小 SDK 版本、目标 SDK 版本和最大 SDK 版本。这有助于确保应用在合适的 Android 设备上运行,并且可以利用特定版本的 API。
  • Android studio3.0 以后 sdk 最小版本设置不能在 manifest.xml 设置,必须在 gradle 里设置功能。
  • 示例:
<uses - sdkandroid:minSdkVersion="21"android:targetSdkVersion="30"/>

1.6. <uses - feature>

  • 用于声明应用所使用的设备硬件或软件功能。例如,如果应用需要使用相机功能,就可以使用这个标签来声明。这样可以帮助应用市场等平台更好地筛选设备,确保应用在具有所需功能的设备上安装。
  • 示例:
<uses - feature android:name="android.hardware.camera"/>

1.7. <supports - screens>

  • 用于指定应用支持的屏幕尺寸和密度。这有助于确保应用在不同屏幕的设备上(如手机、平板等)都能有较好的显示效果。
  • 示例:
<supports - screensandroid:smallScreens="true"android:normalScreens="true"android:largeScreens="true"/>

1.8. <compatible - screens>

  • 这个标签与supports - screens类似,但它是更严格的屏幕兼容性定义。它可以指定应用只兼容某些特定的屏幕尺寸和密度组合。
  • 示例:
<compatible - screens><screenandroid:screenSize="small"android:screenDensity="mdpi"/>
</compatible - screens>

1.9. <application>

  • 如前面所述,它用于描述应用程序本身的各种属性和组件,包括 Activity、Service、Broadcast Receiver 和 Content Provider 等。这是定义应用功能的核心标签之一。
  • 示例:
<applicationandroid:icon="@drawable/ic_launcher"android:label="@string/app_name"><!-- 定义 Activity、Service 等组件 -->
</application>

属性

  1. android:icon

    • 含义:用于指定应用程序的图标。
  2. android:label

    • 含义:用于设置应用程序的名称。这个名称会在应用图标旁边显示(如在主屏幕或应用抽屉中),也可能在系统的应用管理界面等地方出现。一般引用string资源,如@string/app_name
    • app_name对应的字符串会作为应用的名称展示给用户。
  3. android:allowBackup

    • 含义:AllowBackup 是在 Android 2.2 中引入的一个系统备份的功能。允许用户备份系统应用和第三方应用的 apk 安装包和应用数据,以便在刷机或者数据丢失后恢复应用,用户即可通过 adb backup 和 adb restore 来进行对应用数据的备份和恢复。第三方应用开发者需要在应用的 AndroidManifest.xml 文件中配置 allowBackup 标志(默认为 true )来设置应用数据是否能能够被备份或恢复。

    • allowBackup 会引起的高危漏洞是什么?

    • Android 属性 allowBackup 安全风险源于 adb backup 容许任何一个能够打开 USB 调试开关的人从 Android 手机中复制应用数据到外设,一旦应用数据被备份之后,所有应用数据都可被用户读取;adb restore 容许用户指定一个恢复的数据来源(即备份的应用数据)来恢复应用程序数据的创建。因此,当一个应用数据被备份之后,用户即可在其他 Android 手机或模拟器上安装同一个应用,以及通过恢复该备份的应用数据到该设备上,在该设备上打开该应用即可恢复到被备份的应用程序的状态。

    • 尤其是通讯录应用,一旦应用程序支持备份和恢复功能,攻击者即可通过 adb backup 和 adb restore 进行恢复新安装的同一个应用来查看聊天记录等信息;对于支付金融类应用,攻击者可通过此来进行恶意支付、盗取存款等;因此为了安全起见,开发者务必将 allowBackup 标志值设置为 false 来关闭应用程序的备份和恢复功能,以免造成信息泄露和财产损失。

    • android:allowBackup设置为false时,系统不会备份该应用的数据。

  4. android:backupAgent

    • 含义:用于指定备份代理类。如果android:allowBackuptrue,并且需要自定义备份行为,可以通过这个属性指定一个实现了android.app.backup.BackupAgent接口的类来处理备份和恢复操作。
    • 示例
    <applicationandroid:icon="@drawable/ic_launcher"android:label="@string/app_name"android:allowBackup="true"android:backupAgent="com.example.myapp.MyBackupAgent"><!-- 应用组件定义 -->
    </application>
    
    • 这里MyBackupAgent是自定义的备份代理类,用于处理应用数据的备份和恢复细节。
  5. android:debuggable

    • 含义:一个布尔值属性,用于指定应用是否可以被调试。在开发阶段,通常设置为true,这样开发工具(如 Android Studio)可以连接到应用进行调试。在发布版本中,应该设置为false以提高应用的安全性。
    • 示例
    <applicationandroid:icon="@drawable/ic_launcher"android:label="@string/app_name"android:debuggable="true"><!-- 应用组件定义 -->
    </application>
    
    • android:debuggabletrue时,应用可以被调试工具连接并进行调试操作。
  6. android:description

    • 含义:用于提供应用的详细描述。这个描述可能会在应用市场等地方显示,帮助用户了解应用的功能和用途。通常引用string资源,如@string/app_description
    • 示例
    <applicationandroid:icon="@drawable/ic_launcher"android:label="@string/app_name"android:description="@string/app_description"><!-- 应用组件定义 -->
    </application>
    
    • app_description对应的字符串内容会作为应用的详细描述展示给用户。
  7. android:enabled

    • 含义:一个布尔值属性,用于指定应用是否启用。如果设置为false,应用将无法正常启动,所有组件也不会响应。默认值为true
    • 示例
    <applicationandroid:icon="@drawable/ic_launcher"android:label="@string/app_name"android:enabled="false"><!-- 应用组件定义 -->
    </application>
    
    • android:enabledfalse时,应用处于禁用状态。
  8. android:hardwareAccelerated

    • 含义:一个布尔值属性,用于指定应用是否启用硬件加速。硬件加速可以利用设备的 GPU 来加速图形渲染等操作,提高应用的性能,特别是对于有大量图形处理的应用。默认值因 Android 版本而异。
    • 示例
    <applicationandroid:icon="@drawable/ic_launcher"android:label="@string/app_name"android:hardwareAccelerated="true"><!-- 应用组件定义 -->
    </application>
    
    • android:hardwareAcceleratedtrue时,应用会尝试使用硬件加速来提升性能。
  9. android:largeHeap

    • 含义:一个布尔值属性,用于指定应用是否可以使用较大的堆内存。默认情况下,Android 为应用分配一定大小的内存堆,当设置android:largeHeaptrue时,允许应用使用更多的内存,但这可能会影响设备的整体性能和稳定性,并且需要谨慎使用。
    • 示例
    <applicationandroid:icon="@drawable/ic_launcher"android:label="@string/app_name"android:largeHeap="true"><!-- 应用组件定义 -->
    </application>
    
    • android:largeHeaptrue时,应用有机会使用比正常情况下更多的内存。
  10. android:permission

    • 含义:用于指定访问这个应用组件的权限。如果其他应用想要访问这个应用的组件(如 Activity、Service 等),需要拥有这个指定的权限。
    • 示例
    <applicationandroid:icon="@drawable/ic_launcher"android:label="@string/app_name"android:permission="com.example.myapp.PERMISSION_TO_ACCESS"><!-- 应用组件定义 -->
    </application>
    
    • 其他应用要访问这个应用的组件,就需要声明com.example.myapp.PERMISSION_TO_ACCESS这个权限。
  11. android:process

    • 含义:用于指定应用组件运行的进程。默认情况下,所有组件都在应用的默认进程中运行,但可以通过这个属性为不同的组件指定不同的进程,甚至可以让多个应用共享一个进程。
    • 示例
    <applicationandroid:icon="@drawable/ic_launcher"android:label="@string/app_name"><activity android:name=".MyActivity"android:process=":my_process"><!-- 其他内容 --></activity>
    </application>
    
    • 这里MyActivity会在名为:my_process的进程中运行,而不是在应用的默认进程中。
  12. android:restoreAnyVersion

    • 含义:一个布尔值属性,用于指定在恢复应用数据时是否允许恢复任何版本的数据。如果设置为true,系统会尝试使用备份代理恢复数据,即使备份的数据是来自应用的旧版本。默认值为false
    • 示例
    <applicationandroid:icon="@drawable/ic_launcher"android:label="@string/app_name"android:restoreAnyVersion="true"><!-- 应用组件定义 -->
    </application>
    
    • android:restoreAnyVersiontrue时,系统在恢复数据时会更灵活地处理不同版本的数据备份。
  13. android:taskAffinity

    • 含义:用于指定 Activity 所属的任务相关性。它主要用于确定 Activity 在任务栈中的归属,以及与其他任务栈的关系。默认情况下,一个应用的所有 Activity 都具有相同的任务相关性,与应用的包名相关。
    • 示例
    <applicationandroid:icon="@drawable/ic_launcher"android:label="@string/app_name"><activity android:name=".MyActivity"android:taskAffinity="com.example.myapp.my_task"><!-- 其他内容 --></activity>
    </application>
    
    • 这里MyActivity的任务相关性被设置为com.example.myapp.my_task,这可能会影响它在任务栈中的行为,比如在启动新的 Activity 或者处理返回键操作时。
  14. android:usesCleartextTraffic

    • 含义:一个布尔值属性,用于指定应用是否允许使用明文网络流量。在一些安全要求较高的环境中,可能需要限制应用只能使用加密的网络连接(如HTTPS),此时可以将这个属性设置为false。默认值为true
    • 示例
    <applicationandroid:icon="@drawable/ic_launcher"android:label="@string/app_name"android:usesCleartextTraffic="false"><!-- 应用组件定义 -->
    </application>
    
    • android:usesCleartextTrafficfalse时,应用在网络通信中会受到限制,不能使用明文协议(如HTTP)。
  15. tools:replace
    tools:replace是一个 Android Gradle 插件中用于处理合并清单文件时的属性。

  • 含义:当在 Android 项目中使用多个清单文件(例如库项目和主项目都有自己的AndroidManifest.xml),在合并这些清单文件的过程中可能会出现冲突。tools:replace属性允许开发者指定哪些元素或属性应该在合并时被替换,而不是产生合并错误。
    如果AAR或者moudle内给Application设置过属性,如果主工程也需要设置,那么主工程需要覆盖这些属性
tools:replace="android:name,android:allowBackup,android:label,android:supportsRtl"

否则异常:

> Task :app:processDebugManifest
> 
D:\project_xxx\code\DfskAarTestDemo\app\src\main\AndroidManifest.xml:6:5-37:19 
Warning:application@android:name was tagged at AndroidManifest.xml:6 to replace other declarations but no other declaration presentD:\project_xxx\code\DfskAarTestDemo\app\src\main\AndroidManifest.xml:6:5-37:19 Warning:application@android:allowBackup was tagged at AndroidManifest.xml:6 to replace other declarations but no other declaration present
  1. android:configChanges
    configChanges是 AndroidManifest.xml 文件中的一个属性,可以指定哪些配置变化不会导致重新创建 Activity。当你的应用需要在某些配置变化发生时保持用户状态或不希望发生界面重建时,可以通过这个属性来动态处理。
android:configChanges="orientation|keyboardHidden|navigation|screenSize|locale|layoutDirection|uiMode|fontScale|mcc|mnc|screenLayout|smallestScreenSize|touchscreen|keyboard"
  1. android:requestLegacyExternalStorage
    在 Android 10 中,系统对应用程序的文件访问权限进行了一些更改。默认情况下,应用程序无法访问外部存储(如SD卡)中的文件。然而,为了向后兼容性,Android 10 提供了一个属性requestLegacyExternalStorage,可以让应用程序继续使用旧的存储访问行为。

1.9.1. <activity>

  • 含义:Activity是 Android 应用中最基本的组件之一,用于实现用户界面。每个 Activity 通常对应一个屏幕的内容。
  • 示例
<applicationandroid:icon="@drawable/ic_launcher"android:label="@string/app_name"><activity android:name=".MainActivity"><intent - filter><action android:name="android.intent.action.MAIN"/><category android:name="android.intent.category.LAUNCHER"/></intent - filter></activity>
</application>
  • 在这个例子中,MainActivity是应用的主启动 Activity。intent - filter中的actioncategory标签组合指定了该 Activity 是应用的主入口,当用户点击应用图标时会启动这个 Activity。

属性

  1. android:name

    • 含义:指定 Activity 的类名。这是最重要的属性之一,用于在清单文件中明确标识 Activity。可以使用完整的包名和类名(如com.example.myapp.MyActivity),也可以使用相对路径(如.MyActivity,它会基于清单文件中的package属性来确定完整的类名)。
    • 示例
    <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=".MainActivity"表示该 Activity 对应的类是在当前应用包名基础上的MainActivity类。
  2. android:label

    • 含义:用于设置 Activity 的标题或标签。这个标题通常会显示在屏幕的顶部(如在 ActionBar 或 Toolbar 中),或者在任务管理器等地方作为 Activity 的标识。可以引用字符串资源(如@string/activity_label),也可以直接使用字符串。
    • 示例
    <activity android:name=".MyActivity"android:label="@string/activity_title"><!-- 其他内容 -->
    </activity>
    
    • 当应用运行时,MyActivity的标题会显示为strings.xml文件中activity_title所对应的字符串内容。
  3. android:icon

    • 含义:用于指定 Activity 的图标。图标可以用于在任务管理器、最近使用的应用列表等地方显示 Activity 的标识。和android:label一样,可以引用drawable资源(如@drawable/activity_icon)。
    • 示例
    <activity android:name=".AnotherActivity"android:icon="@drawable/activity_icon"><!-- 其他内容 -->
    </activity>
    
    • 这个属性使得AnotherActivity在需要显示图标的地方(如任务切换界面)会显示drawable文件夹下activity_icon对应的图标。
  4. android:theme

    • 含义:用于设置 Activity 的主题。主题决定了 Activity 的外观风格,包括颜色、背景、字体等方面。可以引用系统自带的主题(如@android:style/Theme.Holo.Light),也可以使用自定义主题。
    • 示例
    <activity android:name=".CustomThemeActivity"android:theme="@style/CustomTheme"><!-- 其他内容 -->
    </activity>
    
    • 这里CustomThemeActivity会应用名为CustomTheme的主题,这个主题可以在styles.xml文件中进行定义,通过修改主题的属性来改变 Activity 的整体外观。
  5. android:launchMode

    • 含义:用于指定 Activity 的启动模式。它决定了在多个 Activity 实例之间如何交互和管理任务栈。常见的启动模式有standard(默认模式,每次启动都会创建一个新的实例)、singleTop(如果目标 Activity 已经在栈顶,则复用该实例,否则创建新实例)、singleTask(如果栈中已经存在目标 Activity,则清除它上面的所有 Activity,使目标 Activity 位于栈顶)和singleInstance(该 Activity 会在一个单独的任务栈中运行)。
    • 示例
    <activity android:name=".SingleTopActivity"android:launchMode="singleTop"><!-- 其他内容 -->
    </activity>
    
    • 当启动SingleTopActivity时,如果它已经在栈顶,就不会创建新的实例,而是会调用现有实例的onNewIntent()方法来处理新的意图。
  6. android:noHistory

    • 含义:一个布尔值属性。当设置为true时,Activity 在用户离开(如按下返回键或启动其他 Activity)后不会被保留在任务栈中,即不会在用户通过返回键返回时再次出现。
    • 示例
    <activity android:name=".NoHistoryActivity"android:noHistory="true"><!-- 其他内容 -->
    </activity>
    
    • 这样NoHistoryActivity在用户离开后就不会出现在任务栈中,适用于一些临时的、不需要保留历史记录的界面,比如登录成功后的过渡页面。
  7. android:parentActivityName

    • 含义:用于指定 Activity 的父 Activity。这在处理向上导航(如在 ActionBar 中点击向上箭头)时非常有用。系统可以根据这个属性自动为 Activity 添加向上导航的功能。
    • 示例
    <activity android:name=".ChildActivity"android:parentActivityName=".MainActivity"><!-- 其他内容 -->
    </activity>
    
    • ChildActivity处于前台时,ActionBar 上可能会出现一个向上箭头,点击它可以导航回到MainActivity
  8. android:screenOrientation

    • 含义:用于指定 Activity 的屏幕方向。可以设置为portrait(竖屏)、landscape(横屏)、sensor(根据传感器自动旋转)等多种值。
    • 示例
    <activity android:name=".FixedOrientationActivity"android:screenOrientation="portrait"><!-- 其他内容 -->
    </activity>
    
    • 这个FixedOrientationActivity会一直保持竖屏状态,不会随着设备的旋转而改变屏幕方向。
  9. android:windowSoftInputMode

    • 含义:用于指定当软键盘出现时,Activity 的窗口如何调整。例如,可以设置为stateVisible(软键盘总是可见)、adjustResize(调整 Activity 的大小以适应软键盘)、adjustPan(平移 Activity 的内容以显示被软键盘遮挡的部分)等。
    • 示例
    <activity android:name=".InputActivity"android:windowSoftInputMode="adjustResize"><!-- 其他内容 -->
    </activity>
    
    • 当软键盘在InputActivity中出现时,Activity 会自动调整大小,使得内容能够适应软键盘出现后的屏幕空间。

1.9.1.1. <intent - filter>

  • 含义:用于指定 Activity 能够响应的意图(Intent)类型。它可以包含一个或多个<action><category><data>标签的组合,以定义 Activity 可以处理的不同情况。
  • 示例
<activity android:name=".MainActivity"><intent - filter><action android:name="android.intent.action.MAIN"/><category android:name="android.intent.category.LAUNCHER"/></intent - filter>
</activity>
  • 在这个例子中,action标签指定了MAIN动作,category标签指定了LAUNCHER类别,这表示该 Activity 是应用的主启动 Activity,当用户点击应用图标时,系统会发送一个带有MAIN动作和LAUNCHER类别的意图,这个 Activity 就会被启动。
1.9.1.1.1. <action>
  • 含义:用于指定一个意图动作。它定义了 Activity(或其他组件)可以响应的操作类型。例如,android.intent.action.MAIN表示这是主要的启动动作,android.intent.action.VIEW通常用于查看数据等操作。
  • 示例
<intent - filter><action android:name="android.intent.action.MAIN"/><category android:name="android.intent.category.LAUNCHER"/>
</intent - filter>
  • 在这个示例中,action标签中的android.intent.action.MAIN表明该组件是一个主要的启动点,通常与LAUNCHER类别配合,用于启动应用。
1.9.1.1.2. <category>
  • 含义:用于进一步对意图进行分类。除了动作之外,类别可以帮助系统更精准地匹配意图和组件。例如,android.intent.category.LAUNCHER用于标记可以在启动器中显示的组件,android.intent.category.DEFAULT是一个默认类别,用于隐式意图。
  • 示例
<intent - filter><action android:name="android.intent.action.VIEW"/><category android:name="android.intent.category.DEFAULT"/><category android:name="android.intent.category.BROWSABLE"/>
</intent - filter>
  • 这里的 Activity 可以响应VIEW动作,并且同时属于DEFAULTBROWSABLE类别。这可能意味着它可以从浏览器等其他应用中启动,用于查看某些内容,比如网页链接对应的自定义视图。
1.9.1.1.3. <data>
  • 含义:用于指定与意图相关的数据的类型、格式和位置等信息。这可以包括数据的 MIME 类型(如text/plain表示纯文本)、数据的 URI(统一资源标识符)等。
  • 示例
<intent - filter><action android:name="android.intent.action.VIEW"/><category android:name="android.intent.category.DEFAULT"/><data android:mimeType="image/*"/>
</intent - filter>
  • 此 Activity 可以响应VIEW动作,对于DEFAULT类别,并且处理的数据类型是任意图像(image/*),可能用于显示图片。例如,当用户尝试从文件管理器或其他应用中查看一张图片时,这个 Activity 有机会被启动来展示该图像。

1.9.1.2. <meta - data>

  • 含义:为 Activity 提供额外的自定义数据。这些数据可以是各种类型,如字符串、整数等,用于配置 Activity 的特殊行为或者传递一些信息。
  • 示例
<activity android:name=".MyActivity"><meta - dataandroid:name="custom_key"android:value="custom_value"/>
</activity>
  • 这里MyActivity有一个名为custom_key的元数据,其值为custom_value。在 Activity 的代码中,可以通过getMetaData()等方法获取这些元数据来进行相应的处理,例如根据这个自定义数据来决定 Activity 的某些布局或者功能。

1.9.2. <service>

  • 含义:Service用于在后台执行长时间运行的操作,不提供用户界面。例如,音乐播放服务、文件下载服务等。
  • 示例
<applicationandroid:icon="@drawable/ic_launcher"android:label="@string/app_name"><service android:name=".MyService"></service>
</application>
  • 这里定义了一个名为MyService的服务,当需要在后台执行任务时,可以在代码中启动这个服务来完成相应的操作。

属性

  1. android:name
    • 含义:指定 Service 的类名。可以是完整包名和类名,也可以是相对路径(基于清单文件中的package属性来确定完整类名)。这是用于在清单文件中明确标识 Service 的关键属性。
  • 示例
<service android:name=".MyService"></service>
  1. android:enabled
    • 含义:布尔值属性,用于确定 Service 是否启用。设置为false时,Service 无法启动,默认值为true,可用于根据条件禁用 Service。
    • 示例
<service android:name=".MyService"android:enabled="false"></service>
  1. android:exported
    • 含义:布尔值属性,用于指定 Service 是否可被其他应用程序组件调用。true表示可以被外部应用访问,false(默认)表示只能在应用内部访问。
    • 示例
<service android:name=".InternalService"android:exported="false"></service>
  1. android:icon
    • 含义:用于指定 Service 的图标。图标可能在某些调试或管理工具中显示以标识 Service,通常引用drawable资源。
    • 示例
<service android:name=".VisibleService"android:icon="@drawable/service_icon"></service>
  1. android:label
    • 含义:用于设置 Service 的标签或名称,可能在调试工具、系统服务管理界面等地方显示以标识 Service,一般引用string资源。
    • 示例
<service android:name=".NamedService"android:label="@string/service_label"></service>
  1. android:permission
    • 含义:用于指定调用该 Service 所需的权限。其他组件(包括其他应用中的组件)启动或绑定此 Service 时需要拥有该权限。
    • 示例
<service android:name=".ProtectedService"android:permission="com.example.myapp.ACCESS_SERVICE"></service>
  1. android:process
    • 含义:用于指定 Service 运行的进程。默认在应用主进程中运行,也可指定单独进程,用于隔离运行环境,提高稳定性和性能。
    • 示例
<service android:name=".IsolatedService"android:process=":service_process"></service>
  1. android:foregroundServiceType
    • 含义:从 Android 9(API 级别 28)开始引入,用于更精细地指定前台服务的类型,如locationmediaPlaybackphoneCall等,以符合系统对不同类型前台服务的管理要求。
    • 示例
<serviceandroid:name=".MyLocationService"android:foregroundServiceType="location"><!-- 其他服务相关内容 -->
</service>
  1. android:stopWithTask
    • 含义:布尔值属性,用于指定当与服务关联的任务结束时,服务是否随之停止。默认值为true,设置为false时,服务将在任务结束后继续运行。
    • 示例
<serviceandroid:name=".MyPersistentForegroundService"android:stopWithTask="false"><!-- 其他服务相关内容 -->
</service>

1.9.2.1. <intent - filter>

  • 含义:和 Activity 中的intent - filter类似,用于指定 Service 能够响应的意图类型。通过定义动作(<action>)、类别(<category>)和数据(<data>)等信息,让其他组件(如 Activity)可以通过特定的意图来启动或绑定该 Service。
  • 示例
<service android:name=".MyService"><intent - filter><action android:name="com.example.myapp.START_MY_SERVICE"/></intent - filter>
</service>
  • 在这里,定义了一个动作com.example.myapp.START_MY_SERVICE,其他组件可以通过发送带有这个动作的意图来启动MyService
1.9.2.1.1. <action>
  • 含义:用于指定服务可以响应的动作。这是intent - filter中最重要的标签之一,通过定义动作,外部组件可以发送特定动作的意图来启动或与服务交互。例如,一个音乐播放服务可能定义android.media.action.PLAY这样的动作。
  • 示例
<service android:name=".MusicService"><intent - filter><action android:name="android.media.action.PLAY"/></intent - filter>
</service>
  • 在这里,MusicService可以响应PLAY动作,当其他组件(如音乐播放控制器 Activity)发送带有android.media.action.PLAY动作的意图时,这个服务就可以执行播放音乐的操作。
1.9.2.1.2. <category>
  • 含义:用于进一步对意图进行分类,以更精确地匹配意图和服务。虽然在服务的intent - filter中不像在 Activity 中那么常用,但在某些情况下可以用于提供额外的筛选条件。例如,android.intent.category.DEFAULT类别可以用于隐式意图。
  • 示例
<service android:name=".DownloadService"><intent - filter><action android:name="com.example.download.START_DOWNLOAD"/><category android:name="android.intent.category.DEFAULT"/></intent - filter>
</service>
  • 在这个例子中,DownloadService除了响应START_DOWNLOAD动作外,还属于DEFAULT类别,这有助于在使用隐式意图调用服务时更准确地匹配。
1.9.2.1.3. <data>
  • 含义:用于指定与意图相关的数据的类型、格式和位置等信息。在服务中,这可以用于处理特定类型的数据相关操作。例如,一个文件处理服务可能会根据数据的 MIME 类型或者 URI 来处理文件。
  • 示例
<service android:name=".FileService"><intent - filter><action android:name="com.example.file.PROCESS_FILE"/><data android:mimeType="text/plain"/></intent - filter>
</service>
  • FileService可以响应PROCESS_FILE动作,并且处理的数据类型是纯文本(text/plain),可能用于读取、修改或其他文本文件相关的操作。

1.9.2.2. <meta - data>

  • 含义:用于为 Service 提供额外的自定义数据。这些数据可以在 Service 的代码中获取,用于配置 Service 的特殊行为或者传递一些信息。
  • 示例
<service android:name=".MyService"><meta - dataandroid:name="custom_key"android:value="custom_value"/>
</service>
  • 此 Service 有一个名为custom_key的元数据,其值为custom_value,在 Service 的onCreate()或其他合适的方法中,可以通过相应的 API 获取这些元数据来进行处理。

1.9.3. <receiver>

  • 含义:Broadcast Receiver 用于接收系统或应用发出的广播消息。例如,电池电量变化、网络连接变化等广播都可以被接收。
  • 示例
<applicationandroid:icon="@drawable/ic_launcher"android:label="@string/app_name"><receiver android:name=".MyReceiver"><intent - filter><action android:name="android.net.conn.CONNECTIVITY_CHANGE"/></intent - filter></receiver>
</application>
  • 这个MyReceiver广播接收器可以接收网络连接改变的广播消息,当网络状态发生变化时,应用可以根据这个广播来执行相应的操作。

属性

  1. android:name
    • 含义:用于指定 Broadcast Receiver 的类名。可以是完整的包名和类名(如com.example.myapp.MyReceiver),也可以是相对路径(如.MyReceiver,它会基于清单文件中的package属性来确定完整的类名)。这是在清单文件中标识 Broadcast Receiver 的关键属性。
    • 示例
<receiver android:name=".MyReceiver"><intent - filter><action android:name="android.net.conn.CONNECTIVITY_CHANGE"/></intent - filter>
</receiver>
  1. android:enabled
    • 含义:一个布尔值属性,用于确定 Broadcast Receiver 是否启用。如果设置为false,则该接收器无法接收广播,默认值为true。这可以用于在某些情况下(如根据用户配置或设备条件)禁用特定的 Broadcast Receiver。
    • 示例
<receiver android:name=".MyReceiver"android:enabled="false"><intent - filter><action android:name="android.net.conn.CONNECTIVITY_CHANGE"/></intent - filter>
</receiver>
  1. android:exported
    • 含义:一个布尔值属性,用于指定 Broadcast Receiver 是否可以接收来自其他应用的广播。如果设置为true,则可以接收外部应用发送的广播;如果设置为false(默认值),则只能接收本应用内部发送的广播。
    • 示例
<receiver android:name=".InternalReceiver"android:exported="false"><intent - filter><action android:name="com.example.myapp.INTERNAL_ACTION"/></intent - filter>
</receiver>
  1. android:icon
    • 含义:用于指定 Broadcast Receiver 的图标。这个图标可能在某些调试或管理工具中显示,用于标识 Broadcast Receiver。通常引用drawable资源,如@drawable/receiver_icon。不过,在实际应用中,Broadcast Receiver 图标使用场景相对较少。
    • 示例
<receiver android:name=".VisibleReceiver"android:icon="@drawable/receiver_icon"><intent - filter><action android:name="android.bluetooth.adapter.action.STATE_CHANGED"/></intent - filter>
</receiver>
  1. android:label
    • 含义:用于设置 Broadcast Receiver 的标签或名称。这个名称可能在调试工具、系统广播管理界面等地方显示,用于标识 Broadcast Receiver。一般引用string资源,如@string/receiver_label
    • 示例
<receiver android:name=".NamedReceiver"android:label="@string/receiver_label"><intent - filter><action android:name="android.intent.action.BATTERY_CHANGED"/></intent - filter>
</receiver>
  1. android:permission
    • 含义:用于指定发送广播到这个 Broadcast Receiver 所需的权限。如果其他组件(包括其他应用中的组件)想要向这个接收器发送广播,需要拥有这个指定的权限。
    • 示例
<receiver android:name=".ProtectedReceiver"android:permission="com.example.myapp.SEND_BROADCAST_TO_RECEIVER"><intent - filter><action android:name="com.example.myapp.PROTECTED_ACTION"/></intent - filter>
</receiver>

1.9.3.1. <intent - filter>

  • 含义:这是 Broadcast Receiver 中最重要的标签之一。它用于指定该接收器能够接收的广播意图类型。通过在intent - filter中定义动作(<action>)、类别(<category>)和数据(<data>)等元素,来匹配系统或应用发出的广播。
  • 示例
<receiver android:name=".MyReceiver"><intent - filter><action android:name="android.net.conn.CONNECTIVITY_CHANGE"/></intent - filter>
</receiver>
  • 在这个例子中,MyReceiver可以接收网络连接改变(android.net.conn.CONNECTIVITY_CHANGE)的广播。当网络状态发生变化时,系统会发送这个广播,MyReceiver就能够捕获并处理它。

1.9.3.2. <meta - data>

  • 含义:用于为 Broadcast Receiver 提供额外的自定义数据。这些数据可以在接收器的代码中获取,用于配置接收器的特殊行为或者传递一些信息。
  • 示例
<receiver android:name=".MyReceiver"><meta - dataandroid:name="custom_key"android:value="custom_value"/>
</receiver>
  • 这里MyReceiver有一个名为custom_key的元数据,其值为custom_value。在接收器的onReceive()方法或者其他合适的地方,可以通过相应的 API 获取这些元数据来进行处理,比如根据这个自定义数据来决定是否处理接收到的广播。

1.9.4. <provider>

  • 含义:Content Provider 用于在不同的应用之间共享数据。例如,一个应用可以通过 Content Provider 将自己的数据(如联系人、短信等)提供给其他应用访问。
  • 示例
<applicationandroid:icon="@drawable/ic_launcher"android:label="@string/app_name"><providerandroid:name=".MyContentProvider"android:authorities="com.example.myapplication.provider"></provider>
</application>
  • android:name指定了 Content Provider 的类名,android:authorities定义了一个唯一的标识,其他应用可以通过这个标识来访问该 Content Provider 提供的数据。

属性

  1. android:name
    • 含义:用于指定 Content Provider 的类名。可以是完整的包名和类名(如com.example.myapp.MyContentProvider),也可以是相对路径(如.MyContentProvider,它会基于清单文件中的package属性来确定完整的类名)。这是在清单文件中标识 Content Provider 的关键属性。
    • 示例
<providerandroid:name=".MyContentProvider"android:authorities="com.example.myapplication.provider"><!-- 其他标签 -->
</provider>
  1. android:authorities
    • 含义:定义一个唯一的标识,用于其他应用访问该 Content Provider 提供的数据。这个标识通常是一个字符串,格式类似于域名反转的形式,并且在整个系统中应该是唯一的。
    • 示例
<providerandroid:name=".MyContentProvider"android:authorities="com.example.myapplication.provider"><!-- 其他标签 -->
</provider>
  1. android:enabled
    • 含义:一个布尔值属性,用于确定 Content Provider 是否启用。如果设置为false,则 Content Provider 无法被访问,默认值为true。这可以用于在某些情况下(如根据用户配置或设备条件)禁用特定的 Content Provider。
    • 示例
<providerandroid:name=".MyContentProvider"android:authorities="com.example.myapplication.provider"android:enabled="false"><!-- 其他标签 -->
</provider>
  1. android:exported
    • 含义:一个布尔值属性,用于指定 Content Provider 是否可以被其他应用访问。如果设置为true,则可以被外部应用访问;如果设置为false(默认值),则只能在本应用内部访问。
    • 示例
<providerandroid:name=".MyContentProvider"android:authorities="com.example.myapplication.provider"android:exported="false"><!-- 其他标签 -->
</provider>
  1. android:grantUriPermissions
    • 含义:一个布尔值属性,用于指定是否允许临时授予对 Content Provider 中 URI 的访问权限。如果设置为true,可以通过ContentResolver的相关方法在运行时动态地授予其他应用对特定 URI 的访问权限。默认值为false
    • 示例
<providerandroid:name=".MyContentProvider"android:authorities="com.example.myapplication.provider"android:grantUriPermissions="true"><!-- 其他标签 -->
</provider>
  1. android:icon
    • 含义:用于指定 Content Provider 的图标。这个图标可能在某些调试或管理工具中显示,用于标识 Content Provider。通常引用drawable资源,如@drawable/provider_icon。不过,在实际应用中,Content Provider 图标使用场景相对较少。
    • 示例
<providerandroid:name=".MyContentProvider"android:authorities="com.example.myapplication.provider"android:icon="@drawable/provider_icon"><!-- 其他标签 -->
</provider>
  1. android:label
    • 含义:用于设置 Content Provider 的标签或名称。这个名称可能在调试工具、系统内容提供管理界面等地方显示,用于标识 Content Provider。一般引用string资源,如@string/provider_label
    • 示例
<providerandroid:name=".MyContentProvider"android:authorities="com.example.myapplication.provider"android:label="@string/provider_label"><!-- 其他标签 -->
</provider>
  1. android:multiprocess
    • 含义:一个布尔值属性,用于指定 Content Provider 是否在每个访问它的进程中都创建一个实例。如果设置为true,每个进程都会有自己的 Content Provider 实例;如果设置为false(默认值),Content Provider 在整个应用的进程中共享一个实例。
    • 示例
<providerandroid:name=".MyContentProvider"android:authorities="com.example.myapplication.provider"android:multiprocess="true"><!-- 其他标签 -->
</provider>
  1. android:permission
    • 含义:用于指定访问这个 Content Provider 所需的权限。如果其他组件(包括其他应用中的组件)想要访问这个 Content Provider,需要拥有这个指定的权限。
    • 示例
<providerandroid:name=".MyContentProvider"android:authorities="com.example.myapplication.provider"android:permission="com.example.myapp.ACCESS_PROVIDER"><!-- 其他标签 -->
</provider>
  1. android:process
    • 含义:用于指定 Content Provider 运行的进程。默认情况下,Content Provider 在应用的主进程中运行,但可以通过这个属性为 Content Provider 指定单独的进程,这样可以在一定程度上隔离 Content Provider 的运行环境,提高应用的稳定性和性能。
    • 示例
<providerandroid:name=".MyContentProvider"android:authorities="com.example.myapplication.provider"android:process=":provider_process"><!-- 其他标签 -->
</provider>

1.9.4.1. <grant - uri - permission>

  • 含义:用于控制对Content Provider所提供数据的URI级别的访问权限。它可以有不同的属性来指定权限的范围,例如可以是针对特定的路径、路径模式或者所有的子路径等。这有助于精细地控制其他应用对Content Provider数据的访问。
  • 示例
<providerandroid:name=".MyContentProvider"android:authorities="com.example.myapplication.provider"><grant - uri - permission android:path="/data/user"/>
</provider>
  • 在这个例子中,grant - uri - permission允许对/data/user路径下的数据进行访问授权,其他应用在被授权的情况下可以访问Content Provider中该路径下的数据。

1.9.4.2. <meta - data>

  • 含义:和其他组件(如Activity、Service等)中的meta - data类似,用于为Content Provider提供额外的自定义数据。这些数据可以在Content Provider的代码中获取,用于配置特殊行为或者传递一些信息。
  • 示例
<providerandroid:name=".MyContentProvider"android:authorities="com.example.myapplication.provider"><meta - dataandroid:name="custom_key"android:value="custom_value"/>
</provider>
  • 这里MyContentProvider有一个名为custom_key的元数据,其值为custom_value,在Content Provider的onCreate()或其他合适的方法中,可以通过相应的API获取这些元数据来进行处理。

1.9.4.3. <path - permission>

  • 含义:用于定义对Content Provider中特定路径的更详细的权限设置。可以指定读取、写入等权限,并且可以根据不同的路径或者路径模式来设置不同的权限规则,这对于保护Content Provider中的数据安全和隐私非常重要。
  • 示例
<providerandroid:name=".MyContentProvider"android:authorities="com.example.myapplication.provider"><path - permissionandroid:path="/private/data"android:readPermission="com.example.myapp.READ_PRIVATE_DATA"android:writePermission="com.example.myapp.WRITE_PRIVATE_DATA"/>
</provider>
  • 在这个例子中,对于/private/data路径下的数据,设置了读取权限为com.example.myapp.READ_PRIVATE_DATA,写入权限为com.example.myapp.WRITE_PRIVATE_DATA,这样可以精确地控制对Content Provider中敏感数据的访问。

1.9.5. <meta - data>

  • 含义:可以用来为应用组件(如Activity、Service等)提供额外的自定义数据。这些数据可以是字符串、整数等各种类型,用于配置组件的特殊行为或者传递一些信息。
  • 示例
<applicationandroid:icon="@drawable/ic_launcher"android:label="@string/app_name"><activity android:name=".MyActivity"><meta - dataandroid:name="custom_key"android:value="custom_value"/></activity>
</application>
  • 在这个例子中,MyActivity有一个名为custom_key的元数据,其值为custom_value,在代码中可以获取这些元数据来进行相应的处理。

1.9.6. <activity - alias>

  • 含义:用于为一个已有的Activity创建别名。可以通过别名来启动原始的Activity,并且可以为别名设置不同的intent - filter等属性,从而实现不同的启动方式或者功能。
  • 示例
<applicationandroid:icon="@drawable/ic_launcher"android:label="@string/app_name"><activity android:name=".OriginalActivity"></activity><activity - aliasandroid:name=".AliasActivity"android:targetActivity=".OriginalActivity"><intent - filter><action android:name="android.intent.action.ALIAS_ACTION"/><category android:name="android.intent.category.DEFAULT"/></intent - filter></activity - alias>
</application>
  • 这里AliasActivityOriginalActivity的别名,通过AliasActivityintent - filter定义,可以使用ALIAS_ACTION这个动作来启动OriginalActivity

1.9.7. <service - alias>

  • 含义:类似于activity - alias,是为已有服务创建别名的标签。
  • 示例
<applicationandroid:icon="@drawable/ic_launcher"android:label="@string/app_name"><service android:name=".OriginalService"></service><service - aliasandroid:name=".AliasService"android:targetService=".OriginalService"></service - alias>
</application>
  • 可以通过AliasService来引用OriginalService,并且在某些场景下可以为别名服务设置不同的属性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/464380.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

RV1126-SDK学习之OSD实现原理

RV1126-SDK学习之OSD实现原理 前言 本文简单记录一下我在学习RV1126的SDK当中OSD绘制的原理的过程。 在学习OSD的过程当中&#xff0c;可能需要补充的基础知识&#xff1a; OSD是什么&#xff1f; BMP图像文件格式大致组成&#xff1f; 图像调色&#xff08;Palette&#…

Vehicle OS软件平台解决方案

在智能汽车快速迭代的趋势之下&#xff0c;广义操作系统Vehicle OS应运而生&#xff0c;针对应用软件开发周期缩短和底层硬件迭代速度加快的背景&#xff0c;Vehicle OS将应用软件开发和底层硬件迭代解耦。它降低了迭代工作量并节约成本&#xff0c;用标准化的接口来助力软件定…

Chromium Mojo(IPC)进程通信演示 c++(1)

网上搜索关于mojo教程 多数都是理论 加上翻译谷歌mojo文档的&#xff0c;但是如何自定义两个进程使用mojo通信呢&#xff1f;看下面的完整例子介绍&#xff1a;&#xff08;本人也是参考谷歌代码例子改编而成&#xff09; 本文演示了client.exe和service.exe 通过mojo::Incomin…

sparkSQL面试题

一、查询所有数学课程成绩大于语文课程成绩的学生学号 数据 1,yuwen,43 1,shuxue,55 2,yuwen,77 2,shuxue,88 3,yuwen,98 3,shuxue,65 3,yingyu,88 基本步骤&#xff1a; 进行行转列比较语文与数学的成绩 SQL代码&#xff1a; with t1 as(SELECT id,sum(if(name yuwen,sc…

算法|牛客网华为机试21-30C++

牛客网华为机试 上篇&#xff1a;算法|牛客网华为机试10-20C 文章目录 HJ21 简单密码HJ22 汽水瓶HJ23 删除字符串中出现次数最少的字符HJ24 合唱队HJ25 数据分类处理HJ26 字符串排序HJ27 查找兄弟单词HJ28 素数伴侣HJ29 字符串加解密HJ30 字符串合并处理 HJ21 简单密码 题目描…

浅谈QT中Tab键的切换逻辑

浅谈QT中Tab键的切换逻辑 无意中发现在输入界面中按下Tab键时&#xff0c;没有按照预想的顺序切换焦点事件&#xff0c;如下图所示 这个现象还是很有趣&#xff0c;仔细观察了下&#xff0c;默认的切换顺序是按照控件拖入顺序&#xff0c;那么知道了这个问题想要解决起来就很简…

科研绘图系列:R语言组合连线图和箱线图(linechart+boxplot)

文章目录 介绍加载R包数据数据预处理画图1画图2系统信息介绍 连线图(Line Chart)是一种常用的数据可视化图表,它通过将一系列数据点用直线段连接起来来展示数据随时间或有序类别变化的趋势。以下是连线图可以表示的一些内容: 时间序列数据:展示数据随时间变化的趋势,例如…

PKG_CHECK_MODULES(FUSE,fuse)

运行 ./configure 命令报错如下&#xff1a; ./configure: line 13934: syntax error near unexpected token FUSE,fuse ./configure: line 13934: PKG_CHECK_MODULES(FUSE,fuse)解决方案&#xff1a; 命令窗口运行如下命令&#xff0c;安装 pkg-config&#xff1a; sudo …

react18中redux-promise搭配redux-thunk完美简化异步数据操作

用过redux-thunk的应该知道&#xff0c;操作相对繁琐一点&#xff0c;dispatch本只可以出发plain object。redux-thunk让dispatch可以返回一个函数。而redux-promise在此基础上大大简化了操作。 实现效果 关键逻辑代码 store/index.js import { createStore, applyMiddlewar…

Lucene分析器的详细使用(5)

文章目录 第5章 分析器5.1 分析器的组成5.1.1 字符过滤器1&#xff09;HTMLStripCharFilter2&#xff09;PatternReplaceCharFilter3&#xff09;MappingCharFilter4&#xff09;Luke使用字符过滤器 5.1.2 分词器1&#xff09;StandardTokenzier2&#xff09;keywordTokenizer3…

selinux和防火墙

SElinux 1、selinux代表的什么&#xff1f; SELinux是Security-Enhanced Linux的缩写&#xff0c;意思是安全强化的linux。 SELinux 主要由美国国家安全局&#xff08;NSA&#xff09;开发&#xff0c;当初开发的目的是为了避免资源的误用。 SELinux是对程序、文件等权限设置依…

CentOS 7 安装 ntp,自动校准系统时间

1、安装 ntp yum install ntp 安装好后&#xff0c;ntp 会自动注册成为服务&#xff0c;服务名称为 ntpd 2、查看当前 ntpd 服务的状态 systemctl status ntpd 3、启动 ntpd 服务、查看 ntpd 服务的状态 systemctl start ntpdsystemctl status ntpd 4、设置 ntpd 服务开机启…

Oracle OCP认证考试考点详解082系列11

题记&#xff1a; 本系列主要讲解Oracle OCP认证考试考点&#xff08;题目&#xff09;&#xff0c;适用于19C/21C,跟着学OCP考试必过。 51. 第51题&#xff1a; 题目 51.View the Exhibit and examine the description of the tables You execute this SQL statement Whi…

C#属性 Property

属性Property不是变量。 它们是由名为访问器方法来实现的一种方法。 实例属性表示的是实例的某个数据&#xff0c;通过这个数据反映实例当前的状态 静态属性表示的是类型的某个数据&#xff0c;通过这个数据反映类型当前的状态 意义&#xff1a; 防止恶意赋值(通过属性间接访问…

Spring框架的事务管理

目录 一、spring框架事务管理相关的类 1.PlatformTransactionManager接口 2.TransactionDefinition接口 二、spring框架声明式事务管理 1.配置文件的方式 &#xff08;1&#xff09;配置文件 &#xff08;2&#xff09;业务层 &#xff08;3&#xff09;持久层 &#…

angular实现list列表和翻页效果

说明&#xff1a;angular实现list列表和翻页效果 上一页 当前页面 下一页 效果图&#xff1a; step1: E:\projectgood\ajnine\untitled4\src\app\car\car.component.css .example-form-fields {display: flex;align-items: flex-start; }mat-list-item{background: antiquew…

PHP常量

PHP 中的常量是指一旦定义后将不能被改变的标识符。 常量可以用const和define&#xff08;&#xff09;来定义。 PHP常量的特性 不变性: 常量一旦定义&#xff0c;其值不能改变。全局作用域: 常量在定义后&#xff0c;可以在整个脚本的任何地方使用&#xff0c;无需使用 glo…

服务器作业(2)

架设一台NFS服务器&#xff0c;并按照以下要求配置 关闭防火墙 [rootlocalhost ~]# systemctl stop firewalld [rootlocalhost ~]# setenforce 0 配置文件设置&#xff1a; [rootlocalhost ~]# vim /etc/exports 1、开放/nfs/shared目录&#xff0c;供所有用户查询资料 共享…

云轴科技ZStack在CID大会上分享VF网卡热迁移技术

近日&#xff0c;2024中国云计算基础架构开发者大会&#xff08;以下简称CID大会&#xff09;在北京举行。此次大会集中展示了云计算基础架构技术领域最前沿的科创成果&#xff0c;汇聚众多的技术专家和行业先锋&#xff0c;共同探讨云计算基础设施的最新发展和未来趋势。云轴科…

【Linux】命令行参数 | 环境变量

&#x1fa90;&#x1fa90;&#x1fa90;欢迎来到程序员餐厅&#x1f4ab;&#x1f4ab;&#x1f4ab; 主厨&#xff1a;邪王真眼 主厨的主页&#xff1a;Chef‘s blog 所属专栏&#xff1a;青果大战linux 总有光环在陨落&#xff0c;总有新星在闪烁 前几天在搞硬件&…