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

175 阅读3分钟

这是我参与「第四届青训营 」笔记创作活动的的第1天,本文是我在第一次直播课的简要笔记内容,希望能够帮助到大家。
如果有记录不准确或者是遗漏的内容,还烦请读者朋友们在评论中指出,不胜感激!


知识图谱

交付

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

知识图谱

  • 页面:Android基础(客户端基础知识必备) + 复杂View(常规&高级UI编程)
  • 逻辑:语言 + 代码结构
  • 数据:网络 + 存储(数据存储&网络通信)

第二层:多样性需求

知识图谱

  • 视频:视频格式、编解码 + 视频创作
  • 直播:直播录制 + 直播流(探究多媒体直播技术)
  • AR
  • 图像:图像格式 + 拍照美颜
  • 游戏:游戏App

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

知识图谱

  • 体验:耗时 + 卡顿 + 资源占用(初识性能优化及工具)
  • 质量:崩溃 + 错误
  • 安全:刷量 + 泄露 + 隐私
  • 个性化:端智能 + 精细场景(端智能技术演进与实践)

效率

第一层:单人效率

  • 编译:Gradle编译 + 编译流程优化
  • CICD:发布 + 集成
  • 工具:云构建 + 机架

第二层:团队效能

  • 工程架构(效率):组件化 + 代码重构(客户端架构设计及应用)
  • 业务架构:代码架构 + 开发范式
  • 流程管理:定容 + 管理平台
  • 跨平台:Flutter + Lynx

技能

第一层:基本技能

  • Android系统:基本功能开发 + 了解Framework + 了解系统
  • 语言熟练:基本特性 + 语法和高效写法
  • 基本素质:代码质量 + 业务理解 + 协同合作(成为一名好RD,你该具备的研发素养)

第二层:技术高度

  • 系统底层:Android原理 + Linux内核 + ART(打开ART虚拟机的大门)
  • 架构设计:大型App架构 + 复杂工程管理
  • 业务能力:大型项目协同 + 组织管理

第三层:综合素养

  • 思维:系统性思维 + 结构化思维 + 批判性思维
  • 认知:个人认知 + 自控力
  • 开发:技术好奇心 + 持续学习 + 开源

认识Android系统

Android架构

System Apps

系统应用以及第三方应用

Java API Framework

Android Framework提供的接口,基于接口构建App

Native C/C++ & ART

核心系统服务和组件由C/C++编写,使用NDK直接访问原生平台库。可以满足音视频编解码/安全/质量/体验等需求

Hardware Abstraction Layer(HAL)

提供硬件组件的封装。当框架API需要访问设备硬件,Android将为硬件组件加载库模块

Linux Kernel

Linux内核,Android Runtime (ART) 依靠 Linux 内核来执行底层功能,例如线程和内存管理。内核可让 Android 利用主要安全功能,并且允许设备制造商为著名的内核开发硬件驱动程序

APK结构

  • AndroidManifest.xml : 组件注册以及权限声明
  • classes.dex : Java/Kotlin类
  • /res : 资源文件
  • /lib : C/C++编译的.so文件
  • /META-INF : 签名/证书文件

开发工具

Android Studio + Git