这是我参与「第四届青训营 」笔记创作活动的的第1天
课程笔记
1.移动生态
开发和交互
-
人们了解世界的方式,在过去100多年发生了翻天覆地的变化。从口头交流到报纸再到互联网。
-
目前在移动互联的世界,主要手段是手机和app的媒介。
-
手机作为主要媒介不过十几年时间,在这十几年中快速发展。
2.Android知识图谱
客户端的开发主要分为三个方面:对外(用户)、对内(公司)、自身(个人)。
- 对外(用户):为用户创造价值,是最终的目的和宗旨,也是整个系统存在的前提
- 对内(公司):上面第二个图对应的是更详细的内部交付涉及的团队,实际上比这要复杂的多。这些团队组成了公司这个实体。对内都是成本,对外才是收益。对于内部来讲,我们的目的是降低交易成本。
- 自身(个人):我们通过自身的努力来推进交付流程,提供给用户好用的产品。同时个人也是一个产品,我们需要打造自身的技术品牌,培养自己的技术实力。
对外-为用户创造价值
页面+逻辑+数据
最基本的交付,该层面直接面向用户,需要满足大部分用户的需求。
技术要求:复杂的交互 清晰的逻辑 网络基础
多样性
满足用户最基本的需求后,我们需要为用户提供更加多样化的诉求,更多更强大的功能,例如:视频操作,直播,社交,游戏等。
实验+质量+安全+个性化
技术要求:Android系统,底层引擎,安全,Hook,机器学习,端智能
对内-降低内部成本
1、第一层交付:单人效能
这里的单人不是指自己,而是提升团队每个人的开发效率,这包括代码编写更快,编译更快,部署和发布更快,测试更方便等。
2、第二层交付:团队和公司效能
对于大型项目来讲,开发人员可能有上万人,代码也能有几百万。这时候要提升团队的整体效率,需要从架构入手,搭建一套合适大型团队工作的代码架构。
自身-打造技术品牌
- 满足交付的基本技能
- 打造自身的技术高度
- 君子不器,培养自己的综合素养
3.认识Android系统
系统应用层
我们开发的各种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 内核