android学习笔记(三)

1、AndroidManifest.xml的解读:

XML 复制代码
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools">
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <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.Myview"
        tools:targetApi="31">
        <activity
            android:name=".MainActivity"
            android:exported="true">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

Android应用的清单文件(Manifest文件),用于声明应用的各种组件和配置信息。
1. 清单文件的根元素是<manifest>,并声明了android和tools这两个命名空间。
2. 使用权限<uses-permission>声明了读取外部存储的权限android.permission.READ_EXTERNAL_STORAGE。
3. 在<application>元素中指定了应用的各种属性:
   - android:allowBackup="true" 表示应用允许通过Android Backup Service备份。
   - android:dataExtractionRules="@xml/data_extraction_rules" 指定了用于数据提取规则的XML文件。
   - android:fullBackupContent="@xml/backup_rules" 指定了用于完全备份的XML文件。
   - android:icon="@mipmap/ic_launcher" 指定了应用的图标。
   - android:label="@string/app_name" 指定了应用的名称。
   - android:roundIcon="@mipmap/ic_launcher_round" 指定了应用的圆形图标。
   - android:supportsRtl="true" 表示应用支持从右到左的布局方向。
   - android:theme="@style/Theme.Myview" 指定了应用的主题。
   - tools:targetApi="31" 表示使用的目标API级别为31。
4. <activity>元素声明了一个活动(Activity)组件:
   - android:name=".MainActivity" 指定了活动类的名称为MainActivity。
   - android:exported="true" 表示此活动可以被其他应用程序调用。
   - 在<intent-filter>中声明了该活动是应用的入口:
     - <action android:name="android.intent.action.MAIN" /> 表示该活动是应用的主要入口点。
     - <category android:name="android.intent.category.LAUNCHER" /> 表示该活动在启动时显示在启动器上,即应用图标点击后启动的界面。

清单文件中声明应用的基本属性、权限、图标、入口活动等信息,是Android应用开发中必不可少的配置文件。

2、 activity_main.xml的解读:

XML 复制代码
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">
    <ListView
        android:id="@+id/listView"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />
</RelativeLayout>

布局说明:使用`RelativeLayout`作为根布局,并包含一个`ListView`作为子元素。

1. `<?xml version="1.0" encoding="utf-8"?>`:XML文件的声明,指定了XML版本和编码。
2. `<RelativeLayout>`:根布局元素,用于指定子元素之间的相对位置关系。
   - `xmlns:android="http://schemas.android.com/apk/res/android"`:指定了Android的命名空间。
   - `xmlns:app="http://schemas.android.com/apk/res-auto"`:指定了自定义属性的命名空间。
   - `xmlns:tools="http://schemas.android.com/tools"`:指定了布局编辑器使用的命名空间。
   - `android:layout_width="match_parent"`:指定布局的宽度为与父布局相匹配。
   - `android:layout_height="match_parent"`:指定布局的高度为与父布局相匹配。
   - `tools:context=".MainActivity"`:用于在设计时为布局提供上下文信息。
3. `<ListView>`:`RelativeLayout`的子元素,表示一个列表视图组件。
   - `android:id="@+id/listView"`:指定该`ListView`的ID为"listView",用于在Java代码中查找该视图。
   - `android:layout_width="match_parent"`:指定`ListView`的宽度与父布局相匹配。
   - `android:layout_height="match_parent"`:指定`ListView`的高度与父布局相匹配。

布局文件用一个`RelativeLayout`作为根布局,其中嵌套了一个`ListView`作为列表视图组件,占据了整个父布局的空间。

3、colors.xml的解读:

XML 复制代码
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <color name="black">#FF000000</color>
    <color name="white">#FFFFFFFF</color>
</resources>

XML资源文件,用于定义颜色资源。
1. `<?xml version="1.0" encoding="utf-8"?>`:XML文件的声明,指定了XML版本和编码。
2. `<resources>`:根元素,用于包含其他资源项。
3. `<color>`:定义颜色资源的元素。
   - `name="black"`:指定颜色资源的名称为"black"。
   - `#FF000000`:颜色值,表示黑色。颜色值的格式是`#AARRGGBB`,其中`AA`代表透明度,`RR`代表红色分量,`GG`代表绿色分量,`BB`代表蓝色分量。
4. `<color>`:定义另一个颜色资源。
   - `name="white"`:指定颜色资源的名称为"white"。
   - `#FFFFFFFF`:颜色值,表示白色。

这个XML资源文件定义了两个颜色资源,分别是黑色和白色,可以在项目的其他地方引用这些颜色资源而不需要重复定义颜色值。

4、strings.xml的解读:

XML 复制代码
<resources>
    <string name="app_name">Myview</string>
</resources>

XML资源文件,用于定义字符串资源。
1. `<resources>`:根元素,用于包含其他资源项。
2. `<string>`:定义字符串资源的元素。
   - `name="app_name"`:指定字符串资源的名称为"app_name",用于标识该字符串资源。
   - `Myview`:具体的字符串值,表示应用程序的名称为"Myview"。

这个XML资源文件定义了一个字符串资源,即应用程序的名称为"Myview"。可以在应用程序的其他部分引用这个字符串资源,而不需要硬编码字符串值。

5、themes.xml(night)的解读:

XML 复制代码
<resources xmlns:tools="http://schemas.android.com/tools">
    <style name="Base.Theme.Myview" parent="Theme.Material3.DayNight.NoActionBar">
    </style>
</resources>

用于定义Android应用程序的主题样式。
<resources>标签是根元素,定义了所有资源的容器。
xmlns:tools="http://schemas.android.com/tools"是一个命名空间声明,用于引入工具的命名空间。

定义一个名为Base.Theme.Myview的主题样式,该样式继承自Theme.Material3.DayNight.NoActionBar主题。表示Base.Theme.Myview主题将继承Theme.Material3.DayNight.NoActionBar主题的一些特性和属性,同时还可以自定义一些额外的样式设置。
该代码并没有定义任何具体的样式属性,只是声明了一个新的主题样式。在实际开发中,需要在此基础上添加相关的样式属性和设置以实现所需的界面效果。

6、 themes.xml的解读:

XML 复制代码
<resources xmlns:tools="http://schemas.android.com/tools">
    <style name="Base.Theme.Myview" parent="Theme.Material3.DayNight.NoActionBar">
    </style>
</resources>

1. `<resources xmlns:tools="http://schemas.android.com/tools">`:根元素,指定了命名空间`tools`,用于引用相关工具。
2. `<style>`:定义样式资源的元素。
   - `name="Base.Theme.Myview"`:定义了一个名为"Base.Theme.Myview"的样式资源,但没有具体的样式属性或内容。
   - `parent="Theme.Material3.DayNight.NoActionBar"`:指定该样式资源的父样式为"Theme.Material3.DayNight.NoActionBar",表示该样式继承自该父样式。
3. `<style name="Theme.Myview" parent="Base.Theme.Myview" />`:定义了另一个样式资源,名为"Theme.Myview",且继承自"Base.Theme.Myview",但没有额外的样式属性或内容。
4. `</style>`:样式资源的结束标签。

这个XML资源文件定义了两个主题样式,一个是基础应用程序主题样式"Base.Theme.Myview",
另一个是"Theme.Myview",后者继承自前者,但没有为它们设置具体的样式属性。
相关推荐
后端码匠4 小时前
MySQL 8.0安装(压缩包方式)
android·mysql·adb
梓仁沐白5 小时前
Android清单文件
android
董可伦8 小时前
Dinky 安装部署并配置提交 Flink Yarn 任务
android·adb·flink
每次的天空8 小时前
Android学习总结之Glide自定义三级缓存(面试篇)
android·学习·glide
恋猫de小郭8 小时前
如何查看项目是否支持最新 Android 16K Page Size 一文汇总
android·开发语言·javascript·kotlin
flying robot10 小时前
小结:Android系统架构
android·系统架构
xiaogai_gai10 小时前
有效的聚水潭数据集成到MySQL案例
android·数据库·mysql
鹅鹅鹅呢11 小时前
mysql 登录报错:ERROR 1045(28000):Access denied for user ‘root‘@‘localhost‘ (using password Yes)
android·数据库·mysql
在人间负债^11 小时前
假装自己是个小白 ---- 重新认识MySQL
android·数据库·mysql
Unity官方开发者社区11 小时前
Android App View——团结引擎车机版实现安卓应用原生嵌入 3D 开发场景
android·3d·团结引擎1.5·团结引擎车机版