Android学习小记2

目录

[Android Manifest文件分析](#Android Manifest文件分析)

[1. XML声明](#1. XML声明)

[2. 元素](#2. 元素)

[3. 元素](#3. 元素)

[4. 元素](#4. 元素)

[5. 元素](#5. 元素)

[6. 关闭标签](#6. 关闭标签)

[7. 结束标签](#7. 结束标签)

res文件夹再探

drawable

mipmap

value

color.xml

strings.xml

style.xml

xml文件

backup_rules.xml

data_extraction_rules.xml


Android Manifest文件分析

笔者打算进一步详细的分析一下这个Manifest文件,请看下文:

AndroidManifest.xml文件,包含了应用的基本配置信息和声明。下面是逐行的详细分析:

XML 的格式就是要求一个属性的内容要被包含在一堆标签内部

1. XML声明
复制代码
<?xml version="1.0" encoding="utf-8"?>

这是XML声明,表示该文件使用UTF-8编码格式,符合XML 1.0规范。

2. <manifest>元素
复制代码
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
          xmlns:tools="http://schemas.android.com/tools">
  • xmlns:android 定义了Android命名空间的URI,用于在文件中引用Android的属性。

  • xmlns:tools 定义了tools命名空间的URI,常用于开发工具属性(如tools:targetApi)来影响构建工具和IDE行为,但不会影响应用的运行时行为。

3. <application>元素
复制代码
<application
    android:allowBackup="true"
    android:dataExtractionRules="@xml/data_extraction_rules"
    android:fullBackupContent="@xml/backup_rules"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:roundIcon="@mipmap/ic_launcher_round"
    android:supportsRtl="true"
    android:theme="@style/Theme.DemoOfMyFirstApplication"
    tools:targetApi="31">

下面的内容就分别对应了res文件夹下的内容了。

  • android:allowBackup="true": 允许应用备份数据。这意味着用户卸载并重新安装应用时,可以恢复数据。

  • android:dataExtractionRules="@xml/data_extraction_rules": 指定一个XML文件,定义数据提取规则,通常与备份和恢复数据相关。

  • android:fullBackupContent="@xml/backup_rules": 指定一个XML文件,定义全量备份的内容。

  • android:icon="@mipmap/ic_launcher": 定义应用的图标,引用了一个位于mipmap目录下的资源。

  • android:label="@string/app_name": 应用的名称,引用了一个字符串资源。

  • android:roundIcon="@mipmap/ic_launcher_round": 为支持圆形图标的设备指定圆形图标资源。

  • android:supportsRtl="true": 表示应用支持从右到左(RTL)的语言方向,通常用于阿拉伯语或希伯来语。

  • android:theme="@style/Theme.DemoOfMyFirstApplication": 定义应用的主题,引用了一个主题资源。

  • tools:targetApi="31": 指定开发工具应针对Android 12(API 31)进行构建。这个属性只会影响开发工具和编译器,运行时不会起作用。

4. <activity>元素
复制代码
<activity
    android:name=".MainActivity"
    android:exported="true"
    android:label="@string/app_name"
    android:theme="@style/Theme.DemoOfMyFirstApplication">
  • android:name=".MainActivity": 指定启动的活动(Activity)的名称,这里是MainActivity类。"."表示该活动是当前应用的直接子类。

  • android:exported="true": 表示此活动可以被外部应用启动。在Android 12及以后版本中,所有具有intent-filter的Activity必须声明android:exported属性,确保应用明确指示哪些活动是可以被外部访问的。

  • android:label="@string/app_name": 应用的标签,通常用于显示在UI中。它引用了字符串资源app_name

  • android:theme="@style/Theme.DemoOfMyFirstApplication": 为该Activity指定了应用的主题。

5. <intent-filter>元素
复制代码
<intent-filter>
    <action android:name="android.intent.action.MAIN" />
    <category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
  • <action android:name="android.intent.action.MAIN" />: 表示这是应用的主入口点,即启动Activity。

  • <category android:name="android.intent.category.LAUNCHER" />: 指定这个Activity作为应用启动时的启动项。它告诉系统这是主界面(即启动器)。

6. 关闭标签
复制代码
</activity>
</application>

这些标签分别关闭了<activity><application>元素。

7. 结束标签
复制代码
</manifest>

最后,关闭了<manifest>元素,表示XML文档结束。

res文件夹再探

我们之前就是简单的看了眼res底下有什么,下面我们仔细瞧瞧我们的res文件夹。

drawable

可画的!其实就是放置一些常见的绘画资源。drawable 文件夹用于存储所有与绘制和显示相关的图像资源。这些资源通常用于各种UI元素,比如按钮、背景图、图标等。图像文件可以是位图(如 .png.jpg)或矢量图形(如 .xml 形式的矢量文件)。此外,drawable 文件夹还可以存放不同密度版本的图像(如hdpi、mdpi等),以适应不同屏幕分辨率的设备。

mipmap

mipmap 文件夹用于存储应用的启动图标(Launcher icon),这是Android应用的标志性图像,用于显示在设备的主屏幕和应用抽屉中。与drawable不同,mipmap中的图标文件有特定的用途和要求,尤其是在支持高分辨率屏幕和不同设备的情况下。

value

这个文件夹存储的就是我们的常量,res/values 文件夹用于存储许多 Android 项目中使用的资源的值,包括颜色、样式、尺寸等特性。我们新建的项目下面有三个重要的xml文件。

color.xml
复制代码
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <color name="purple_200">#FFBB86FC</color>
    <color name="purple_500">#FF6200EE</color>
    <color name="purple_700">#FF3700B3</color>
    <color name="teal_200">#FF03DAC5</color>
    <color name="teal_700">#FF018786</color>
    <color name="black">#FF000000</color>
    <color name="white">#FFFFFFFF</color>
</resources>

这个封装了我们对颜色的抽象,毕竟没有人喜欢咔咔写一串颜色代码来指定颜色,对于特殊的颜色我们选择封装一个字符串来进行使用。我们稍后就可以在布局文件夹中写上:

复制代码
android:background="@color/purple_500"
strings.xml

strings.xml 是最重要的、使用最广泛的值文件之一,因为它适用于 Android 项目。strings.xml 的基本功能是在一个文件中定义字符串,以便于在 Android 项目的不同位置使用相同的字符串,而且它使项目看起来不那么混乱。我们也可以在此文件中定义一个数组。

复制代码
<resources>
    <string name="app_name">DemoOfMyFirstApplication</string>
</resources>
style.xml
复制代码
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="Theme.DemoOfMyFirstApplication" parent="android:Theme.Material.Light.NoActionBar" />
</resources>

样式资源用于定义UI元素的外观和行为,比如颜色、字体、布局等。该样式名为Theme.DemoOfMyFirstApplication,它继承自Android内置的android:Theme.Material.Light.NoActionBar样式。

  • name="Theme.DemoOfMyFirstApplication":这是定义的样式的名称。这个名称可以在应用的其他地方引用,比如在AndroidManifest.xml文件中设置应用的主题。

  • parent="android:Theme.Material.Light.NoActionBar":这个属性指定了该样式的父样式为android:Theme.Material.Light.NoActionBarandroid:Theme.Material.Light.NoActionBar是Android系统自带的一个主题,它使用了Material Design样式和浅色调(Light),并且没有ActionBar(即没有顶部的应用栏)。

xml文件

backup_rules.xml

backup_rules.xml 是一个用于配置 Android 应用数据备份规则的 XML 文件。它告诉 Android 系统哪些文件或目录需要被备份,哪些文件或目录应该被排除在备份之外。

在 Android 中,备份和恢复功能由系统通过 Auto BackupBackupManager 提供支持,开发者可以通过自定义规则来指定哪些数据应该被备份,哪些数据应该被排除。

通过自动备份功能备份用户数据 | Identity | Android Developers

在使用 backup_rules.xml 时,通常会将文件存放在 res/xml/ 目录下,然后通过 BackupManager 来应用这些规则。

data_extraction_rules.xml

data_extraction_rules.xml 是一个用于定义数据提取规则的配置文件,通常在应用需要提取数据时使用。例如,它可能会用于备份数据、数据恢复、或者将特定数据发送到云端等操作。

相关推荐
黑客-秋凌5 分钟前
[CTF/网络安全] 攻防世界 simple_php 解题详析
android·web安全·php
智者知已应修善业7 分钟前
【74HC192减法24/20/72进制】2022-5-17
驱动开发·经验分享·笔记·硬件工程
小可的科研日常14 分钟前
快速增加ppt撤回次数的方法
学习
Jackilina_Stone1 小时前
【HUAWEI】HCIP-AI-MindSpore Developer V1.0 | 第一章 神经网络基础(4 生成对抗网络 ) | 学习笔记
人工智能·笔记·神经网络·生成对抗网络·华为·hcip
Jackilina_Stone1 小时前
【HUAWEI】HCIP-AI-MindSpore Developer V1.0 | 第一章 神经网络基础( 3 循环神经网络 ) | 学习笔记
人工智能·笔记·rnn·神经网络·hcip·huawei
长安不及十里1 小时前
操作日志设计(一) Binlog 方案(Canal+Mq)
分布式·后端·学习·云原生
秦明月131 小时前
【原创学习笔记】实际调试遇到的问题01
笔记·学习
bst@微胖子1 小时前
Python实现接口签名调用
android·java·python
我自飞扬临天下2 小时前
Elasticsearch操作笔记版
java·笔记·elasticsearch
Jackilina_Stone2 小时前
【HUAWEI】HCIP-AI-MindSpore Developer V1.0 | 第一章 神经网络基础( 2 卷积神经网络 ) | 学习笔记
人工智能·笔记·深度学习·神经网络·cnn