今年是做iOS开发第四个年头,大部分时间是从事界面,数据请求、解析,写了一大堆的业务代码,技术却没有很大的提高。
虽然也抽了时间学习了下Swift,RAC,RN等.然后对JavaWeb,H5,JS等也有了小小的入门。本人打算还是深耕iOS,如果和我有相同的想法却不知道该怎么开始的朋友,可以试着研究几个方向。
网上找的一张很不错的系统架构图
架构图使用频率
- 红色部分:经常使用
- 黄色部分:使用一般
- 淡绿部分:偶尔使用
- 绿色部分:极少使用
可以从这三个方向入手
- 音视频
- 图像核心动画
- 网络处理
1.Audio&Video&FFMpeg
先看相关的结构图
音频处理结构图 多媒体结构图越往上层,功能封装越单一,同时可以我们自己定制的功能就越少。比如在AudioUnit我们可以控制硬件Buffer大小,可以将解码之后的音频数据:变声、混频、加密、波形展示,做各种我们想要的效果,但最上层就没有这些丰富的API。
iOS原生API:
- AVFoundation自定义音视频频播放
- OpenAl播放3D音效
- Audio Queue音频队列原理解析
- AudioUnit的理解与使用
- Camera 从录制到播放流程解析
iOS 流媒体 软编解码及常用技术:
- Mpeg-4|AAC 视频播放器
- FFMpeg 解析for IOS
- RTSP流媒体与HLS流媒体 for iOS
- 图片合成视频,音频混频原理分析
- 实时滤镜特效处理
IOS硬编解码:
- WAV|Mp4 文件格式解析
- H264 解码基本原理及对IOS的支持
- iOS硬编硬解
2. Image&Animation
图片动画处理库-
QuartzCore.framework : 主要包括Core Animation 核心动画、CALayer也是这个框架下面的。
-
Core Graphics.framework:主要包括CGContext类、Quartz2d是一个绘图引擎,由Core Graphics提供一组API。
-
OpenGL ES:第三方框架 这个即使一个framework也是3D绘制引擎的名字。主要用于3D绘图。以及高效的纹理贴图。
-
Metal:🍎力推的框架支持GPU硬件加速、高级3D图形渲染以及大数据并行运算。且提供了先进而精简的API来确保框架的细粒度(fine-grain),并且在组织架构、程序处理、图形呈现、运算指令以及指令相关数据资源的管理上都支持底层控制。其核心目的是尽可能的减少CPU开销,而将运行时产生的大部分负载交由GPU承担
-
CoreImage:里面提供了丰富的图像处理、滤镜库。同时还有GPU加速功能。
-
GPUImage 适合视频的第三方滤镜方案
3.NetWork
网络层次结构图IOS的网络层次结构主要分为以下三个部分:
- Cocoa层:NSURL(比较常用的)、NSStream、GameKit、WebKit、ASIHttpRequest(第三方框架)
- Core Foundation:CFNetwork/CFNetServices、CFStream、CFSocket
- iOS:BSD Socket
这部分从下面调查:
Socket(从OS层到Cocoa层)不同情况下Socket的理解
利用Socket实现Http协议
iOS对代理、离线缓存、CDN加速的理解
网友评论