Android项目目录结构简单介绍

Android项目目录结构简单介绍

这里选用java创建的项目

在Android开发中,一个项目可以包含好一个或数个module,一个module对应着一个安卓程序。

Android模式下

点击方框处,选择Android:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aYbg6eEi-1624957532181)(C:\Users\15998\AppData\Roaming\Typora\typora-user-images\image-20210628221726128.png)]

可以看到主要有app文件夹和Gradle Script,其中app就是我们目前正在开发的module,Gradle Script与我们编写的源代码关系不大,尚不需要过多了解。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eCLHY97l-1624957532182)(C:\Users\15998\AppData\Roaming\Typora\typora-user-images\image-20210629105054669.png)]

  1. manifests

    该目录主要存放安卓项目的全局描述文件

  2. java

    该目录下主要包含我们编写的源码文件,java类文件都是放在此节点中

  3. res

    用于存放资源文件,比如布局文件、图片等。

    drawable目录下主要放置位图文件(png、gif等)、9 Patch图片文件和Shape Drawable等xml资源文件。

    layout目录下用于存储程序的布局文件。

    mipmap目录用于存放项目中应用的启动图标,实际它由多个子目录构成:mipmap-mdpi、mipmap-hdpi、mipmap-xhdpi、mipmap-xxhdpi、mipmap-xxxhdpi(越往后存放的图片分辨率越大)

    注意:需要适应屏幕分辨率的图片推荐防砸imipmap目录中,可以提高显示性能、占用内存更少

    value目录主要保存字符串资源、样式资源、尺寸资源、颜色资源

该项目模式下的项目架构显示较为直观,但是却不够全面。

Project模式下

切换到Project模式下看项目目录:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Y1jcjwiP-1624957532183)(C:\Users\15998\AppData\Roaming\Typora\typora-user-images\image-20210629105015205.png)]

  1. .gradle和**.idea**

    这两个目录下放置的都是Android Studio自动生成的一些文件,我们无须关心,也不要去手动编辑。

  2. app

    项目中的代码、资源等内容都是放置在这个目录下的,后面的开发工作也基本是在这个目录下进行的。

  3. build

    目前该项目尚未编译,所以未含有build目录。这个目录主要包含了一些在编译时自动生成的文件,不需要过多关心。

  4. gradle

    这个目录下包含了gradle wrapper的配置文件,使用gradle wrapper的方式不需要提前将gradle下载好,而是会自动根据本地的缓存情况决定是否需要联网下载gradle。Android Studio默认就是启用gradle wrapper方式的,如果需要更改成离线模式,可以点击Android Studio导航栏→File→Settings→Build, Execution, Deployment→Gradle,进行配置更改。

  5. .gitignore

    这个文件是用来将指定的目录或文件排除在版本控制之外的。

  6. build.gradle

    这是项目全局的gradle构建脚本,通常这个文件中的内容是不需要修改的。

  7. gradle.properties

    这个文件是全局的gradle配置文件,在这里配置的属性将会影响到项目中所有的gradle编译脚本。

  8. gradlewgradlew.bat

    这两个文件是用来在命令行界面中执行gradle命令的,其中gradlew是在Linux或Mac系统中使用的,gradlew.bat是在Windows系统中使用的。

  9. HelloWorld.iml

    iml文件是所有IntelliJ IDEA项目都会自动生成的一个文件(Android Studio是基于IntelliJ IDEA开发的),用于标识这是一个IntelliJ IDEA项目,我们不需要修改这个文件中的任何内容。

  10. local.properties

    这个文件用于指定本机中的Android SDK路径,通常内容是自动生成的,我们并不需要修改。除非你本机中的Android SDK位置发生了变化,那么就将这个文件中的路径改成新的位置即可。

  11. settings.gradle

    这个文件用于指定项目中所有引入的模块。由于HelloWorld项目中只有一个app模块,因此该文件中也就只引入了app这一个模块。通常情况下,模块的引入是自动完成的,需要我们手动修改这个文件的场景可能比较少。

一些文件内容的解释

AndroidManifest.xml

现在我们打开AndroidManifest.xml文件:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-i1JMcv1M-1624957532184)(C:\Users\15998\AppData\Roaming\Typora\typora-user-images\image-20210629110022041.png)]

可以看到如下配置:

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

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

最上面的三行代码为默认生成,我们主要了解的是application内的内容。

application标签主要用于配置整个应用的一些属性,比如配置应用的图标、应用的标签等等。另外application标签还应当包括activity标签,我们默认创建了一个activity,名称叫做**.MainActivity**。

在这个activity标签中我们可以看到还有四行代码,这四行代码的作用就是将当前的**.MainActivity**配置成应用程序的入口。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lK5wgqOb-1624957532185)(C:\Users\15998\AppData\Roaming\Typora\typora-user-images\image-20210629110124399.png)]

MainActivity

我们继续看下一个目录:java目录。java目录下主要用于显示安卓应用当中所有的包以及java源文件。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6amFgVH7-1624957532185)(C:\Users\15998\AppData\Roaming\Typora\typora-user-images\image-20210629110240743.png)]

点击第一个包,我们可以看到MainActivity类,这个就是默认生成的activity。

public class MainActivity extends AppCompatActivity {

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

我们仔细看上面的代码:可以看到定义了一个继承了AppCompatActivity的MainActivity类。

在安卓当中,一个Activity就相当于一个java类

继续往里看,类里面重写了一个onCreate方法。

在项目开发中,针对Activity的代码,多数是写在onCreate里

继续往里看,setContentView方法指定了当前Activity要显示的布局文件,可以看到当前的参数为R.layout.activity_mainR表示安卓项目生成的R文件,其内含有项目内资源的索引,我们可以通过该索引来引用资源。该参数表示引用R文件下的layout资源的activity_main索引。

注意,索引名称应当和资源文件的名称一致

如果R文件爆红,那么在编译器build目录下选择Clean Project即可。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NM7xiXM1-1624957532186)(C:\Users\15998\AppData\Roaming\Typora\typora-user-images\image-20210629111802158.png)]

activity_main.xml

点开res下面的layout目录,就可以看到该布局文件:

<?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_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

</androidx.constraintlayout.widget.ConstraintLayout>

TextView标签定义了我们看到的文本框,内部定义了文本框的一些基本属性。

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值