app目录说明与HelloWord程序详解
app目录说明
首先看一下图
1.build
包含了编译时自动生成的文件,在项目第一次启动之后生成。
2. libs
里面存放项目的第三方jar包,放在这个目录下的jar包会被自动添加到项目的构建路径里。
3. androidTest
用来编写AndroidTest测试用例的,可以对项目进行一些自动化测试。
4. java
这里存放我们所有的java代码,Kotlin也存放在这里,项目创建时候系统会自动帮我们生成一个MainActivity。
5. res
项目中所有用到的资源,图片,布局,字符串等资源都要存放在这里。图片在存放在drawable中,布局放在layout目录下,字符串存放在values下。等等
6. AndroidMain.xml
Android项目的配置文件,四大组件都需要在这个文件里注册,另外还可以在这个文件中给出应用程序添加权限声明。
7. test
此处用来Unit Test测试用例的,对项目自动化测试的另一种方式
8. .gitignore
这个文件用于将app模块内指定的目录或文件排除在版本控制之外,和外层的类似
9. app.iml
Intellij IDEA项目自动生成的文件,无需关心
10. build.gradle
app模块的gradle构建脚本,这个文件中会指定很多项目构建相关的配置。
11. proguard-rules.pro
这个文件用于指定项目代码的混淆规则。
HelloWorld分析
我们查看AndroidManifest.xml可以看到
MainActivity属于Activity,是四大组件中其中之一。说道这里我们回看一下MainActivity,ctrl+鼠标左键点击.MainActivity直接跳到MianActivity中,Activity中继承了AppComptActivity(是AndroidX提供的一种向下兼容的Activity),AppComptActivity是Activity的子类,onCreate是Activity中必须被实现的方法。
寻找HelloWorld,Android,在onCreate()方法的第二行中调用了setContentView()方法,给activity中引入了activity_main布局,
我们找到layout下文件activity_mian.xml查看
项目中的资源讲解
上面提到过项目中的资源主要放在res下,我们先看一下res的目录展示
drawable开头的目录都是用来放图片的
mipmap开头的都是存放应用图标的
values开头的目录都是用来放字符串的,样式,颜色等配置的。
layout开头的目录都是用来放布局的。
看到目录中有多个mipmap开头的目录,主要是为了让程序能够更好的兼容各种设备。一般在写程序的时候,会给出同一张图片的不同的分辨率,放在这些目录下面,程序加载的时候,会根据当前设备的分辨率选择加载对应目录下的图片。
查看res/vlalus的strings.xml文件
首先查看一下对应的内容
我们在代码中可以通过以下两种方式引用它:
- 在代码中通过R.String.app_name可以获得该字符串的引用
- 在XML中通过@string/app_name可以获得该字符串的引用
说明:string部分是可以替换的,如果是引用的图片资源就可以替换成drawable,如果是引用应用图标可以替换成mipmap。布局文件可以替换成layout
在AndroidMainfeste.xml中有体现
详解build.gradle文件
首先看最外层的build.gradle文件
再看一下app目录下的build.gradle文件
androidx.appcompat:appcompat:1.4.0是一个标准的远程依赖格式,
android.appcompat是域名部分,用于和其他公司做区分
appcompat是工程名部分
1.4.0是版本号