Android客户端 | 青训营笔记

181 阅读3分钟

Android客户端 | 青训营笔记

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

Android系统及客户端概览

一、从移动生态讲起

image.png

image.png

二、Android知识图谱

简化的模型

image.png

对外(用户):为用户创造价值

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

简单交付知识图谱

image.png

第二层交付:多样性需求

多样性需求的知识图谱

image.png

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

深层次需求的知识图谱

image.png

对内(公司):对内都是成本,对外才是收益

第一层交付:单人效能

单人效能的技术图谱

image.png

第二层交付:团队效能

团队效能的技术图谱

image.png

自身(个人):自身也是产品,自身的技术品牌

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

image.png

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

木桶理论or长板理论

技术高度的技术图谱

image.png

第三层交付:君子不器,培养自己的综合素养

image.png

程序员发展金字塔

image.png

三、认识Android系统

整体框架

image.png

System Apps层

这一层就是各app所在的最上层,我们自己开发的app和系统自带的app都在这一层,两种app本质上没有太大区别。一些系统的app提供的功能我们可以直接调用,比如打电话、发短信等,当然我们自己开发的app也可以给其他产品提供类似的调用功能。

Java API层

这层就是Android Framework提供给开发者的接口,我们可以基于这些接口打造各自的App。

在这一层主要的技术栈就是最基础的交付内容,包括页面+逻辑+页面,一些多媒体相关的需求也有成熟的api可以直接使用。

原生C/C++层和Android Runtime

一些核心的系统服务和组件是C/C++编写的,我们可以用Android NDK直接从原生代码访问某些原生平台库。从这一层往下,一些多样化的需求就可以被满足的很好,比如音视频编解码、安全、质量、体验等。

硬件抽象层(HAL)

主要提供硬件组建的封装,包括相机、传感器和蓝牙等。当框架API要求访问API要求访问设备硬件时,Android系统将为该硬件组件加载库模块。

Linux内核

Android平台的基础是Linux内核。例如,Android Runtime(SRT)依靠Linux内核来执行底层功能。例如线程和内存管理。使用Linux内核可让Android利用主要安全功能,并且允许设备制造商为著名的内核开发硬件驱动程序。

APK构成

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

四、认识工具

开发工具

image.png

Android开发用的IDE是Android Studio。

Git

image.png

Workspace:工作区,本地电脑存放项目文件的地方,自己来指定位置

Remote Repository:远程仓库,也就是代码存在的地方

Local Repository:本地仓库,也就是把代码拉取到本地存放的地方

Index/Stage:本地仓库的暂存区

1.本地设置:

git config--global user.name"your name"
git config--global user.email"your email"

2.创建本地仓库:

git init
git clone <url>
git pull

3.本地分支:

创建:git branch <branch-name>
切换: git checkout <branch-name>

4.提交:

git add.
git commit -m "commit_info"
git push

Git常用命令速查表

image.png