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

99 阅读3分钟

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

课程笔记


1.移动生态

开发和交互

  • 人们了解世界的方式,在过去100多年发生了翻天覆地的变化。从口头交流到报纸再到互联网。

  • 目前在移动互联的世界,主要手段是手机和app的媒介。

  • 手机作为主要媒介不过十几年时间,在这十几年中快速发展。

image.png

2.Android知识图谱

客户端的开发主要分为三个方面:对外(用户)、对内(公司)、自身(个人)。

  • 对外(用户):为用户创造价值,是最终的目的和宗旨,也是整个系统存在的前提
  • 对内(公司):上面第二个图对应的是更详细的内部交付涉及的团队,实际上比这要复杂的多。这些团队组成了公司这个实体。对内都是成本,对外才是收益。对于内部来讲,我们的目的是降低交易成本。
  • 自身(个人):我们通过自身的努力来推进交付流程,提供给用户好用的产品。同时个人也是一个产品,我们需要打造自身的技术品牌,培养自己的技术实力。

对外-为用户创造价值

页面+逻辑+数据

最基本的交付,该层面直接面向用户,需要满足大部分用户的需求。

技术要求:复杂的交互 清晰的逻辑 网络基础

image.png

多样性

满足用户最基本的需求后,我们需要为用户提供更加多样化的诉求,更多更强大的功能,例如:视频操作,直播,社交,游戏等。 image.png

实验+质量+安全+个性化

技术要求:Android系统,底层引擎,安全,Hook,机器学习,端智能

image.png

对内-降低内部成本

1、第一层交付:单人效能

这里的单人不是指自己,而是提升团队每个人的开发效率,这包括代码编写更快,编译更快,部署和发布更快,测试更方便等。

2、第二层交付:团队和公司效能

对于大型项目来讲,开发人员可能有上万人,代码也能有几百万。这时候要提升团队的整体效率,需要从架构入手,搭建一套合适大型团队工作的代码架构。

自身-打造技术品牌

  • 满足交付的基本技能
  • 打造自身的技术高度
  • 君子不器,培养自己的综合素养

3.认识Android系统

image.png

系统应用层

我们开发的各种app的最上层,我们自己开发的应用和系统应用都运行在这一层,没有本质区别。

Java API 层

开发者接口

原生 C/C++层

系统核心服务组件

Android Runtime

运行时的虚拟机

硬件抽象层 (HAL)

硬件封装等

Linux 内核

Android 平台的基础是 Linux 内核。

4.开发工具

推荐使用Android Studio

个人思考与总结

1.这节课分为四个部分讲解Android基础知识。

  • 从开发和交互层次来讲,我们需要认识到互联网传播信息的本质还是人对人。 2.客户端开发我们要分为三个层面,对外、对内以及自身。
  • 对外主要是为用户创造价值。
  • 对内主要是减少公司成本。
  • 对自身主要是打造自身的技术品牌 3.Android系统架构:

自上而下

  • 系统应用层
  • Java API 层
  • 原生 C/C++层
  • Android Runtime
  • 硬件抽象层 (HAL)
  • Linux 内核