Android开发自学笔记(二):工程文件剖析

Android开发自学笔记(二):工程文件剖析

本篇文章主要介绍 Android 工程的文件结构和主要文件作用,加深对 Android 工程的理解。

工程文件结构

Android 工程一般都有以下文件/文件夹:

.
├── libs
├── src
│   ├── androidTest
│   ├── main
│   └── test
├── build.gradle
├── gradle
├── gradle.properties
├── gradlew
├── gradlew.bat
└── settings.gradle

主要文件/文件夹介绍如下:

  • libs 文件夹:存放本地依赖库
  • src 文件夹:存放主要代码文件和测试文件,包含了三个子文件夹
  • main 文件夹:放置应用的主要代码文件
  • test 文件夹:存放单元测试的代码
  • androidTest 文件夹:存放 UI 测试的代码
  • build.gradle:整个项目的构建脚本
  • gradle 文件夹:Gradle 相关的文件
  • gradle.properties:Gradle 配置文件,用于指定项目的一些属性值
  • gradlewgradlew.bat:Gradle Wrapper 脚本
  • settings.gradle:Gradle 项目配置

主要文件详细说明

build.gradle

build.gradle 文件是整个项目的构建脚本。它使用 Gradle DSL 语言编写,用于指定应用的版本、编译选项、依赖库的引入等。其中,build.gradle 文件的语法包含了三个部分:buildscript、plugins 和 android。

// build.gradle
buildscript {
    // ...
}
plugins {
    // ...
}
android {
    // ...
}

buildscript 中,我们可以指定 Gradle 的配置信息,如指定 Gradle 插件和第三方库等。

plugins 中,我们可以指定 Gradle 插件。

android 中,我们可以指定 Android 构建选项,如应用包名、版本号、签名信息等,也可以指定应用依赖的其他第三方库。

src

src 文件夹一般是整个项目最重要的文件夹,其中包含了 Android 工程的源代码。src 文件夹包含了三个子目录: main、test、androidTest。其中:

  • main:处理底层应用逻辑,包含一个应用的全部代码和资源文件,如 Java、Kotlin、资源文件、配置文件等。
  • test:用于编写 Unit Tests,处理应用逻辑的测试代码。
  • androidTest:用于编写 UI Tests,处理 Activity、Fragment、Intent、View 等 UI 相关的测试代码。

gradle.properties

gradle.properties 文件存放有各种 Gradle 相关的属性配置。每一个属性都有一个特殊的键值来引用它。在 Android 项目中,可以通过 gradle.properties 文件配置一些全局常量和默认值。

例如:

# install.gradle
android.enableJetifier=true
android.useAndroidX=true

gradle/wrapper

gradle/wrapper/ 文件夹中主要存放了 Gradle 的 Wrapper 脚本,即 gradlew 和 gradlew.bat,用于指定项目使用的 Gradle 版本。当你下载一个新项目命令行执行 compile 或 package 命令时,gradle wrapper 会自动下载指定版本的 Gradle 程序并执行。这样就解决了不同项目使用不同版本 Gradle 的问题。

例如:

// gradle/wrapper/gradle-wrapper.properties
# Gradle设置
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-4.4-all.zip

示例说明

示例一

假设我们的应用中需要使用 Glide 库实现图片的异步加载。在 build.gradle 文件中添加以下代码来引入 Glide 库:

dependencies {
    implementation 'com.github.bumptech.glide:glide:4.9.0'
}

Glide 库就会被添加到我们的应用工程中,可以直接使用。注意,这里的 implementation 是 Gradle 新版本中的写法,如果你的 Gradle 版本过低则需要使用 compile。

示例二

假设我们在应用中需要修改默认的资源文件。我们可以在 src/main/res 目录下找到和 strings.xml 同名的 strings.xml 文件,打开它并修改其中的内容,如下所示:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="app_name">My Application</string>
</resources>

修改其中的 "My Application" 为我们希望修改的内容即可。

结论

本文(Android开发自学笔记(二):工程文件剖析)介绍了 Android 工程的文件结构以及主要文件的作用。通过学习本文,您应该可以更好地理解 Android 工程的构建流程和文件结构,帮助您更好地进行 Android 开发。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Android开发自学笔记(二):工程文件剖析 - Python技术站

(0)
上一篇 2023年5月31日
下一篇 2023年5月31日

相关文章

  • 浏览繁体中文网站出现乱码的处理方法

    浏览繁体中文网站出现乱码的处理方法 如果你在浏览繁体中文网站时遇到了乱码问题,下面提供几种解决方法: 1. 修改浏览器编码方式 一般来说,如果浏览器的编码方式和繁体中文网站所使用的编码方式不一致,就会出现乱码问题。这时可以手动修改浏览器的编码方式。 步骤 打开繁体中文网站。 在浏览器的菜单栏中选择“查看”或“工具”。 选择“编码”。 在下拉列表中选择“繁體中…

    html 2023年5月31日
    00
  • Java中使用DOM4J生成xml文件并解析xml文件的操作

    一、DOM4J介绍 DOM4J是基于Java平台下的一个XML解析器,它是对JDOM的一个孪生兄弟类型。在解析XML数据时,它可以读取整个XML文档并把它保存在内存中的树结构中。也可以通过许多方法从树中获取数据。通过DOM4J,可以在Java中操作XML文档的所有方法和计算机操作的格式文件而不必关心其结构或内容。 二、使用DOM4J生成XML文件 (1)建立…

    html 2023年5月30日
    00
  • 电脑键盘乱码怎么办 电脑键盘乱码原因及解决方法

    电脑键盘乱码怎么办? 如果你的电脑键盘出现了乱码,可能会导致无法正常输入文字,极大地影响了工作和生活。但是,不要慌张,下面我们会详细讲解电脑键盘乱码的原因和解决方法,帮助你快速解决这个问题。 电脑键盘乱码原因 操作系统设置问题:可能是因为操作系统设置不正确导致的键盘乱码问题。 输入法问题:使用了不同的输入法,可能导致输入的字符和界面上显示的字符不一致。 软件…

    html 2023年5月31日
    00
  • 带公式的数据怎么复制?复制excel中设置了公式的单元格数据的方法

    以下是关于复制带公式的数据的攻略: 带公式的数据怎么复制? 复制公式:如果您想要复制带有公式的单元格数据,可以直接复制公式。在Excel中,公式通常以等号(=)开头。选中包含公式的单元格,然后按“Ctrl + C”复制公式。 复制值:如果您想要复制公式计算后的值,可以复制单元格的值。在Excel中,您可以使用“复制”和“粘贴”命令来复制单元格的值。选中包含公…

    html 2023年5月17日
    00
  • C#读取XML中元素和属性值的实现代码

    以下是详细讲解“C#读取XML中元素和属性值的实现代码”的完整攻略: 1. 前置知识 在学习如何读取XML中元素和属性值之前,需要先了解以下几个概念: XML:可扩展标记语言(eXtensible Markup Language),是一种用于存储和传输结构化数据的标记语言。 XML元素:XML文件中的基本组成单位,由起始标记、结束标记和中间的内容组成。 XM…

    html 2023年5月31日
    00
  • javascript学习之json入门

    JavaScript学习之JSON入门 什么是JSON? JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它是基于 JavaScript 的一个子集,易于人们阅读和编写。JSON以键值对的方式存储数据,类似与JavaScript中的对象。在前后端数据交互中,JSON被广泛使用。 JSON的基本语法 1. JSON…

    html 2023年5月30日
    00
  • 解析StreamReader与文件乱码问题的解决方法

    当使用StreamReader来读取文本文件时,如果文件的编码格式和StreamReader所使用的编码格式不一致,就会导致文件乱码的问题。下面是针对这个问题的解决方法的攻略: 步骤1:明确文件编码 在使用StreamReader读取文件之前,需要明确待读取文件的编码方式。可以使用文件的特定字符集来确定文件编码并按照该编码打开文件。例如,编码为UTF-8的文…

    html 2023年5月31日
    00
  • AJAX解析XML实例之下拉框省、市二级联动

    AJAX解析XML实例之下拉框省、市二级联动的解释完整攻略如下: 简介 在 Web 应用中,为了得到更好的用户体验,我们常常需要将数据在不刷新页面的前提下异步传输,这种技术就被称为AJAX。 AJAX解析XML实现方式 在前端中,要使用AJAX技术,首先需要了解如何发送一个AJAX请求。以下是一些发送AJAX请求的示例: 通过XMLHttpRequest对象…

    html 2023年5月30日
    00
合作推广
合作推广
分享本页
返回顶部