当我们选择一个Empty Activity创建完一个My Application项目后,编译运行后结果如下:
AndroidManifest.xml配置文件
在Android视图下可以找到
Application标签并简单讲解一个Hello World文件的运行过程
- 代码简要分析
这段代码表示对MyApplication这个活动进行注册,没有在AndroidManifest.xml里注册的活动是不能使用的。其中intent-filter里的两行代码非常重要,和表示MyApplication是这个项目的主活动,在手机上点击应用图标,首先启动的就是这个活动。
找到MainActivity这个java文件
首先我们可以看到,MyApplication是继承自AppCompatActivity的,这是一种向下兼容的Activity,可以将Activity在各个系统版本中增加的特性和功能最低兼容到Android 2.1系统。Activity是Android系统提供的一个活动基类,我们项目中所有的活动都必须继承它或者它的子类才能拥有活动的特性(AppCompatActivity是Activity的子类)。然后可以看到MyApplication中有一个onCreate()方法,这个方法是一个活动被创建时必定要执行的方法,其中只有两行代码,并且没有Hello Android!的字样。那么本文第一张图显示的Hello Android!是在哪里定义的呢?
其实Android程序的设计讲究逻辑和视图分离,因此是不推荐在活动中直接编写界面的,更加通用的一种做法是,在布局文件中编写界面,然后在活动中引入进来。可以看到,在onCreate()方法的第二行调用了setContentView()方法,就是这个方法给当前的活动引入了一个activity_main布局,那Hello Android!一定就是在这里定义的了!
布局文件都是定义在res/layout目录下的,当你展开layout目录,你会看到activity_main.xml这个文件
组件声明标签
权限标签
你可以这么声明权限,读取存储卡中的内容和完全的网络访问权限
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"></uses-permission>
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
App目录
项目中的代码、资源等内容几乎都是放置在这个目录下的,我们后面的开发工作也基本都是在这个目录下进行的
Gradle目录
这个目录下包含了gradle wrapper的配置文件,使用gradle wrapper的方式不需要提前将gradle下载好,而是会自动根据本地的缓存情况决定是否需要联网下载gradle。可以点击Android Studio导航栏→File→Settings→Build, Execution,Deployment→Gradle,进行配置更改
例如我的就在这个目录下
.gitignore
这个文件是用来将指定的目录或文件排除在版本控制之外的
build.gradle
这是项目全局的gradle构建脚本,通常这个文件中的内容是不需要修改的
gradle.properties
这个文件是全局的gradle配置文件,在这里配置的属性将会影响到项目中所有的gradle编译脚本。
local.properties
这个文件用于指定本机中的Android SDK路径,通常内容都是自动生成的,我们并不需要修改。除非你本机中的Android SDK位置发生了变化,那么就将这个文件中的路径改成新的位置即可。
settings.gradle
这个文件用于指定项目中所有引入的模块。由于HelloWorld项目中就只有一个app模块,因此该文件中也就只引入了app这一个模块。通常情况下模块的引入都是自动完成的,需要我们手动去修改这个文件的场景可能比较少。
build
这个目录和外层的build目录类似,主要也是包含了一些在编译时自动生成的文件,不过它里面的内容会更加更杂,我们不需要过多关心。
libs
如果你的项目中使用到了第三方jar包,就需要把这些jar包都放在libs目录下,放在这个目录下的jar包都会被自动添加到构建路径里去
res
就是你在项目中使用到的所有图片、布局、字符串等资源都要存放在这个目录下。当然这个目录下还有很多子目录,图片放在drawable目录下,布局放在layout目录下,字符串放在values目录下
build.gradle
这是app模块的gradle构建脚本,这个文件中会指定很多项目构建相关的配置
之后我会持续更新,如果喜欢我的文章,请记得一键三连哦,点赞关注收藏,你的每一个赞每一份关注每一次收藏都将是我前进路上的无限动力 !!!↖(▔▽▔)↗感谢支持!