IOS架构师之路:我对IOS架构的点点认识(大纲)

1、今天我鼓起了勇气,想纪录自己对IOS架构学习成长的点点滴滴。

从事IOS开发也有几年的时间,从刚開始最主要的语言、界面、逻辑,再到后面复杂点的线程、数据处理、网络请求、动画,最后到最复杂的底层音视频、图像算法、自己定义各种效果、网络底层处理。甚至是最后的性能:neon、asm优化。

感觉自己在IOS的开发中,每次都是雾里看花,明明非常接近真理却总是触摸不到。对IOS缺乏一种全局把控的感觉。所以我下定决定想看看IOS的一些官方文档,看看IOS的各个模块的层次结构究竟是怎么回事。

大约从一年前開始做这件事件,我也知道这肯定不是一件easy的事情。就像想做Android架构师,通读源代码一样,肯定是非常辛苦。由于读研的时候做的事DSP信号处理方面的(底层驱动。算法移植)。

所以我在開始之前给自己打了非常多气。我想不管是IOS还是Android都是嵌入式设备。既然曾经是做最底层的,如今看看上层应该跨度不大,呵呵。

可是真正做的时候才发现。工作量真是太大了。所以最后调整了计划,仅仅对IOS中的三个最难的部分做深入的研究。

当然由于时间仓促。加之自己水平有限,有认识不清或者不到位的地方,还希望大家批评指正!

请勿拍砖哈呵呵!

2、三个IOS专栏:音视频、图像核心动画、网络处理

这三个的重要性我就不说了,一般的clientAPP可能没有深入关注这点。但仅仅要想做一些有特点、做深入、做精致。我想这三个部分是不得不常常接触的。

以下这是网上的一张IOS系统架构图,画的挺好的我就直接拿来了。呵呵

使用频率:

红色部分:常常使用

黄色部分:使用一般

淡绿部分:偶尔使用

绿色部分:极少使用

但我想从掌握的难易程度。以及使用这些这些技术的重要性来划分。

所以我重点关注了粉红色方框中的内容。

3 IOS:Audio&Video&FFmpeg

先来看看几个结构图:多媒体层结构图:

音频处理结构图:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" width="564" height="223" >

越往上层,功能封装越单一,同一时候能够我们自己定制的功能就越少。

比方在AudioUnit我们能够控制硬件Buffer大小,能够将解码之后的音频数据:变声、混频、加密、波形展示,做各种我们想要的效果,但最上层就没有这些丰富的API。

每一个部分的具体功能及使用会在博客中专门的介绍,这里就不啰嗦了。

另外我准备吧FFmpeg解码也放到这个部分。初步想法是这种:

IOS原生API:

3.1 AVFoundation自己定义音视频频播放

3.2 OpenAl播放3D音效

3.3 Audio Queue音频队列原理解析

3.4 AudioUnit的理解与使用

3.5 Camera 从录制到播放流程解析

IOS
流媒体 软编解码及经常使用技术:

3.6 Mpeg-4|AAC 视频播放器

3.7 FFmpeg 解析for IOS(可能2-4篇)

3.8 RTSP流媒体与HLS流媒体
for IOS

3.9 图片合成视频,音频混频原理分析

3.10 实时滤镜特效处理

IOS硬编解码:

3.11 WAV|Mp4 文件格式解析

3.12 H264 解码基本原理及对IOS的支持

3.13 浅谈IOS硬编硬解

可能还不是非常全面,待我整理下资料再继续加入。

4 Image&Animation

图片动画处理部分:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" width="590" height="431" >

QuartzCore.framework : 主要包含Core Animation 核心动画、CALayer也是这个框架以下的。

CoreGraphsic.framework:主要包含CGContext类、Quartz2d是一个画图引擎。由CoreGraphsic提供一组API。

OPENGLES:这个即使一个framework也是3D绘制引擎的名字。

主要用于3D画图。

以及高效的纹理贴图。

CoreImage:里面提供了丰富的图像处理、滤镜库。同一时候还有GPU加速功能。

这个环节我想从下面几个部分阐述:

4.1 QuartzCore 介绍各种炫酷动画:如PNChart图表重构github(可能要4-5篇)

4.2
Quartz2d画图引擎的使用

4.3
OpenGLES 画图引擎的使用

4.4
IOS原生滤镜库介绍

4.5
armv7 内核(寄存器使用)

4.6
Neon、ASM(汇编优化)

5 NetWork

IOS的网络层次结构主要分为下面三个部分:

Cocoa层:NSURL(比較经常使用的)、NSStream、GameKit、WebKit、ASIHttpRequest(第三方框架)

Core Foundation:CFNetwork/CFNetServices、CFStream、CFSocket

OS:BSD Socket

这部分例如以下布置:

5.1 Socket(从OS层到Cocoa层)不同情况下Socket的理解(估计4篇)

5.2 利用Socket实现Http协议(估计5篇左右)

5.3 IOS对代理、离线缓存、CDN加速的理解(估计6篇左右)

时间: 2024-08-26 16:07:06

IOS架构师之路:我对IOS架构的点点认识(大纲)的相关文章

Java架构师之路:从Java码农到年薪八十万的架构师,最牛Java架构师进阶路线

从Java码农到年薪八十万的架构师,资深架构师大牛给予Java技术提升学习路线建议,如何成为一名资深Java架构师? 对于工作多年的程序员而言,日后的职业发展无非是继续专精技术.转型管理和晋升架构师三种选择.架构师在一家公司有多重要.优秀架构师需要具备怎样的素质以及架构师的发展现状三个方面来分析 程序员如何才能晋升为优秀的高薪架构师? 希望通过本文让程序员们了解架构师的市场行情,了解架构师的发展前景,并帮助你更清晰地做出职业规划. 架构师在一家公司有多重要 架构师在公司中担当着「IT架构灵魂人物

架构师之路虽难,但不要放弃!

由于昨天深夜学习不在状态,问责自己的话,分享给那些一直坚持这条道路而又有感到迷茫的小伙伴们! 致深夜迷茫的自己:    北京的压力真的很大吗?你自己的压力真的就那么大吗?真的很累吗?难道想放弃了?心甘情愿的去做一个平庸的人吗?还记不记得当初有那么多瞧不起你的眼神,难道你忘了吗?你知道吗,在你的老师眼里你是个很有能力的学生,每个老师都愿意把最高的分数给你,这是为什么?因为那时候你有一颗战无不胜.不服输的心!现在是怎么了,学不进去了吗?累?熬不下去了?刚刚接手公司中心服务器集群,就感觉累了?你知道吗

Android架构师之路-架构师的决策

android架构师之路-架构师的决策 内涵+造型:可能大部分人对这个内涵和造型不是很理解,在这里我可以给大家举个生动的例子:相信很多人都有自己的汽车, 我们总结汽车有哪些属性和功能,这些都是内涵,大自然中的每个对象都有自己的内涵(人有手有脚,还可以跑),然后我们 将这些内涵放入指定的造型中,类似模版,比如java语言如果定义一个class的时候,必须在作用域(大括号内部)指定属性和 函数,这个class的定义规范就是一个造型,然后我们将汽车这个内涵按照class的规范定义一个汽车class,那

2015重磅炸弹——【视频】Android从程序员到架构师之路

眼看2015年一月份就要接近尾声了,今年的开年第一颗炸弹也该引爆了! Android从程序员到架构师之路,高焕堂老师主讲,总共234节课. 为了方便大家观看,直接传了MP4格式的视频文件,不想下载的朋友可以在线观看. 链接: http://pan.baidu.com/s/1qW1B9mO 密码: sf79 望支持,谢谢!

java架构师之路:JAVA程序员必看的15本书的电子版下载地

转自:http://www.shangxueba.com/faq/view376.html 作为Java程序员来说,最痛苦的事情莫过于可以选择的范围太广,可以读的书太多,往往容易无所适从.我想就我自己读过的技术书籍中挑选出来一些,按照学习的先后顺序,推荐给大家,特别是那些想不断提高自己技术水平的Java程序员们. 一.Java编程入门类 对于没有Java编程经验的程序员要入门,随便读什么入门书籍都一样,这个阶段需要你快速的掌握Java基础语法和基本用法,宗旨就是“囫囵吞枣不求甚解”,先对Java

[Android]Android从程序员到架构师之路的一些笔记

高焕堂老师的讲得不错 //EIT造型 E基类   I接口    T(基类的子类)实现接口 [Android]Android从程序员到架构师之路的一些笔记

测试专家讲述通往测试架构师之路

随着对测试这个职业的了解越来越深,对微软测试技术的掌握越来越多,慢慢地,人就开始对那些测试“大牛”在做什么感兴趣了.他们就是那些在公司内部挂着“测试架构师”头衔的一小撮人. AD: WOT2014:用户标签系统与用户数据化运营培训专场 在公司呆了有几个年头了.在测试技术方面的技能长进了不少,又能享受写代码的乐趣,同事们经常交流对软件测试技术的见解,也在项目中实现一些创新的测试技术和基于自己的想法设计好的测试框架,每天过的很开心.随着对测试这个职业的了解越来越深,对微软测试技术的掌握越来越多,慢慢

深入大数据架构师之路,问鼎40万年薪视频教程

38套大数据,云计算,架构,数据分析师,Hadoop,Spark,Storm,Kafka,人工智能,机器学习,深度学习,项目实战视频教程 视频课程包含: 38套大数据和人工智能精品高级课包含:大数据,云计算,架构,数据挖掘实战,实时推荐系统实战,电视收视率项目实战,实时流统计项目实战,离线电商分析项目实战,Spark大型项目实战用户分析,智能客户系统项目实战,Linux基础,Hadoop,Spark,Storm,Docker,Mapreduce,Kafka,Flume,OpenStack,Hiv

2018年给自己运维架构师之路总结(半年)

一转眼2018年已过去一半,现在很多高大上的技术不断涌现而出,不过我一直都相信,根基不牢,地动山摇,所有希望我自己能坚持自己的初心,不要心浮气躁,谈事下来,一步步走向我的架构师之路. 下面就来总结一下我的工作内容: 传送门:https://aonaotu.com/open/5b236fa7dae7f00014b22c83 原文地址:http://blog.51cto.com/qiuyt/2129941

Java架构师之路

Java架构师之路:从Java码农到年薪八十万的架构师 对于工作多年的程序员而言,日后的职业发展无非是继续专精技术.转型管理和晋升架构师三种选择. 架构师在一家公司有多重要.优秀架构师需要具备怎样的素质以及架构师的发展现状三个方面来分析 程序员如何才能晋升为优秀的高薪架构师? 希望通过本文让程序员们了解架构师的市场行情,了解架构师的发展前景,并帮助你更清晰地做出职业规划. 架构师在一家公司有多重要 架构师对一家公司.一个项目有多重要?我们来看一看调查的数据—— 架构师在公司中担当着「IT架构灵魂