什么是API?(详细解说)
创始人
2024-06-02 00:47:50
0

        编程资料时经常会看到API这个名词,网上各种高大上的解释估计放倒了一批初学者。初学者看到下面这一段话可能就有点头痛了。

API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。——百度百科

这篇文章我们就来通俗易懂地解释下什么叫做 API,你只需要花费1分钟时间。

从文件操作开始谈API。  获取key和密钥

以C语言为例,我们使用fopen()函数可以打开一个文件,感觉非常简单。文件保存在硬盘上,要经过复杂的处理才能显示,这些细节对我们来说是透明的,由操作系统完成。也就是说,我们调用fopen()函数来通知操作系统,让操作系统打开一个文件。

那么,我们如何告诉操作系统打开文件呢?

看似简单的操作到底层都非常复杂,打开文件首先要扫描硬盘,找到文件的位置,然后从文件中读取一部分数据,将数据放进I/O缓冲区,放进内存;这些数据都是0、1序列,还要对照ASCII表或Unicode表”翻译“成字符,再在显示器上显示出来。这个过程如果要让程序员来完成,那简直是噩梦!

怎么办呢?操作系统想了一个很好的办法,它预先把这些复杂的操作写在一个函数里面,编译成一个组件(一般是动态链接库),随操作系统一起发布,并配上说明文档,程序员只需要简单地调用这些函数就可以完成复杂的工作,让编程变得简单有趣。这些封装好的函数,就叫做API(Application Programming Interface),即应用程序编程接口。

说得更加通俗易懂一些,别人写好的代码,或者编译好的程序,提供给你使用,就叫做API。你使用了别人代码(或者程序)中的某个函数、类、对象,就叫做使用了某个API。

操作系统 API。

 

        操作系统已经为我们实现了很多功能,它们都被封装成了一个一个的函数,有成百上千个之多,这些函数就叫做 API。程序员要想使用某个功能,只需要调用相应的函数。Windows、Linux、Mac OS、Unix 这些常见的操作系统大部分功能都使用C语言开发,它们的 API 也以C语言的形式呈现。操作系统 API 数目众多,官方必须提供详细的说明文档(Windows API 的说明文档叫 MSDN),程序员在使用 API 时,需要频繁地查阅这些文档。 

Windows API控件与消息函数 ,如:

                 1.AdjustWindowRect 给定一种窗口样式,计算获得目标客户区矩形所需的窗口大小。

                 2.AnyPopup 判断屏幕上是否存在任何弹出式窗口。

                 3.ArrangeIconicWindows 排列一个父窗口的最小化子窗口。

编程语言 API

各种编程语言自带的标准库其实也是API。这些API由编程语言的开发者们编写,安全、高效、健壮,为我们实现了常见的功能,让我们不用再重复造轮子。

C语言 API 以函数的形式呈现,例如 printf()、scanf()、fopen() 等。

Java API 主要以类的形式呈现,例如 String、Thread、Date 等。

C++ 是在C语言的基础上进行的扩展,所以 C++ API 既包含函数也包含类。

第三方库(框架)

libxml2——xml的c语言版库,2个项目使用过,win和Linux下都很犀利~~比较快捷

CURL—— 这个用的主要是使用了他的封装的http和https的请求,比较犀利,其中包含了openssl的内容

iconv——功能强大的编码格式转化库,UTF8,Unicode等互相转化很方便

openssl——C的开源密库,可以进行证书加密和https的访问的模拟提交可以和CURL配合使用

cocos2d——2D游戏引擎,相比较传统的UI自己控制的重画

OpenCV——开源图像库

还有很多第三方(非官方)的组织机构、公司、个人提供的代码,也是一种 API。这些代码有的免费,有的收费;有的开源,有的闭源。这些代码大都针对某个特定的应用领域编写,有时候被称为框架或者库。例如基于C语言的图形界面库GTK,基于C++的网络库ACE,基于Java的大数据处理平台Hadoop,基于Python的Web开发框架Django,基于JavaScript的前端开发框架React。

全球最大的代码托管网站GitHub也贡献了很多优秀的代码,它们大都开源免费。作为开源代码库以及版本控制系统,Github拥有超过900万开发者用户。随着越来越多的应用程序转移到了云上,Github已经成为了管理软件开发以及发现已有代码的首选方法。。这些第三方的API数目众多,种类丰富,我们应该大胆去使用,尽量避免重复造轮子。

常见问题:

假设你想在你的窗体模块中声明一个函数,粘贴然后运行,VB会告诉你:编译错误...Declare 语句不允许作为类或对象模块中的Public(公共的) 成员。..看起来很糟糕,其实你需要做的只是在声明前面添加一个Private(私有的)。不要忘了,可是这将使该函数只在该窗体模块可用。. 在有些情况下,你会得到"不明确的名称"这样的提示,这是因为函数、常量或其他的什么东西共用了一个名称。由于绝大多数的函数都进行了别名化,亦即意味着你可以通过Alias子句使用其它的而不是他们原有的名称,你只需简单地改变一下函数名称而它仍然可以正常运行。

总结:API随处可见,它屏蔽了很多底层细节,实现了很多常用功能,大大简化了程序员的工作。用好API,事半功倍!

 

相关内容

热门资讯

vr设备是安卓系统吗,安卓系统... 亲爱的读者,你是否曾好奇过VR设备使用的操作系统是安卓系统吗?在这个虚拟与现实交织的时代,VR设备已...
安卓2.3系统输入法 你有没有发现,手机上的输入法真的是个神奇的小玩意儿?它就像你的私人秘书,帮你把心里的话变成文字,记录...
安卓12系统来电话黑屏,安卓1... 最近是不是你也遇到了安卓12系统来电话时手机黑屏的尴尬情况?这可真是让人头疼啊!手机屏幕突然变成了一...
小米9安卓9原生系统,极致性能... 亲爱的数码爱好者们,今天我要和你聊聊一款手机,它不仅在国内市场掀起了一阵热潮,更是让全球的米粉们为之...
安卓原生系统怎么搞定,实际应用... 你有没有遇到过安卓手机用久了,系统越来越卡,各种广告弹窗让人头疼不已?别急,今天就来教你怎么搞定安卓...
安卓系统oplayer怎么用,... 你有没有发现,安卓手机上的OPeLer播放器简直就是神器啊!不管是高清电影还是无损音乐,它都能轻松搞...
怎么设置开麦系统安卓,轻松开启... 你有没有想过,在安卓设备上设置一个开麦系统,让你的通话或者直播更加顺畅呢?这可不是什么高深莫测的技术...
安卓操作系统缩写英文,Expl... 你知道吗?在我们日常使用的智能手机中,有一个超级重要的东西,那就是安卓操作系统。它的缩写英文是“An...
怎么解除健康系统安卓,安卓设备... 手机里的健康系统安卓版,有时候就像是个小管家,无时无刻不在关注你的健康状况。但有时候,你可能会觉得它...
车载安卓系统更新失败,原因排查... 最近你是不是也遇到了车载安卓系统更新失败的烦恼?这可真是让人头疼啊!想象你正坐在车里,享受着音乐和导...
安卓12系统分区挂载,深度解析... 你有没有发现,随着科技的飞速发展,手机系统也在不断升级呢?这不,安卓12系统已经悄悄地来到了我们身边...
怎么把安卓系统刷win,深度解... 你有没有想过,把你的安卓手机刷成Windows系统,是不是听起来就像给手机穿上了西装革履,瞬间高大上...
英朗导航安卓系统,智能导航新体... 亲爱的读者,你是否曾在驾驶途中,因为导航系统的不稳定而感到烦恼?今天,我要给你介绍一款特别棒的导航神...
修改安卓系统软件下载,探索安卓... 你有没有想过,你的安卓手机其实可以更加个性化,更加符合你的使用习惯呢?没错,就是通过修改安卓系统软件...
道通安卓系统升级,智能出行新篇... 你知道吗?最近手机界可是热闹非凡呢!各大品牌纷纷推出新机,而那些老手机也迎来了新的生命力——那就是系...
安卓系统绘画素材app,安卓绘... 你有没有发现,现在手机上画画变得越来越流行了呢?尤其是安卓系统上的绘画素材app,简直让人爱不释手!...
安卓主板装大屏幕系统,打造极致... 你有没有想过,给你的安卓主板换个大屏幕系统,让它焕发新生呢?想象原本小小的屏幕瞬间变大,操作起来是不...
畅享属于安卓系统嘛,深度解析其... 畅享属于安卓系统吗?揭秘安卓的魅力与挑战想象你手中握着的智能手机,它不仅仅是一个通讯工具,更是一个小...
许哥人气系统下载安卓,人气飙升... 你有没有听说最近许哥人气系统在安卓平台上火得一塌糊涂?没错,就是那个能让你的手机瞬间变身成为人气王的...
苹果刷级安卓系统教程,详细教程... 你有没有想过,把你的苹果手机升级到安卓系统,体验一下不一样的操作乐趣呢?别惊讶,这可不是天方夜谭,现...