android学习笔记(三)

1、AndroidManifest.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 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 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的解读:

<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)的解读:

<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的解读:

<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",后者继承自前者,但没有为它们设置具体的样式属性。

上一篇:安卓手机APP开发__媒体开发部分__网络栈


下一篇:OpenHarmony实战开发-组件复用实践。