这是我参与「第四届青训营 」笔记创作活动的第1天
一、从移动生态讲起
- 人与手机看似是人与机器的关系,其本质还是人与人的关系
- 组织内部
二、Android知识图谱
1. 对外(用户):为用户创造价值
第一层交付:页面+逻辑+数据
其中页面包含Android基础和复杂View;逻辑包含语言和代码结构;数据包含网络和存储。
第二层交付:多样性需求
其内容有视频(如视频格式、编解码、视频创作)、直播(如直播录制、直播流)、AR、图像(如图像格式、拍照美颜)、游戏(如游戏App)
第三层交付:体验+质量+安全+个性化
第三层交付也可概括为深层次需求,其中具有代表性的例子为
(1) 体验:耗时、卡顿、资源占用
(2)质量:崩溃、错误
(3)安全:刷量、泄漏、隐私
2. 对内(公司):减少公司成本
第一层交付:单人效能
个人要掌握编译(如Gradle编译,编译流程优化)、CICD(如发布、集成)和工具(如云构建、机架)。
第二层交付:团队效能
- 工程构架:组件化、代码重构
- 业务架构:代码架构、开发范式
- 流程管理:定容、管理平台
- 跨平台:Flutter、Lynx
每个App内部都是一个巨大的网络,所以架构师是十分重要的。
3.自身(个人):打造技术品牌
第一层交付: 满足交付的基本技能
(1)Android系统:基本功能开发、了解FrameWork、了解系统 (2)语言熟练:基本特性、语法和高效写法 (3)基本素养:代码质量、业务理解、协同合作
第二层交付:打造自身的技术高度
(1)系统底层:Android原理、Linux内核、Android RUntime
(2)架构设计:大型App构架、复杂工程管理
(3)业务能力:大型项目协同、组织管理
(4)要充分发挥长板理论
第三层交付:培养自己的综合素养
(1)思维:系统性思维、结构化思维、批判性思维
(2)认知:个人认知、自控力
(3)开放:技术好奇心、持续学习、开源
三、认识Android系统
第一层:系统应用层
在各个App的最上层
第二层:Java API层
这层是Android FrameWork提供给开发者的接口,有着基础交付内容
第三层:原生C/C++层和Android Runtime
可以直接用Android NDK从原升代码访问某些原生平台库
第四层:硬件抽象层(HAI)
主要提供硬件组件的封装
第五层:Linux内核
Android平台的基础就是Linux内核
四、APK构成
- AndroidManifes.xml:生命App中的四大组件、以及权限。
- classes.dex:所有编写的Java、kotlin等代码
- res文件:资源文件夹
- lib文件夹:主要存放C/C++代码编译成的so文件
- META—INF文件夹:存放在签名和证书、用于校检和安全
五、认识开发工具
Android开发用的IDE是Android Studio
今日学习总结
通过今天的学习,我对App研发所要研究的方向和目的以及要遭遇的困境有所了解。在以后的学习中,我会不断思考,将困境一一打破。 注:图片出自课程ppt