Android项目中各文件的作用

一、Android项目结构:

Android项目中各文件的作用_第1张图片

二、各文件夹和文件的作用:

Android项目中各文件的作用_第2张图片

1. manifests文件夹: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"
    package="com.example.firstapplication">

    <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.FirstApplication"
        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应用程序中重要的清单文件
  • 为应用程序的启动和运行提供必要的基本信息。
  • 仅包含一个标签,代表整个app。
  • 包含多个标签,代表多个不同页面。
  • 描述了应用程序中的全局数据,包括了应用程序包名,组件(activities, services, 等等),它们各自的实现类,各种能被处理的数据和启动位置。
  • 关于文件中的标签:
    • android.intent.action.MAIN:决定应用的入口Activity,也就是我们启动应用时首先显示哪一个Activity。
    • android.intent.category.LAUNCHER:表示activity应该被列入系统的启动器(launcher)(允许用户启动它)。Launcher是安卓系统中的桌面启动器,是桌面UI的统称。
    • action和category都是Intent的组成部分,前者表示意图的动作,后者表示意图的类别。所以对于上面这段话,我的理解是:android.intent.action.MAIN表明了一个应用启动时首先启动这个Activity的动作。怎样启动呢?android.intent.category.LAUNCHER告诉了我们动作是什么。

2. R.Java文件:

  • 自动收录当前应用程序中所有的资源,并根据这些资源建立对应的ID,包括:布局资源、控件资源、String资源、Drawable资源等。
  • 我们可以简单的把R.java理解成是当前Android应用的资源文件的字典。
  • 文件自动生成,自动维护,程序开发人员不能对其进行修改。
  • 当用户向drawable-hdpi、drawable-ldpi、drawable-mdpi文件夹中增加图片,或者在main.xml文件中配置控件以及在strings.xml文件中定义文本信息都会自动在此文件中生成一个唯一的ID,以供程序使用。
  • project视图下打开改程序可查看R.java文件在硬盘中存储的位置:app/build/generated/not_namespaced_r_class_sources/debug/r/[packagename]/R.java。

3. res:资源文件夹:

  • 资源文件夹,包括图片、声音、布局文件、菜单等。项目中应到的资源都包含在此文件夹中,可以看到子文件夹比较多。
  • 应用程序运行的时候,res中的内容会在启动的时候载入内存。
  • res 文件夹中放置的所有的资源文件都会在R.java中生成相应的id
    • res/drawable: 主要存放一些用户自定义的形状和背景选择器(用于改变一些控件的背景颜色)。这些资源文件都是xml类型。
    • res/layout: 界面布局文件,文件类型为xml。可以控制各个Activity中控件的位置及相关的属性。在Android的应用程序中有两种方式生成用户界面。一种是通过静态的界面描述文件,另外一种就是通过Java文件
    • res/mipmap: 包含一些应用程序可以用的原生图片文件(png,gif,jpg)。Google强烈建议使用mipmap存放图片文件,可以提高系统渲染图片的速度,减轻CPU的压力。
    • res/values: 放置应用程序中需要用到的,如:我们常用的字符串,颜色值,数组等。Strings.xml里存储的都是键值对,这些键值对会在R.java中生成相应的id。这样,我们需要使用这些资源时,就可以使用相应的id来引用这些资源。好处: 把所有的资源提供了统一的入口,修改程序会变得更加方便。 该目录中包含了所有的XML格式的参数描述文件,如string.xml字符串描述文件、color.xml颜色描述文件、style.xml样式描述文件和array.xml数组描述文件等。

4. java文件夹: 项目的源文件

  • Android应用程序主要由资源文件和代码文件两部分构成。资源文件以xml格式描述,代码文件主要为java文件,用于实现业务逻辑
  • Java目录:项目的源代码文件,所有用户自己添加的或者允许用户修改完成一定业务逻辑的java文件全部存放于该目录下。该目录下的java文件以用户所声明的包自动组织。
  • res 文件夹中放置的所有的资源文件都会在R.java中生成相应的id。
  • 在Android的应用程序中有两种方式生成用户界面。一种是通过静态的界面描述文件,另外一种就是通过Java文件

5. MainActivity.java

  • 为了在Android系统上显示图形界面,需要使用代码继承Activity类
public class MainActivity extends Activity {
	protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);//声明了需要显示的用户界面
    }
}
  • 关于R.layout.activity_main的说明:res 文件夹中放置的所有的资源文件都会在R.java中生成相应的id静态常量,表示R.java文件中layout内部类的activity_main静态常量,即使用了res/layout文件夹内的activity_main.xml文件。
  • onCreate()方法会在Activity首次启动时会被调用。
  • savedInstanceState参数是保存当前Activity的状态信息,如果一个非running的Activity因为资源紧张而被系统销毁,当再次启动这个Activity时,可以通过这个保存下来的状态实例,即通过saveInstanceState获取之前的信息,然后使用这些信息,让用户感觉和之前的界面一模一样,提升用户体验。
  • public void setContentView (int layoutResID)

你可能感兴趣的:(Android开发,android,java,开发语言)