这是我参与第四届青训营笔记创作的第1天
app开发流程
graph LR
A[客户端开发] --> B[交互与功能]
B-->C[QA]-->G[交付]
D[服务端开发]-->E[内容与数据]
E-->C[QA]
I[产品经理]-->B
H[推荐内容]-->E
产品经理主要是收集用户的需求,整理然后界面交给客户端进行制作,完成基本的需求
app赛道代表
对外:创造用户价值
- 第一层交付:页面+逻辑+数据,一个博彩轮盘动画需要
- 页面:轮盘,小球
- 逻辑:小球转到某个位置,贝塞尔曲线
- 数据:是否会中奖
- 第二层交付:多样化体验
- 第三层交付:体验+质量+安全+个性化
graph LR
B[更深层次需求] --> A[体验]-->耗时
A-->卡顿
A-->资源占用
B-->c[质量]
c-->崩溃
c-->错误
B-->d[安全]
d-->刷量
d-->隐私
B-->e[个性化]
e-->端智能
e-->精细场景
对内:节省成本
团队效能
- 工程架构:组件化 代码重构
- 业务架构:代码架构,开发范式
- 流程管理:定容,管理平台
- 跨平台:flutter
对自身:打造自身品牌
交付
- 第一层交互:基本技能
- 第二层交互:打造自身的技术高度,在一个领域上达到前20%:分为系统底层:Android原理,linux内核、android runtimel、架构设计:大型app架构,复杂工程管理、业务能力:大型项目协同,组织管理,
- 第三层交付:综合素养:分为思维:系统性思维,结构化思维,批判性思维,认知:个人认知、自控力,开放:技术好奇心、持续学习、开源
了解Android系统
- 第一层:系统应用层 打电话,日历等功能,有自己开发的app也有系统自带的app
- 第二层 Java api层,这层是Android Framework提供给开发者的解耦,可以基于这些接口打造各自的app。
- 原生c/c++层 提供核心的系统服务和系统组件,可以用Android NDK直接从原生的代码访问某些原生平台库。Android runtime 核心的系统服务直接用原生代码访问某些原生平台库。
- 硬件抽象层 相机 传感器 蓝牙 要求访问设备硬件时,将为其加载库模块
- Linux内核art依靠Linux内核执行底层功能
apk的组成:
Android manifest.xml:生命周期的四大组件,以及权限 classes.dex:所有编写的Java kotlin代码 res文件夹:资源文件夹 lib文件夹:主要存放c/c++代码编译成的so文件 META-INF:存在签名和证书,用于校验和安全
认识开发工具
- Android:这个不细说
- git:首先需要把工作区的文件add到本地仓库的站暂存区,然后踢两脚到本地仓库,最后推送(push)到远程仓库
补充git的常用命令
git init # 初始化本地git仓库(创建新仓库)
git config --global user.name "xxx" # 配置用户名
git config --global user.email "xxx@xxx.com" # 配置邮件
git config --global color.ui true # git status等命令自动着色
git config --global color.status auto
git config --global color.diff auto
git config --global color.branch auto
git config --global color.interactive auto
git config --global --unset http.proxy # remove proxy configuration on git
git clone git+ssh://git@192.168.53.168/VT.git # clone远程仓库
git status # 查看当前版本状态(是否修改)
git add xyz # 添加xyz文件至index
git add . # 增加当前子目录下所有更改过的文件至index
git commit -m 'xxx' # 提交