这是我参与「第四届青训营 」笔记创作活动的第1天
根据老师讲解的内容以及学习资料一总结😄
- 2007年初代
iPhone📴 - 2008年第一款
Android商用手机
产品经理👨:从人获取需求,从 世界 收集信息
知识图谱
-
面向的用户主要分为三类(交付的含义):
-
对外(用户):为用户创造价值三层交付:
-
第一层(简单交付):
页面+逻辑+数据 -
第二层(多样性需求):比如视频、图像、游戏等
-
第三次(深层次需求):
体验+质量+安全+个性化-
体验包括:耗时、卡顿、资源占用 -
质量包括:崩溃、错误 -
安全包括:刷量、泄漏、隐私 -
个性化包括:端智能、精细场景
-
-
-
对内(公司):对内是成本,对外是收益减少公司成本
两层交付:
-
第一层:单人效益
- 编译
- CICD
- 工具
-
第二层:团队效能
- 工程架构:组件化、代码重构
- 业务架构:代码架构、开发范式
- 流程管理:定容、管理平台
- 跨平台:Flutter、Lynx
-
-
自身(个人):自身也算是产品打造技术品牌
三层交付:
-
第一层:满足交付的基本技能
- 了解Android系统
- 熟悉语言
- 基本素养
-
第二层:打造自身技术高度
- 系统高层
- 架构设计
- 业务能力
-
第三层:培养综合素养
- 思维
- 认知
- 开放:技术好奇心、持续学习、开源
-
-
Android系统
Android平台架构图
1.系统应用层
是各app的最上层,我们自己开发的和系统自带的app都在此层,部分系统app的功能可直接调用,例如打电话、发短信,自己开发的有的也行
2.Java API层
本层是Android Framework 提供给开发者的接口,我们可以基于此打造app
主要技术栈:基础的交付内容(页面+逻辑+页面)
3.原生C/C++层和Android Runtime
一些核心的服务和组件时C/C++编写的,我们可以用Android NDK 直接从原生代码访问某些原生平台库。从这一层往下,一些多样化的需求就可以被满足的很好,比如音视频编解码、安全、质量、体验等
4.硬件抽象层(HAL)
主要提供硬件的封装,如蓝牙等。当框架API要求访问设备硬件时,Android系统将为该硬件组件加载库模块
5.Linux 内核
Android 平台的基础是 Linux 内核。例如,Android Runtime (ART) 依靠 Linux 内核来执行底层功能,例如线程和内存管理。使用 Linux 内核可让 Android 利用主要安全功能,并且允许设备制造商为著名的内核开发硬件驱动程序。
APK构成
classes.dex:所有编写的java、res文件夹:资源文件夹,包括图片、颜色、字符串,以及搭建的XML布局文件lib文件夹:主要是存放C/C++代码编译成的so文件META-INF文件夹:存在签名和证书,用于校验和安全
开发工具
Android
Android开发用的IDE是Android Studio
Git
workplace:工作区,本地电脑存放项目文件的地方,自己指定位置
Remote Repository:远程仓库,存放代码
Local Repository:本地仓库,也就是把代码拉取到本地存放的地方
Index/Stage:本地仓库的暂存区