第一次课《Android系统及客户端概览》笔记|青训营笔记

133 阅读2分钟

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

1. Android客户端知识图谱

作为开发者,面对的角色从大的方面可以分为用户、公司和自己,对不同的角色交付需要具备不同的知识技能,以下从不同的交付角度理解Android客户端的知识。

对外-为用户创造价值

  • 第一层:页面+逻辑+数据

用户看到一个页面,页面上有逻辑,有内容

image.png

  • 第二层:满足多样化的需求

image.png

  • 第三层:体验+质量+安全+个性化

image.png

对内-减少公司成本

  • 第一层:单人效能

image.png

  • 第二层:团队效能

一个项目发展两年以上就会出现代码复杂度高编译慢、新增代码复杂扩展性差、耦合严重等问题。这种情况下就需要架构师在这样复杂的环境中梳理出一些关系。

image.png

跨平台可以理解为一套代码既可以在Android平台上运行,也能在ios上运行,甚至还能在pc端运行。

对自己

  • 第一层:满足交付的基本技能

image.png

要掌握研发技能,完成需求,能完成对外交付

  • 第二层:打造自身的技术高度

长板理论

image.png

  • 第三层:君子不器,培养自己的综合素养

image.png

Android客户端发展路线

image.png

靠谱工程师:完成一个确定的需求,往上,能做一些模糊的东西...

2. Android系统

  1. 系统应用层

安装系统自带的软件和自己开发的软件。

  1. JavaAPI层

开发打交道最多。熟悉模块,不用一个一个读。

  1. 原生c++层和Android Runtime层

native主要是做多样化相关的。webkit是浏览相关的,media是播放相关的,OpenGL渲染。

  1. 硬件层
  2. Linux内核层

APK中包含的内容:

  • AndroidManifest.xml 四大组件以及权限等
  • res 资源文件,如图片、颜色、字符串,布局
  • META—INF 签名、证书,用于校验和安全相关
  • class.dex Java、kotlin代码
  • lib文件夹