这是我参与「第四届青训营」笔记创作的第1天
1、开发和交付
从互联网讲起
- 手机作为获取信息的最主要媒介,不过几十年的事情
- 提供信息的是app,表面是人和机器的关系,本质上还是人与人的关系
- 在互联网的世界里,客户端是离用户最近的研发
组织内部的精简结构
- App的背后是一个团队
国内App的赛道和代表
2、Android 知识图谱
客户端是典型的应用型岗位,几乎所有技能点都能在客户端找到自己的试验场。
简化的模型
- 对外(用户):为用户创造价值
- 对内(公司):对内都是成本,对外才是收益
- 自身(个人):自身也是产品,打造自己的技术品牌
想在行业里面立足,在这三个层面上做出自己的贡献或者交付
对外 - 为用户创造价值
- 第一层交付:页面+逻辑+数据
- 第二层交付:多样性需求
- 第三层交付:体验+质量+安全+个性化
对内 - 减少公司成本
- 第一层交付:单人效能
- 第二层交付:团队和公司效能
自身- 打造自身的技术品牌
- 第一层交付:满足交付的基本技能
- 第二层交付:打造自身的技术高度
- 第三层交付:君子不器,培养自己的综合素养
3、认识Android 系统
Android平台架构图
Android系统架构分为五层
-
系统应用层
App所在的最上层
-
Java API层
Android Framework提供给开发者的接口,可以通过这些接口来开发APP
-
原生 C/C++层 & Android Runtime层
一些核心的系统服务和组件是C/C++编写的,可以用[Android NDK]直接从原生代码访问某些原生平台库。
这一层会把DEX字节码进行编译,优化执行效率。
-
硬件抽象层 (HAL)
主要提供硬件组件的封装,包括相机、传感器和蓝牙等。
-
Linux 内核层
使用 Linux 内核可让 Android 利用主要安全功能,并且允许设备制造商为著名的内核开发硬件驱动程序。
APK的构成
- AndroidManifest.xml :生命app中四大组件,以及权限等
- classes.dex :所有编写的Java、Kotlin等代码
- res文件夹 :资源文件夹,包括图片、颜色、字符串,以及搭建的XML布局文件
- lib文件夹:主要是存放C/C++代码编译成的so文件
- META-INF文件夹:存在签名和证书,用于校验和安全
后记
首先,很荣幸能够通过笔试加入到本次青训营的大家庭中与大家一起学习。作为一个零基础的小白,我会在接下来的课程中向各位讲师、大佬学习,保持Stay Hungry, Stay Foolish 的态度去汲取知识和力量。
老师的授课使我受益匪浅。几乎所有的技能点都能在客户端找到自己的试验场;拥有自己的长板,打造自己的技术高度,职业的天花板很高(长板理论);在移动互联网,升级打怪的路不会停止,挑战成功的快乐才是真的快乐。
现在开始我们的Android之旅吧!