iOS底层,ios分哪几层

1 , ios分哪几层OSI七层模型介绍 OSI是一个开放性的通行系统互连参考模型,他是一个定义的非常好的协议规范 。OSI模型有7层结构,每层都可以有几个子层 。下面我简单的介绍一下这7层及其功能 。OSI的7层从上到下分别是 7 应用层 6 表示层 5 会话层 4 传输层 3 网络层 2 数据链路层 1 物理层 {0}
2,iOS底层原理动态库静态库Q1:什么是库(Library) ?Q2:静态库和静态库的区别?静态库动态库Q3:framework为什么既是静态库又是动态库?Q4:.a 与 .framework有什么区别?Q5:swift使用动态库?Q6:swift使用静态库?Q7:CocoaPods中静态库和动态库?Q8:可以在runtime时加载动态库吗?Q9:在使用静态库时,某些Pod不支持module怎么办? {1}
3,ios的底层是什么语言iOS开发主流编程语言是Object-C以及Swift 。Objective-C主要用于iOS开发 。Objective-C在C的基础上,加入面向对象特性而成的编程语言 。Swift是苹果公司在2014上发布的全新开发语言 。Swift内在依然是Object-C,但Swift大大地降低了开发门槛 。常规的C和C++亦可用于iOS开发 。但使用C和C++做ios开发的人越来也少 。【iOS底层,ios分哪几层】{2}
4,iOS底层ro rw rwe分类加载进来的时候,对原始的数据做出改变 , 就会产生脏数据class_rw_t 读取-编写dirty memory运行时会发生改变的内存 类结构被使用 昂贵class_rw_ext_tclass_ro_t(ro 只读/存成员变量)clean memory 加载后不会改变的内存 只读 可被移除属性和成员变量的区别基本数据类型:string int double float char对象类型: xyclass *xy编译成对象的就是实例变量UIButton *yourButton;int count;id data;}@property(nonatomic, strong) UIButton *myButton;成员变量:yourButton count data实例变量:yourButton data属性:myButton@property(nonatomic, copy) NSString *name;setName->objc_setProperty上层都是set方法 。所以下层统一objc_setPropertyivar sel->IMP(重定向到objc_setProperty)根据什么条件创建objc_setProperty?IsCopy (不考虑strong)copy有set方法 无copy修饰没有set方法strong直接内存平移,直接赋值实力方法、对象方法 在类里面 避免浪费内存为什么有元类?元类存储类方法为什么元类获取类方法能拿到类的类方法?元类获取类方法是获取元类的对象方法,而类的类方法就是元类的对象方法 。底层没有类方法,全是对象方法 。元类中为什么能找到类的对象方法?类为什么能获取类方法的IMP?寻找IMP过程就是方法的查找流程,即使找不到也会返回_objc_msgForward为什么类的isa和元类的一样 , 而对象的isa不一样?isa里面存储的类的信息,而类的isa只存储元类的地址 。BOOL re1 = [(id)[NSObject class] isKindOfClass:[NSObject class]];// 1 类方法BOOL re2 = [(id)[NSObject class] isMemberOfClass:[NSObject class]];// 0 类方法BOOL re3 = [(id)[LGPerson class] isKindOfClass:[LGPerson class]];// 0 类方法BOOL re4 = [(id)[LGPerson class] isMemberOfClass:[LGPerson class]];// 0 类方法NSLog(@" re1 :%hhd\n re2 :%hhd\n re3 :%hhd\n re4 :%hhd\n",re1,re2,re3,re4);5,iOS底层知识学习有没有什么好的建议可以看看Mac相关的书籍,底层都一样 。从OpenGLES学起,先弄懂图形界面渲染原理,这部分相比其他部分还算是比较形象的 。再下一步就可以研究一下iOS系统对进程线程的管理 。具体次序可以自己安排 , 总之就是个个击破而不是找一本大而全的书从头开始读,那样很容易失去信心和兴趣 。这个需要学习c,c++的知识 , 因为操作系统就是用它开发出来的 。6 , WP8和IOS哪个系统底层更先进ios 和 OS X都源于 UNIX , Linux也是基于UNIX,UNIX的系统稳定性很好 , 比windows NT内核的win 8,7,vista,xp都稳定;WP7是Win CE内核,没有Win NT内核稳定;WP8是Win NT内核 也就是说和桌面版的操作系统核心是一样的啦;Android 是基于 Linux 的系统;各种系统的编写语言不是单一的各种语言写各种擅长的,最底层会用到汇编语言之类的机械语言,比如驱动啦神马的...其他部分C , C#,C++,Object-C相配合啦;楼上各位大神见笑啦 先进的IOS系统IOS是 LINUX而来的,,,WP8和WINDOWS好像也是LINUX而来的,WINDOWS我不是很清楚,好像是C语言写的 。。。连谷歌的安卓系统都是LINUX底层 。。。。其实都是底层都是来自于LINUX 。。。

    推荐阅读