学习笔记:浅谈iOS的SDK与API

https://blog.csdn.net/lvchenqiang_/article/details/79077679

知识点:日常的开发中,我们经常会遇到这样的开发需求。比如 不能提供源码,暴露部分接口出去、 项目功能组件模块化等。这个时候,我们一般就想到了sdk开发。在OC的开发中,我们涉及到的一般是静态库(.a)或者动态库(.framework)(注:不是所有的.framework就一定是动态库)。之前,使用OC尝试过SDk的开发,感觉还是比较繁琐,接下来我们就使用Swift进行SDK开发。

知识点:函数库分为静态库和动态库两种。



  静态库在程序编译时会被连接到目标代码中,程序运行时将不再需要该静态库。

  动态库在程序编译时并不会被连接到目标代码中,而是在程序运行是才被载入,因此在程序运行时还需要动态库存在。

  本文主要通过举例来说明在Linux中如何创建静态库和动态库,以及使用它们。

  在创建函数库前,我们先来准备举例用的源程序,并将函数库的源程序编译成.o文件。

 作为iOS开发人员,我们经常听到SDK,API。可是它们到底是什么?有什么作用呢?,有的人总是觉得它们太抽象了。

    接下来就让我们一起谈谈,因为技术知识无穷的,所以我说的可能会有一些不准确的地方,所以也希望广大的博友提出指正,大家一起进步~~

    SDK

     SDK,英文全称Software Development Kit,中文意思就是软件开发包。这个开发包通常都会包含API函数库、帮助文档、使用手册、辅助工具等资源。意思就是,SDK事实上是开发所需资源的一个集合。而API也被其包含其中,这个我们下面再讲。而开发iOS项目我们一般都会用到Xcode,那么SDK与XCode又是什么关系呢?两者的关系就像操作系统和软件的关系,操作系统给应用程序提供平台,你用软件实现你想用的功能。Xcode给SDK提供平台,你用SDK来编程,Xcode只是一个IDE,用于开发的一个工具而已,你也可以不用Xcode来开发。只是它是苹果官方比较提倡的,而且相对来说最大众,最好用而已。而SDK才是开发的灵魂,也就是说你所正真要用的东西。

     值得一提的是,现在直接说SDK都是代指开发Windows平台下的应用程序所使用的SDK,不过总的来说SDK的定义与作用都是差不多的。由这个我们也不难看出来,其实不管在什么操作平台下,什么编译语言。我们所用的本质规则都是一样的,同时我们也可以在从事自己的专业的时候,也借鉴一下别的领域,说不定就有意外的收货和感悟。

    最后说一下,有的人之所以认为SDK难以理解,难以具体化,实例化。其实我觉得这正是SDK的广义性造成的,SDK 还经常包括示例代码、支持性的技术注解或者其他的为基本参考资料澄清疑点的支持文档。正是因为它包含的东西多,广,深。所以SDK很难简单的,明了的定义在那里。这点大家也不要太纠结,我们以后接触的多了也就自然有了它的大致轮廓。

    API

    刚才说了,API是包含在SDK之中的,所以API的广义性就相对来说小一点。API这个词,全称叫Application Programming Interfaces(应用程序编程接口)。简单地说,就是一套套的要求,用来管理应用程序之间的沟通。API并不是什么新事物,在你使用PC或笔记本时,正是API让数据在程序之间传输。例如,把一个LibreOffice文档中的片断切割出来并传输到Excel表格上。系统级的API让LibreOffice这类程序能够运行在Windows这样的操作系统上。

   也可以说操作系统留给应用程序的一个调用接口,应用程序通过调用操作系统的 API 而使操作系统去执行应用程序的命令(动作)。API是通过把程序内部的一些功能有限地向外开放来做到的,这使得应用之间可基于各自的利益分享数据,同时不需要开发者公布所有的软件代码。对开源项目来说也是如此。你可以把它看成是一扇门、窗或杠杆,不管用什么比喻,一个程序和外面的软件世界的沟通就是由API定义的。

   Mac OS X上的五大API  Cocoa,Carbon,POSIX,X11和Java

   接下来我们说说比较重要和常用的API,Cocoa。Cocoa 应用程序一般在苹果公司的开发工具Xcode(前身为Project Builder)和Interface Builder上用Objective-C写成。不过,通过Java bridge、PasCocoa、PyObjC、CamelBones以及RubyCocoa等桥接技术,Java、Clozure CL、LispWorks、Object Pascal、Python、Perl、Ruby等其它工具或者语言也可以用来开发 Cocoa 应用

   说道API,就不得不说说Cocoa Touch,Cocoa Touch由苹果公司提供的软件开发API, 用于开发 iPhone\iPod\iPad上的软件。也是苹果公司针对iPhone应用程序快速开发提供的一个类库。此库以一系列框架库的形式存在,支持开发人员使用用户界面元素构建图像化的事件驱动的应用程序。

     

  这个大家一定都不陌生,我们开发时经常要建的类,这样一看就直观多了。

    那么问题来了,Cocoa与Cocoa Touch就是一个单词的差别,有什么区别吗?  

两者都包含OC运行时的两个核心框架:
Cocoa包含Foundation和AppKit框架,可用于开发Mac OS X系统的应用程序
Cocoa Touch包含Foundation和UIKit框架,可用于开发iPhone OS 系统的应用程序
Cocoa时Mac OS X的开发环境,Cocoa Touch是 Iphone OS的开发环境

现在大家明白了为什么我们经常用的Cocoa Touch比较多了吧,因为我们开发的大部分都是手机APP,所以用到Cocoa Touch也就自然了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值