初识客户端(Android) | 青训营笔记

163 阅读4分钟

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

一、本堂课重点内容

  1. 介绍了移动生态。
  2. 对外、对内、自身三大点引出Android知识图谱。
  3. 从几方面介绍Android系统
  4. 认识开发工具、Git。 image.png

二、详细知识点介绍

1. 移动生态

  • 人们了解世界的媒介的发展:
    亲眼所见 -> 报纸 -> PC与电视 -> 手机
  • 而客户端开发是直接面向用户的,它的背后有更多的支撑团队。 image.png

2. Android知识图谱

(1)对外 - 为用户创造价值

对外我们有三层交付。

第一层交付:
页面 -> 对应着Android基础、复杂View。
逻辑 -> 对应着语言、代码结构
数据 -> 对应着网络、存储
技术栈: Android基础(四大组件、UI开发、数据存储、网络请求技术等)
推荐零基础的同学可以看看郭霖的《第一行代码》这本书。(Java选第2版、kotlin选第3版)
image.png

第二层交付:
视频 -> 多媒体编码解码技术
直播 -> 直播技术、直播流
AR技术
图像 -> 图像操作、美颜等
游戏开发技术

image.png

第三层交付 - 深层次需求:
体验 -> 性能优化(耗时、卡顿、资源占用)
质量 -> 减少崩溃、错误
安全 -> apk加固、防泄漏、隐私
个性化 -> 端智能、精细场景

image.png

(2)对内 - 减少公司成本

对内主要分为两部分。
第一次交付 - 单人效能:
编译 -> 了解Gradle编译
CICD -> 了解发布、集成
工具 -> 云构建、机架

image.png

第二层交付 - 团队和公司效能:
工程效能 -> 组件化、代码重构
业务架构 -> 代码架构、开发范式
流程管理 -> 定容、管理平台
跨平台技术 -> 谷歌推荐的Flutter、字节自研的Lynx

image.png

(3)自身 - 打造自身的技术品牌

对于自身也有三层交付。
基本技能:
了解Android系统 -> 基本功能开发、FrameWork
对语言熟练 -> 熟练基本特性及语法
基本素养 -> 代码理解、业务理解、协同合作

image.png

技术高度:
让自己成为合格的需求承接只是第一步,要打开自身发展的天花板,需要培养自己的优势,打造自身的技术高度。
系统底层 -> Android原理、linxu内核、Android Runtime
架构设计 -> 大型App架构、复杂工程管理
业务能力 -> 大型项目协同、组织管理

image.png

综合素养:
从思维、认知、开放三个方面扩充自己的软素质。

image.png

3. 认识Android系统

先从两方面来了解一下我们离不开的Android系统吧。

(1)Android平台架构图

image.png 可以看到我们的Android系统分为五大层,从上往下来了解一下吧。
第一层 - 应用层
所有安装在手机上的应用程序都是属于这一层的,包括系统自带的联系人、短信等程序,以及你开发的程序。
第二层 - 应用框架层
这一层主要提供了构建应用程序时可能用到的各种API。
第三层 - 系统运行库层
这一层通过一些C/C++库来为Android系统提供了主要的特性支持,如SQLite数据库、Webkit等。
同时Android运行时库(Android Runtime)提供了一些核心库。
第四层 - 硬件抽象层 (HAL)
主要提供硬件组件的封装,包括相机、传感器和蓝牙等。当框架 API 要求访问设备硬件时,Android 系统将为该硬件组件加载库模块。
第五层 - Linxu 内核层
Android 平台的基础是 Linux 内核。例如,Android Runtime (ART) 依靠 Linux 内核来执行底层功能,例如线程和内存管理。

(2)APK的构成

image.png

  • AndroidManifest.xml :生命app中四大组件,以及权限等
  • classes.dex :所有编写的java、 kotlin代码
  • res文件夹 :资源文件夹,包括图片、颜色、字符串,以及搭建的XML布局文件
  • META-INF文件夹:存在签名和证书,用于校验和安全
  • lib文件夹:主要是存放C/C++代码编译成的so文件

4. 认识工具、Git

Android开发主要用的IDE是Android Studio,可通过Android官网下载。
可通过此链接下载:developer.android.google.cn/studio
Git是团队协同的重要工具,后面我会单独发一篇文章来介绍怎么使用它。

image.png

四、总结

本节课介绍了移动生态、Android知识图谱、Android系统、开发工具、Git
从这节课中,我对客户端的又有了进一步的了解,对以后的职业生涯及技术学习方向都有了一定的认知。

五、引用参考

本文章参考了【Android 客户端专场 学习资料一】, 主要引用了一些图片及文字。