这是我参与「第四届青训营 」笔记创作活动的第1天。
以下是第一堂课的笔记和总结
初识Android与客户端探索
Android系统及客户端概览
宏观上的移动互联网局势
-
纵观人们获取信息的媒介的历史,从报纸到手机等等,而手机作为获取信息的最主要媒介,不过是近十几年的事情。
-
客户端是移动互联网世界里,离用户最近的研发。
-
在国内app赛道中:短视频占据人们使用手机时间最长已是现在的主要趋势。App的目的就是争取人们注意力,作为手机使用的唯一目标对象。
Android知识图谱
-
对外:为用户创造价值
-
第一层交付:页面+逻辑+数据
-
页面:Android+view
-
逻辑:语言+代码结构
-
数据:网络和储存
-
-
第二层交付:多样化需求
-
视频:视频格式、编解码、视频制作
-
直播:直播录制、直播流
-
AR
-
图像:图像格式、拍照美颜
-
游戏:游戏app
-
-
第三层交付:体验+质量+安全+个性化
-
体验:耗时、卡顿、资源占用
-
质量:崩溃、错误
-
安全:刷量、泄露、隐私
-
个性化:端智能、精细场景
-
-
-
对内:成本
-
第一层交付:单人效能
-
编译:Gradle编译、编译流程优化
-
CICD:发布、集成
-
工具:云构建、机架
-
-
第二层交付:团队效能
-
工程架构:组件化、代码重构
-
业务架构:代码架构、开发范式
-
流程管理:定容、管理平台
-
跨平台:Flutter、Lynx
-
-
-
自身:打造自身技术品牌
-
第一层交付:满足交付的基本技能
-
Android系统:基本功能开发、了解FrameWork、了解系统
-
语言熟练:基本特性、语法和高效写法
-
基本素养:代码质量、业务理解、协同合作
-
-
第二层交付:打造自身的技术高度
-
系统底层:Android原理、Linux内核、Android Runtime
-
架构设计:大型App架构、复杂工程管理
-
业务能力:大型项目协同、组织管理
-
-
第三层交付:培养自身综合素养
-
思维:系统性思维、结构化思维、批判性思维
-
认知:个人认知、自控力
-
开发:技术好奇心、持续学习、开源
-
-
程序员典型发展历程
-
靠谱的工程师
-
能够负责一个重要项目
-
多样发展
- 资深专家
- 大型架构设计师
- 大型团队负责人
-
行业领先
-
认识Android系统
-
Android系统
- 系统应用层
- Java API层
- 原生C/C++层和Android Runtime
- 硬件抽象层
- Linux内核
-
APK构成
-
AndroidManifest.xml
生命app中四大组件,以及权限等
-
classes.dex
所有编写的java、kotlin等代码
-
res文件夹
资源文件夹,包括图片、颜色、字符串、以及XML布局文件
-
lib文件夹
主要是存放C/C++代码编译成的so文件
-
META-INF文件夹
存放签名和证书,用于校验和安全
-
-
开发工具
-
Android Studio或Android开发的IDE
-
Git(具体教程自行搜索)
- 本地仓库
- 远程仓库
- 工作区
- 暂存区
总结
通过这堂课的学习,我大体上的了解了Android是什么,对Android系统有了初步的认识。最重要的是,这堂课让我系统化地了解了Android开发中的对外、对内和对自身,这三点的多层交付与需求,让我对每一步都有了清晰的认识,同时我也会将这三点作为我将来Android开发中的的主要大纲。此外,我也了解到了作为一名Android客户端开发人员的成长路程和未来发展的顶点(长板效应),对自己的目标有了更加明确的认识,感谢老师,这堂课令我受益匪浅!