Android项目文件目录分析

Android项目文件目录分析

八月 27, 2023

相信对第一次接触安卓开发的人来说,安卓应用的项目结构很令人疑惑。

刚巧,我也是,才下载了 Android Studio不久。看了不少的安卓教程,然后创建了一个示例项目准备摸索摸索。我去,怎么这么多代码,这么多文件,瞬间傻眼了。

不再傻眼,也为了更多和我一样的小白开发者不再傻眼,跟着我的视角,我们一起走进这个安卓App,看看它到底是个什么构造。

首先复制项目路径,打开文件管理器,进入我们的安卓项目文件夹。

来到这个页面后,我们看到前缀没有 . 的正常目录有 appgradle 两个文件夹。能走到这一步的同学,必然是创建了项目了,也就安装好了gradle了,所以不再赘述,我们进入app文件夹。

在此之前我已经编译过一次app,因此目录下有

  • build :存放着构建后的内容

  • libs : 存放着引用的外部库(因为没有使用里面试试空的)

  • src : 源代码文件夹。

    三个文件夹。

因此,我们进入 src 这个文件夹。

src 目录下,有三个文件夹:

  • androidText :存放着Instrumented测试代码。Instrumented测试与单元测试不同,它们可以运行在整个Android应用或框架上,并可以访问Android系统服务和API。
  • main:存放着主程序。
  • test:存放着单元测试代码。单元测试是软件开发中的一种实践,用于确保代码的各个单元按照预期工作。

很显然我们当务之急需要的是去了解main文件夹中的内容。


访问进去,有两个文件夹和一个AndroidManifest.xml文件。

AndroidManifest.xml:在Android程序中,所有的Activity都需要在AndroidManifest.xml中声明,才能够被用户通过INTENT找到。除了Activity以外,服务(Service)、广播接收者(BroadcastReceiver)、ContentProvider都需要在AndroidManifest.xml中声明。

关于这两个文件夹:java | res

  • java:存放着java代码。(我选择了java项目示例,我选择在深度学习过java开发安卓后再转koutlin)
  • res : 存放着各种资源文件。(稍后将一一的解释。)

下面我将列举一下示例项目中已存在的文件

java\com\example\magichome 在这个路径下有:data,ui,两个文件夹。

data文件夹中包含一个model文件夹,还有:

  1. LoginDataSource.java:该类用于处理用户登录和注销的操作。

  2. ``LoginRepository.java`:用于处理用户登录和注销的操作,并维护一个内存中的登录状态和用户凭证信息缓存。

  3. Result.java:用于封装处理结果,包括成功的结果和错误的结果。

总共三个文件。

model文件夹

  • LoggedInUser.java:一个数据类,主要用于存储已登录用户的用户信息。这个类是从LoginRepository中获取的。

ui文件夹中包含一个login文件夹,其中包含:

  1. LoggedInUserView.java:主要用于将已登录用户的详细信息暴露给用户界面(UI)。
  2. LoginActivity.java:实现一个登录活动的 Android 应用程序的一部分。该活动使用数据绑定和ViewModel 来管理用户输入和登录状态。
  3. LoginFormState.java:主要用于表示登录表单的数据验证状态。
  4. LoginResult.java:主要用于封装登录操作的结果。
  5. LoginViewModel.java
  6. LoginViewModelFactory.java:创建并返回一个特定的ViewModel。

总共六个文件。