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

109 阅读2分钟

Android 系统及客户端概览

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

概要

  • 移动互联网生态
  • Android知识图谱
  • Android系统概览
  • Android开发工具

移动互联网生态

  • 移动互联网只有十几年的历史
  • 本质是人与人之间的关系
  • 所有的App都在争一种资源——用户注意力
  • 短视频类型的应用占用用户时间最多(短视频->社交->资讯->长视频->游戏->购物...)

Android知识图谱

从宏观上看,作为一个客户端研发来说,面对的场景主要分为:

对外—创造用户价值

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

第二层交付:多样性需求

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

国民App面对的是什么?

  1. 抖音每年消耗 9亿度电,相当于三峡7‰
  2. 每年羊毛党 1000亿 市场规模
  3. 一个季度抖音处理 刷分刷赞3020万次,协助抓获诈骗嫌疑人75人
  4. 每天6亿人来抖音随便看看

对内—降低公司成本

第一层交付:单人效能

第二层交付:团队效能

自身—打造自身的技术品牌

第一层交付:基本技能

第二层交付:技术高度

  • 当你在某个领域可以达到行业前20%,职业生涯就延长了
  • 当你在两个领域达到行业前20%,天花板就很高了

第三层交付:综合素养

  • Stay Hungry, Stay Foolish

发展金字塔

image.png

Android系统概览

  • System Apps:系统app和自己开发的app,一些系统app的功能也可以被调用
  • Java API Framework:提供成熟的api,开发app时最多用到的
  • 原生C/C++和Android Runtime:可以用Android NDK访问,提供音视频编码、安全、质量、体验等功能
  • 硬件抽象层(HAL):提供硬件组件的封装,包括相机、传感器、蓝牙等,框架API要访问时,Android提供接口
  • Linux内核:Android平台的基础是Linux内核

App安装包(APK)构成

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

Android开发工具

IDE:Android Studio

版本管理/多人协作:Git