之前学了很久的关于Android开发知识,只是很多的网课和博客都是很零碎的。这些零碎的知识对于小白来说,并不是一件好事,他们会觉得云里雾里,对Android产生抵触心理。在学了快六个月之后感觉自己终于到了入门阶段,下面我将对我所了解的Android知识进行系统的梳理,哪怕你是一名小白也可以看懂、入门,本博客以及后续的博客适用的大多是自学的大学生,对于已经有知识基础或者已经参加工作的大佬帮助不大,大家在学习之后足够去做本科期间的一些比赛
Android的系统架构
Android大致上可以分为四层的系统架构:Linux内核层、系统运行库层、应用框架层、应用层(我认为这是应该必须了解的知识,虽然你不需要知道每一层具体做的都是什么)
Android的四大组件
四大组件分别是:Activity、Service、BroadcastReceiver和ContentProvider
Actuvity是Android应用程序的门面,凡是在应用中可以看到的东西,都是放在Activity中进行执行的
Service你是无法看见他的,但是哪怕你退出了程序,但是它仍然在运行中
BroadcastReceiver允许你的应用接受来自各处的广播信息,比如电话短信等,当然你的应用也可以向外发出信息。
ContentProvider则为应用程序之间共享数据提供了可能,比如你想要读取系统通讯录中的联系人,就需要通过ContentProvider来实现
(关于如何创建一个Android项目以及如何建立模拟器或者是将手机设置为开发者模式我就不具体和大家说了,这些网络上面的介绍和讲解都太多了)
分析Android的目录表
这是在你创建Android项目时会自动为你生成提供的目录,我们需要点击Android键换成Project类型,因为Project类型是与文件夹下的目录表相互对应的,也是现在Android开发的主流
这是更改之后的目录表,下面对里面的文件夹进行一个一个的分析
1、.gradle和.idea
这两个目录下放置的都是一些Android Studio自动生成的文件,我们无需关心,也不要去编辑
2、app
项目中的蒂阿穆、资源等内容都是放置在这个目录下的,我们后续的开发工作也基本上都是会在这个目录下进行的,一会还会对这个目录进行系统的讲解
3、build
这个目录主要包含了一些在编译时自动生成的文件,你也无需过多的关心
4、gradle
这个目录下包含了gradle wrapper 的配置文件,使用gradle wrapper不需要提前下载好,而是会自动根据本地的缓存情况决定是否进行联网下载gradle
5、gitignore
这个文件是用来将指定的目录和文件排除在版本控制之外。
6、build.gradle
这是项目全局的gradle构建脚本,同城这个文件中的内容是不需要修改的
7、gradle.properties
这个是文件的全局的gradle配置文件,在这里配置的属性将会影响到项目中所有的gradle编译脚本
8、gradlew和gradlew.bat
这两个文件是用来在命令行界面中执行gradle命令的,其中gradlew是在Linux和Mac系统中使用的,gradle.bat是在Windows系统中使用的
对于初学者来说的话我认为上面的一些我提到的和我省略的都不需要去太仔细的研究,因为在最初的开发过程中你是不会涉及到的,下面我提到的一下目录我认为才是最重要的
app目录
1、libs
如果你的项目中使用了第三方的jar包(比如说网上有开源的扫描二维码的项目,这时候你需要引用jar包,你就需要使用这个libs包了)
2、java
这是非常重要的一个包,我们将来的主要操作有很多都会在这里面进行操作,这里面放的便是java代码,在我们打开它的时候你可以看见里面系统已经自动帮我们生成了MainActivity文件
3、res
这个目录下面的内容就很多了,我们将来需要放置的图片、布局、字符串等等资源都要放置在这个目录下。图片放置在drawable目录下,布局放在layout下,字符串放在values目录下。
4、AndroidManifest.xml
这是整个Android项目的配置文件,程序中定义的四大组件都需要在这个文件里面进行注册,另外还可以通过这个文件来进行各种系统的权限声明,例如调用照相机、相册等等
5、build.gradle
这是app模块的gradle构建脚本,这个文件指定很多项目构建相关的配置,我们稍后会对这个文件进行详细的分析
还有很多的目录我没有进行介绍,一是因为那些目录在目前我的学习中还没有接触到,我对于他们的理解并不深刻,第二点就是对于初学者来说这些目录已经足够进行操作
讲了这么多的理论和基础知识,大家也许会觉得很枯燥,但是从一个过来人的角度来说,我认为了解这些会对我们的编程有很大的帮助
下面为大家推荐一下比较好的网课和书籍(当初我是一个个试雷走下去的,走了很多的弯路)适合初学者,这些参照着来,或许会对你有很大帮助
B站上面的天哥在奔跑,关于Android的UI界面设计讲的很好,我认为这个可以当作大家的入门课程,因为UI是最简单的一部分,同时UI设计又可以立竿见影的看到效果,非常适合大家提起对于Android的兴趣
其次有两个进阶的一本书是《第一行代码》第三版使用Kotlin进行编写的,大家可能会有一些抵触,尤其是对于现在主流是java这种环境来说,但是很多的点和函数调用以及里面的参数设置,两者之间的差距都是很小的,我们没有必要去学习Kotlin语言,但是从中我们却可以了解到很多关于Android开发的知识,非常值得推荐