这是我参与「第四届青训营 」笔记创作活动的的第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