Android 系统及客户端概览 | 青训营笔记

126 阅读3分钟

这是我参与「第四届青训营」笔记创作的第1天

1、开发和交付

从互联网讲起

  • 手机作为获取信息的最主要媒介,不过几十年的事情
  • 提供信息的是app,表面是人和机器的关系,本质上还是人与人的关系
  • 在互联网的世界里,客户端是离用户最近的研发

image.png

组织内部的精简结构

  • App的背后是一个团队

image.png

国内App的赛道和代表

image.png

2、Android 知识图谱

客户端是典型的应用型岗位,几乎所有技能点都能在客户端找到自己的试验场。

简化的模型

image.png

  • 对外(用户):为用户创造价值
  • 对内(公司):对内都是成本,对外才是收益
  • 自身(个人):自身也是产品,打造自己的技术品牌

想在行业里面立足,在这三个层面上做出自己的贡献或者交付

对外 - 为用户创造价值

  1. 第一层交付:页面+逻辑+数据
  2. 第二层交付:多样性需求
  3. 第三层交付:体验+质量+安全+个性化

对内 - 减少公司成本

  1. 第一层交付:单人效能
  2. 第二层交付:团队和公司效能

自身- 打造自身的技术品牌

  1. 第一层交付:满足交付的基本技能
  2. 第二层交付:打造自身的技术高度
  3. 第三层交付:君子不器,培养自己的综合素养

3、认识Android 系统

Android平台架构图

image.png

Android系统架构分为五层

  1. 系统应用层

    App所在的最上层

  2. Java API层

    Android Framework提供给开发者的接口,可以通过这些接口来开发APP

  3. 原生 C/C++层 & Android Runtime层

    一些核心的系统服务和组件是C/C++编写的,可以用[Android NDK]直接从原生代码访问某些原生平台库。

    这一层会把DEX字节码进行编译,优化执行效率。

  4. 硬件抽象层 (HAL)

    主要提供硬件组件的封装,包括相机、传感器和蓝牙等。

  5. Linux 内核层

    使用 Linux 内核可让 Android 利用主要安全功能,并且允许设备制造商为著名的内核开发硬件驱动程序。

APK的构成

image.png

  • AndroidManifest.xml :生命app中四大组件,以及权限等
  • classes.dex :所有编写的Java、Kotlin等代码
  • res文件夹 :资源文件夹,包括图片、颜色、字符串,以及搭建的XML布局文件
  • lib文件夹:主要是存放C/C++代码编译成的so文件
  • META-INF文件夹:存在签名和证书,用于校验和安全

后记

首先,很荣幸能够通过笔试加入到本次青训营的大家庭中与大家一起学习。作为一个零基础的小白,我会在接下来的课程中向各位讲师、大佬学习,保持Stay Hungry, Stay Foolish 的态度去汲取知识和力量。

老师的授课使我受益匪浅。几乎所有的技能点都能在客户端找到自己的试验场;拥有自己的长板,打造自己的技术高度,职业的天花板很高(长板理论);在移动互联网,升级打怪的路不会停止,挑战成功的快乐才是真的快乐。

现在开始我们的Android之旅吧!