首页 > 其他分享 >SDK究竟是什么?

SDK究竟是什么?

时间:2022-09-05 12:46:28浏览次数:79  
标签:什么 接口 API 开发者 SDK 数据 第三方 究竟

最近经常听到同事或开发同事讲到SDK,所以挺好奇SDK到底什么?

所以百度了一下,搜索到一篇文章,讲解了很详细,现在跟大家分享一下

转载链接:SDK究竟是什么? - 知乎 (zhihu.com)

SDK是什么?

SDK,即Software Development Kit的缩写,译作软件开发工具包。软件开发工具包是一个覆盖面相当广泛的名词,你甚至可以这么理解:辅助开发某一类软件的相关文档、范例和工具的集合都可以叫做SDK。

看到这儿你可能没懂SDK究竟是什么,别着急,慢慢往下看~

相信有过java学习经历的小伙伴们都知道,要运行java需要先在电脑上安装jdk,而jdk其实就是java SDK 。其安装过程就是下载一个EXE(Windows下)的应用程序,看起来好像jdk是一个应用程序。

然而实际上这个应用程序只是jdk的安装向导,它通过后台操作帮你在电脑上安装了Java的运行环境、工具和Java基础的类库,以上这些东西组合起来才是JDK的核心内容。

再举一个例子,我们的手机每天都会收到许多来自APP或系统的新闻推送、促销活动广告、短信验证码等等,它们大多都属于法规条文里规定的“第三方应用或服务”。

正是这些集成在APP里的第三方工具包,能够协助APP更加高效率、低成本地实现注入导航、支付、统计、广告等一系列功能。SDK就是这个例子里说到的第三方应用或服务。

相信通过以上两个例子,大家已经明白SDK究竟是什么了,自然也能明白,SDK并不单单是一个开发工具或程序。

SDK与API的区别

如果你还记得前边文章中企通查为大家介绍过的API,可能会有点疑惑:API可以调用第三方程序,SDK也可以使用第三方的软件,这两者之间有什么区别吗?

简单地讲,API是前端调用后端数据的一个通道,就是我们俗说的接口,通过这个通道可以无需调用源代码直接访问到后端的数据。

而SDK相当于是一个开发者集成的环境,API则是基于SDK之下的数据接口,可以在SDK的环境之下调用API数据。

你可以把SDK想象成一个虚拟的程序包,在这个程序包中有一份做好的软件功能,这份程序包几乎是全封闭的,只有一个小小接口可以联通外界,这个接口就是API。

SDK的组成

一个完整的SDK应该包括以下内容:

1.接口文件和库文件

笼统地说就是先前提到过的API。通过将底层的代码进行封装保护,提供给用户一个调用底层代码的接口。

2.帮助文档

用来解释接口文件和库文件(即API)的功能,以及介绍相关的开发工具,操作示例等。

3.开发示例

即简单的成品DEMO展示,包括源代码。

4.实用工具

通常是指用来协助用户进行二次开发的工具,比如二次开发向导、API 搜索工具、软件打包工具等。

SDK与信息安全

目前在国内互联网环境中大部分的SDK都是免费的,为了鼓励开发者使用其系统或者语言,许多SDK是免费提供的。

软件工程师通常从目标系统开发者那里获得软件开发包,也可以直接从互联网下载。

 

 

图:来源于《常用第三方SDK手机使用个人信息测评报告》

 

从SDK的被使用情况来看,App对SDK有较强的依赖性,SDK安全俨然已经成为整个移动互联网生态中极其关键的一环,它们收集哪些信息、如何使用和保护这些信息也就十分重要。

因此,由第三方SDK引入的安全问题也不容忽视。比如由于开发者的安全能力水平有限而导致的SDK安全漏洞;或是开发者故意预留“后门”,以便收集用户信息或执行越权操作。

截至目前,国内对于第三方SDK超出必要范围收集其他信息尚没有明确的相关条文规定。

奥德塔动态大数据资源中心基于互联网+大数据+人工智能技术构建,通过分布式数据采集集群、数据特征提取、机器学习和深度学习算法模型、NLP文本分析等技术实现了数据的实时更新、高度关联、动态下载、主动推送,为企业采购风控、销售客户评估、Al精准获客、精准招商、投融资、高校科研机构、政府事业单位提供了全方位的数据支持和数据应用解决方案;基于数据资源中心和分析专家团队为客户提供了行业产业分析报告、发展趋势报告和相关指数报告等专业咨询服务支持。

标签:什么,接口,API,开发者,SDK,数据,第三方,究竟
From: https://www.cnblogs.com/pwj2lgx/p/16657690.html

相关文章

  • idea sdk源码分析
    idea中支持编译build,构建语言一般需要一个sdk。1.什么是sdkidea官方原文如下:EveryprojectusesaSoftwareDevelopmentKit(SDK).ForJavaprojects,SDKisreferr......
  • 你想知道什么是数据科学吗?阅读此内容以了解。
    你想知道什么是数据科学吗?阅读此内容以了解。介绍在随机的一天,您只需进入您的Instagram,点击用户故事并收到一些关于您正在搜索的原声吉他的广告。之后,您的屏幕上会出......
  • 什么是机器学习?
    什么是机器学习?参考了网络上的各家说法,一句话概括就是数据学习,机器决策(对应输入和输出)。机器学习通常解决分类,回归等问题。1分类算法&机器学习一张图概括分类算法流程......
  • hi3516开机修改内存和MMZ分配并安装SDK驱动
    1. 拿到的开发版中已经安装最小系统,连接串口开机,设置启动文件#配置IP地址ifconfigeth0172.16.96.151netmask255.255.248.0routeadddefaultgw172.16.100.1#......
  • 什么?MySQL 8.0 会同时修改两个ib_logfilesN 文件?
    GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源。GreatSQL是MySQL的国产分支版本,使用上与MySQL一致。作者介绍:孙黎,GreatDB认证DBA问题现象描述......
  • 自定义反应钩子。它们是什么以及它们有什么帮助?
    自定义反应钩子。它们是什么以及它们有什么帮助?Photoby劳塔罗·安德里亚尼on不飞溅介绍ReactHooks是在React.jsv16.8中引入的。它们允许我们在功能组件中使......
  • 为什么你做得比你想象的要好
    为什么你做得比你想象的要好被忽视的成功迹象冒名顶替综合症很难克服,我们中的一些人从来没有真正觉得自己属于自己的角色。我今天早些时候与我的经理交谈,他向我承认他仍......
  • 世界模型、薛定谔猫和神经网络之间有什么联系?
    世界模型、薛定谔猫和神经网络之间有什么联系?资源几个世纪以来,好奇的头脑一直在试图破解我们周围世界的结构。大多数人都会同意,任何科学分支都遵循相同的目标——试图......
  • 大小端存储是什么鬼?
    以下内容为本人的著作,如需要转载,请声明原文链接微信公众号「englyf」https://www.cnblogs.com/englyf/p/16656222.html大小端存储的划分是为了解决长度大于一个字节的数......
  • 1.try-except 2. if 0<=score<=1.0 3. print加引号是为什么
    Assignment3.3Writeaprogramtopromptforascorebetween0.0and1.0.Ifthescoreisoutofrange,printanerror.Ifthescoreisbetween0.0and1.0,pri......