这是我参与「第四届青训营 」笔记创作活动的第1天。
读前须知:我是安卓方向零基础的新手,这个系列的笔记将主要用于记载我认为重要的知识点,不一定适用于所有人的学习情况。虽是新手但我依旧会尽力避免出现错误,不过如果没能完全避免,还希望读者能不惜笔墨地指出。
一、本堂课重点内容:
- 对于一个开发者而言,本堂课的重点在于了解自己要开发什么,即安卓客户端是什么?
二、详细知识点介绍:
-
回答安卓客户端是什么?
安卓客户端是运行在安卓系统上的应用程序,所以要回答这个问题首先要知道安卓系统的架构:
可以看到,安卓系统的基础是Linux系统内核。在一些安卓系统的终端软件,如Termux中我们可以得到与Linux目录类似的目录结构:
在内核之上是依次是硬件抽象层 (HAL)、安卓运行环境、原生 C/C++层和Java API层。最顶层是系统应用层,我们自己开发的App和系统自带的App都在这一层,两种App本质上没有太大区别。
知道了系统的架构后还要了解开发的最终成果是什么样,即一个APK程序是什么?
一个典型的APK文件结构如图:
其中包括:
- AndroidManifest.xml :生命app中四大组件,以及权限等
- classes.dex :所有编写的java、
- res文件夹 :资源文件夹,包括图片、颜色、字符串,以及搭建的XML布局文件
- META-INF文件夹:存在签名和证书,用于校验和安全
- lib文件夹:主要是存放C/C++代码编译成的so文件
这与使用Android Studio(以下简称AS)进行开发的过程中的目录结构有一定联系和区别,AS组织好的目录结构一般是这样:
-
app > manifests > AndroidManifest.xml
清单文件描述了应用的基本特性并定义了每个应用组件。
-
app > java
这个目录存放所有java代码。 com.example.myfirstapp > MainActivity是主 activity。它是应用的入口点。当您构建和运行应用时,系统会启动此
Activity的实例并加载其布局。 androidTest和Test用来编写一些自动化测试。 -
app > res
这个目录下的内容就有点多了。简单点说,就是你在项目中使用到的所有图片、布局、字符串等资源都要存放在这个目录下。当然这个目录下还有很多子目录,图片放在drawable目录下,布局放在layout目录下,字符串放在values目录下,所以你不用担心会把整个res目录弄得乱糟糟的。
-
Gradle Scripts
AS使用Gradle来构建项目,该目录下是gradle关于项目的各种配置文件
三、实践练习例子
对于零基础的开发者来说,阅读完第二节可能还是不理解。第二节的内容是我在阅读了《第一行代码》(第2版)第一、二章以及Android开发者指南:构建首个应用后得出的答案,建议新手在阅读完后按照书籍和开发者指南再实践一下,之后对安卓应用的理解会更加清晰。
四、引用参考:
标题:【Android 客户端专场 学习资料一】第四届字节跳动青训营 - 掘金
标题:# Termux 使用教程 #1 - Android 手机安装 Linux
标题:Android开发者指南:构建首个应用
标题:《第一行代码》(第2版)
P18-P25