什么是 SDK?
通俗而言:
1、其实很简单,SDK 就是 Software Development Kit 的缩写,中问意思是: 软件开发工具包。
2、这是一个覆盖面相当广泛的名词,可以这么说:
辅助开发某一类软件的相关文档、范例和工具的集合都可以叫做“SDK”。
PS:(这里插一段关于抽象的理解的话:
抽象就是从众多的事物中提取出共同的、本质的特征,而舍弃非本质的特征。
例如苹果、香蕉、香梨、葡萄、桃子等,他们的共同特征就是水果。得出水果概念的过程,就是一个抽象的过程。
那么要抽象,就必须进行比较,没有比较就无法找到在本质上共同的部分。共同特征是指哪些能把一事物与其他事物区分开来的特征,这些具有区分作用的特征又称本质特征。
因此抽取事物的共同特征就是抽取事物的本质特征,舍弃非本质的特征,所以抽象的过程也是一个裁剪的过程。
在抽象时,同于不同,决定于什么角度上来抽象。抽像的角度取决于分析问题的目的)
3、为了解释 “SDK” 不得不引入 API、动态连接库、导入库等概念
(1)API (Application Programming Interface):
是操作系统留给应用程序的一个调用接口,应用程序通过调用操作系统的 API 而使操作系统去执行应用程序的命令。
(2)DLL(Dynamic Link Libary)动态连接库:
我们经常看到一些 .dll 格式的文件,这些文件就是动态连接库文件,其实也是一种可执行文件格式。跟 exe 文件不同的是,dll 文件不能直接执行,他们通常由 .exe 在执行时装入
内含有一些资源以及可执行的代码等。其实 windows 的三大模块就是以 DLL 的形式提供的(Kernel32.dll User32.dll GDI32.dll),里面就含有了 API 的函数执行代码,为了使用 DLL
中的 API 函数,我们必须要有 API 函数的声明(H)和其 导入库(LIB),函数的原型不难理解,那么导入库又是做什么的呢?
(3)导入库:
导入库是为了在DLL 中找到 API 的入口点而使用的,所以,为了使用 API 函数。我们要又跟 API 所对应的.H 和 .LIB 文件,而 SDK 正式提供了一整套开发 Windows 应用程序所需的
相关文件、范例和工具的“工具包”
到此为止,我们才真正的理解 SDK 的含义,由于 SDK 包含了使用 API 的必须资料,所以人们也常把仅使用 API 来编写 Windows应用程序的开发方式叫做“ SDK 编程”。
而 API 和 SDK 时开发 Windows 应用程序所必须的东西,所以其他编程框架和类库都是建立在他们之上的,比如 VCL 和 MFC,虽然比起"SDK 编程"来有着更高的抽象度,但这丝毫不妨碍他们 在需要的时候随时直接调用 API 函数。
什么是 SDK?的更多相关文章
- 配置android sdk 环境
1:下载adnroid sdk安装包 官方下载地址无法打开,没有vpn,使用下面这个地址下载,地址:http://www.android-studio.org/
- 阿里云直播 C# SDK 如何使用
阿里云直播SDK的坑 1.直播云没有单独的SDK,直播部分被封装在CDN的相关SDK当中. 2.针对SDK,没有相关Demo. 3.针对SDK,没有相关的文档说明. 4.针对SDK的说明,官网上的说明 ...
- 使用Visual Studio SDK制作GLSL词法着色插件
使用Visual Studio SDK制作GLSL词法着色插件 我们在Visual Studio上开发OpenGL ES项目时,避免不了写Shader.这时在vs里直接编辑shader就会显得很方便. ...
- iOS开发之App间账号共享与SDK封装
上篇博客<iOS逆向工程之KeyChain与Snoop-it>中已经提到了,App间的数据共享可以使用KeyChian来实现.本篇博客就实战一下呢.开门见山,本篇博客会封装一个登录用的SD ...
- Intel Media SDK H264 encoder GOP setting
1 I帧,P帧,B帧,IDR帧,NAL单元 I frame:帧内编码帧,又称intra picture,I 帧通常是每个 GOP(MPEG 所使用的一种视频压缩技术)的第一个帧,经过适度地压缩,做为随 ...
- Android SDK 在线更新镜像服务器资源
本文转自:http://blog.kuoruan.com/24.html.感谢原作者. 什么是Android SDK SDK:(software development kit)软件开发工具包.被软件 ...
- TYPESDK手游聚合SDK服务端设计思路与架构之二:服务端设计
在前一篇文中,我们对一个聚合SDK服务端所需要实现的功能作了简单的分析.通过两个主要场景的功能流程图,我们可以看到,作为多款游戏要适配多个渠道的统一请求转发中心,TYPESDK服务端主要需要实现的功能 ...
- TYPESDK手游聚合SDK服务端设计思路与架构之一:应用场景分析
TYPESDK 服务端设计思路与架构之一:应用场景分析 作为一个渠道SDK统一接入框架,TYPESDK从一开始,所面对的需求场景就是多款游戏,通过一个统一的SDK服务端,能够同时接入几十个甚至几百个各 ...
- Android SDK 与API版本对应关系
Android SDK版本号 与 API Level 对应关系如下表: Code name Version API level (no code name) 1.0 API level 1 ( ...
- Kotlin与Android SDK 集成(KAD 05)
作者:Antonio Leiva 时间:Dec 19, 2016 原文链接:https://antonioleiva.com/kotlin-integrations-android-sdk/ 使用Ko ...
随机推荐
- 教你如何用python和pygame制作一个简单的贪食蛇游戏,可自定义
1.效果图 2.完整的代码 #第1步:导出模块 import pygame, sys, random from pygame.locals import * # 第2步:定义颜色变量,在pygame中 ...
- 【 Struts2 过滤器】
LoginInterceptor package k.util; import com.opensymphony.xwork2.ActionInvocation; import com.opensym ...
- Docker - Docker 镜像 简介
概述 简单介绍一下 docker 镜像的概念 1. 背景 复习 docker 镜像是 docker 最基础, 最重要的概念之一 所以正式使用之前, 最好有所理解和认识 2. 镜像 概述 简单描述 理解 ...
- 设备驱动基础学习--poll
使用非阻塞I/O的应用程序通常会使用select()和poll()系统调用查询是否可对设备进行无阻塞的访问,这两个系统调用最终又会引发设备驱动中的poll()函数被执行,所以我们的问题就集中到了如何编 ...
- [C++_QT] 同步方式提交GET和POST请求
#开始 最近在做一个需要用到提交HTTP请求的工具 但是遇到一个问题 如下 在Qt中提交一个get请求之后(或者post) 在收到回复之后会调用之前连接好的槽函数 但是问题就是在主调函数中不知道什么时 ...
- 接口测试,如何构建json类型的参数值
1.json类型参数传入,实际传输的时候是转化为一中字符串类型的格式,所以如data=”{}”,该参数用引号包含传入,“{}”里面的key都应该为双引号,value为字符串的也应该是双引号,最后一个v ...
- finally语句块一定会被执行吗
finally语句块一定会被执行吗? 答案: 不一定 1. 发生异常的代码必须在try 代码块中,才有可能被执行 public class MyTest { public static void ma ...
- ZOJ - 3203 Light Bulb(三分)
题意:灯离地面的高度为$H$,人的身高为$h$,灯离墙的距离为$D$,人站在不同位置,影子的长度不一样,求出影子的最长长度. 思路:设人离灯的距离为$x$,当人走到距离灯长度为$L$时,人在墙上的影子 ...
- Python - 八大排序算法
1.序言 本文使用Python实现了一些常用的排序方法.文章结构如下: 1.直接插入排序 2.希尔排序 3.冒泡排序 4.快速排序 5.简单选择排序 6.堆排序 7.归并排序 8.基数排序 上述所有的 ...
- 线段树——I hate it
[问题描述] 很多学校流行一种比较的习惯.老师们很喜欢询问,从某某到某某当中,分数最高的是多少.这让很多学生很反感. 不管你喜不喜欢,现在需要你做的是,就是按照老师的要求,写一个程序,模 ...