这是我参与「第四届青训营 」笔记创作活动的第1天
本节重点讲解Android的系统构成以及做好一个客户端的基本要求
主要内容:
1、客户端需要的知识图到底广不广?
2、客户端的成长天花板到底高不高?
3、整个培训课程的体系化认知
1,从移动生态讲起
了解移动互联网是怎么运行的
1.1 从移动互联网讲起
手机作为获取信息的最主要媒介,不过是十几年来的事情
表面上是人与机器的关系,本质上还是人与人的关系
在移动互联网的世界里,客户端是离用户最近的研发
1.2 组织内部的精简结构
1.3国产App的赛道和代表
2,Android知识图谱
作为研发,最重要的是做出自己的贡献,这主要通过交付来实现。交付分为对内,对外和自身三种,每种也分为不同的层次,每个层次要求的技能点是不同的。
简化的模型
对外(用户):为用户创造价值
对内(公司):对内都是成本,对外才是收益
自身(个人):自身也是产品,自身的技术品牌
2.1 对外为用户创造价值
第一层交付:页面+逻辑+数据
页面:用户所看见的界面包括图形
逻辑:功能实现所需要的逻辑方式
数据:用户在页面上的操作以及即将产生的情况
简单的交付知识图谱
第二层交付:多样性需求
多样性需求的知识图谱
第三层交付:体验+质量+安全+个性化
深层次需求的知识图谱
2.2 对内-减少公司成本
第一层交付:单人效能
单人效能的技术图谱
第二层交付:团队效能
需要团队成员合作完成项目
内部就是一个巨大的网
团队效能的技术图谱
2.3 自身-打造技术品牌
第一层交付:满足交付的基本技能
第二层交付:打造自身的技术高度
木桶理论or长板理论?
木桶能装水的多少取决于最短的那块木板,但是若将木桶倾斜,则若长板无限长就能装无限的水
什么是长板?
当你在某个领域可以达到行业前20%,你的职业生涯就延长了
当你在两个领域达到行业前20%,那你的天花板就很高了
当你在三个以上领域达到行业前20%,恳请你带我飞!!!
技术高度的技术谱图
第三层交付:君子不器,培养自己的综合素养
人们为了逃避真正的思考,是可以做任何事情的
有三样东西是极端坚硬(hard)的,钢铁、钻石以及认识自己
Stay Hungry, Stay Foolish
程序员发展的金字塔
1、不是只有管理这条路,发展路径是多样的
2、每个阶段都有自己要面对的难题
3,认识Android系统
了解Android系统,熟悉将来
Android系统总图
系统应用层
这一层就是个app所在的最上层,我们自己开发的app和系统自带的app都在这一层,两种app本质上没有太大的区别。一些系统的app提供的功能我们可以直接调用,比如打电话、发短信等,当然我们自己开发的app也可以给其他产品提供类似的调用功能
Java API层
这层就是 Android Framework 提供给开发者的接口,我们可以基于这些接口打造各自的 App 。在这一层主要的技术栈就是最基础的交付内容,包括页面+逻辑+页面,一些多媒体相关的需求也有成熟的api可以直接使用。
原生C/C++层和Andrioid Routime
一些核心的系统服务和组件是C/C++编写的,我们可以用 Android NDK 直接从原生代码访问某些原生平台库。从这一层往下,一些多样化的需求就可以被满足的很好,比如音视频编解码、安全、质量、体验等。 硬件抽象层(HAL)
主要提供硬件组件的封装,包括相机、传感器和蓝牙等。当框架 API 要求访问设备硬件时,Android 系统将为该硬件组件加载库模块。
Linux内核
Android 平台的基础是Linux内核。例如,Android Runtime(ART)依靠Linux内核来执行底层功能,例如线程和内存管理。使用Linux内核可让Android利用主要安全功能,并且允许设备制造商为著名的内核开发硬件驱动程序。
APK构成
● AndroidManifest.xml:生命app中四大组件,以及权限等
● classes.dex :所有编写的java、kotlin等代码
● res文件夹:资源文件夹,包括图片、颜色、字符串,以及搭建的XML布局文件
● lib文件夹:主要是存放C/C++代码编译成的so文件
● META-INF文件夹:存在签名和证书,用于校验和安全
4,开发工具
Android 开发用的IDE是Android Studio,下载和配置直接参考官方文文档即可:developer.android.google.cn/studio Git代码存储:
Workspace:工作区,本地电脑存放项目文件的地方,自己来指定位置
Remote Repository:远程仓库,也就是代码存在的地方
Local Repository: 本地仓库,也就是把代码拉取到本地存放的地方
Index/Stage: 本地仓库的暂存区
1、本地设置:
git config -- global user.name"your name"
git config -- global user.email"youremail@github.com"
2、创建本地仓库
git ini
git clone < urlk >
git pull
3、本地分支:
创建:git branch < branch-name >
切换:git checkout < branch-name >
4、提交:
git add.
git commit-m"commit-info"
git push
Git常用指令速查表
5,总结:
Android组成比较复杂,学习的内容比较丰富,对于刚刚才接触的我而言充满了未知的挑战,我希望我能在这未知的Android客户端收获到我所需要的知识与能力以此来面对未来无限的抱负!