初识Android与客户端探索 | 青训营笔记

119 阅读3分钟

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

以下是第一堂课的笔记和总结

初识Android与客户端探索


Android系统及客户端概览

宏观上的移动互联网局势

  • 纵观人们获取信息的媒介的历史,从报纸到手机等等,而手机作为获取信息的最主要媒介,不过是近十几年的事情。

  • 客户端是移动互联网世界里,离用户最近的研发。

  • 在国内app赛道中:短视频占据人们使用手机时间最长已是现在的主要趋势。App的目的就是争取人们注意力,作为手机使用的唯一目标对象。

Android知识图谱

  • 对外:为用户创造价值

    • 第一层交付:页面+逻辑+数据

      • 页面:Android+view

      • 逻辑:语言+代码结构

      • 数据:网络和储存

    • 第二层交付:多样化需求

      • 视频:视频格式、编解码、视频制作

      • 直播:直播录制、直播流

      • AR

      • 图像:图像格式、拍照美颜

      • 游戏:游戏app

    • 第三层交付:体验+质量+安全+个性化

      • 体验:耗时、卡顿、资源占用

      • 质量:崩溃、错误

      • 安全:刷量、泄露、隐私

      • 个性化:端智能、精细场景

  • 对内:成本

    • 第一层交付:单人效能

      • 编译:Gradle编译、编译流程优化

      • CICD:发布、集成

      • 工具:云构建、机架

    • 第二层交付:团队效能

      • 工程架构:组件化、代码重构

      • 业务架构:代码架构、开发范式

      • 流程管理:定容、管理平台

      • 跨平台:Flutter、Lynx

  • 自身:打造自身技术品牌

    • 第一层交付:满足交付的基本技能

      • Android系统:基本功能开发、了解FrameWork、了解系统

      • 语言熟练:基本特性、语法和高效写法

      • 基本素养:代码质量、业务理解、协同合作

    • 第二层交付:打造自身的技术高度

      • 系统底层:Android原理、Linux内核、Android Runtime

      • 架构设计:大型App架构、复杂工程管理

      • 业务能力:大型项目协同、组织管理

    • 第三层交付:培养自身综合素养

      • 思维:系统性思维、结构化思维、批判性思维

      • 认知:个人认知、自控力

      • 开发:技术好奇心、持续学习、开源

程序员典型发展历程
  1. 靠谱的工程师

  2. 能够负责一个重要项目

  3. 多样发展

    • 资深专家
    • 大型架构设计师
    • 大型团队负责人
  4. 行业领先

  5. 认识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客户端开发人员的成长路程和未来发展的顶点(长板效应),对自己的目标有了更加明确的认识,感谢老师,这堂课令我受益匪浅!