Android系统及客户端概览|青训笔记

242 阅读3分钟

这是我参与「第四届青训营 」笔记创作活动的第1天

一、从移动生态讲起

  • 人与手机看似是人与机器的关系,其本质还是人与人的关系
  • 组织内部

9BB564B69ABC3C4AC7461CC82B517E35.jpg

二、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