Android从入门到精通——学习笔记:Chapter01-Android项目结构

Android从入门到精通

Chapter 01

1.1 Android项目结构

1.1.1 manifests节点

manifests节点用于显示Android应用程序的配置文件。通常情况下,每个Android应用程序必须包含一个AndroidManifests.xml文件,位于manifests节点下。它是整个Android应用的全局描述文件。在该文件内,需要标明应用的名称、使用图标、Activity和Service等信息,否则程序不能正常启动。

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools">

    <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/AppTheme"
        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>
AndroidManifests.xml文件中的重要元素及说明
元素说明
manifests根节点,描述了package中所有的内容
xmlns:android包含命名空间的声明,其属性值http://schemas.android.com/apk/res/android,表示Android中的各种标准属性能在该xml文件中使用,它提供了大部分元素中的数据
package声明应用程序包
android:icon应用程序图标
android:label应用程序标签,即为应用程序指定名称
android:theme应用程序采用的主题,例如,Android Studio创建的项目默认采用@style/AppTheme
activity与用户交互的主要工具,它是用户打开一个应用程序的初始页面
intent-filter配置Intent过滤器
action组件支持的Intent Action
category组件支持的Intent Category,这里通常用来指定应用程序默认启动的Activity

注意:在Android程序中,每一个Activity都需要早AndroidManifests.xml文件中有一个对应的<activity>标记。

1.1.2 java节点

java节点用于显示包含了Android程序的所有包及源文件(.java)。

默认生成的MainActivity.java文件的关键代码如下:

package com.example.myapplication; //指定包
//导入AppCompatActivity类
import androidx.appcompat.app.AppCompatActivity;
import android.od.Bundle; //导入Bundle类

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
}

从上面的代码可以看出,Android Studio创建的MainActivity类默认继承自AppCompatActivity类(继承子AppCompatActivity类的Activity将带有ActionBar),并且在该类中,重写了Activity类中的onCreate()方法,在onCreate()方法中通过setContentView(R.layout.activity_main)方法设置当前的Activity要显示的布局文件。

说明:这里使用R.layout.activity_main类获取layout目录中的activity_main.xml布局文件,这是因为在Android程序中,每个资源都会在R.java文件中生成一个索引,而通过这个索引,开发人员可以很方便地调用Android程序中的资源文件。

注意:应用Android Studio创建的项目,R.java文件位于新创建应用的<应用名称>build\generated\source\r\debug<包路径>目录下。R.java是只读文件,开发人员不能对其进行修改,当res包中的资源发生变化时,该文件会自动修改。

1.1.3 res节点

该节点用来显示保存在res目录下的资源文件,当res目录中的文件发生变化时,R文件会自动修改。在res目录中还包括了一些子目录,下面对这些子目录进行详细说明。

1. drawable子目录

drawable子目录通常用来保存图片资源(如\PNG\JPEG\GIF图片、9-Patch图片或者Shape资源文件等)。

2. layout子目录

layout子目录主要用来存储Android程序中的布局文件,在创建Android程序时,会默认生成一个activity_main.xml布局文件

在Android Studio中打开的activity_main.xml布局文件的代码如下:

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout 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">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Hello World!"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

</androidx.constraintlayout.widget.ConstraintLayout>
activity_main.xml布局文件中的重要元素及说明
元素说明
ConstraintLayout布局管理器
xmlns:android包含命名空间的声明,其属性值http://schemas.android.com/apk/res/android,表示Android各种标准属性能在该xml文件中使用,它提供了大部分元素中的数据,该属性一定不能省略
xmlns:tools指定布局的默认工具
android:layout_width指定当前视图在屏幕中所占的宽度
android:layout_height指定当前视图在屏幕中所占的高度
TextView文本框组件,用来形式文本
android:text文本框显示的文本
3. mipmap子目录

mipmap子目录用于保存项目中应用的启动图标。为了保证良好的用户体验,需要为不通过的分辨率提供不同的图片,并且分别存放在不同的目录中。通常情况下,Android Studio会自动创建mipmap-xxxhdpi(超超超高清)、mipmap-xxhdpi(超超高)、mipmap-xhdpi(超高)、mipmap=hdpi(高)和mipmap=mdpi(中)等5个目录,分别用户存放超超超高分辨率图片、超超高分辨率图片、超高分辨率图片、高分辨率图片和中分辨率图片,并且会自动创建5中分辨率的启动图标文件(ic_launcher.png)以及mipmap-anydpi-v26目录中的两个自适应图标文件。

说明:由于从Android7.1.1开始系统中应用的图标为圆形图标,所以为了让其他版本的系统正常使用高版本开发的应用,mipmap子目录中将自动生成圆形和方形两种图标。

4. values子目录

values子目录通常用于保存应用中使用的字符串、样式和颜色资源。

在开发国际化程序时,这种方式尤为方便,strings.xml文件的代码如下:

<resources>
	<string name="app_name">第一个Android应用</string>
</resources>
  • 17
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值