SDK的中文名叫“软件开发工具包”(本文中将之简称为软件包或软件开发包),它被开发出来是为了减少程序员工作量的,有公司开发出某种软件的某一功能,把它封装成SDK(比如美颜SDK就是能够实现美颜功能的SDK),出售给其他公司做开发用,其他公司如果想要给软件开发出某种功能,但又不想从头开始搞开发,可以付钱省事。说到API和SDK,很多朋友容易把他们弄混,所以我们在这里把它们放在一起说:1、 仔细的解释你可以把SDK想象成一个虚拟的程序包,在这个程序包中有一份做好的软件功能,这份程序包几乎是全封闭的,只有一个小小接口可以联通外界,这个接口就是API。如果我们现在短视频中增加某个功能(比如美颜、萌颜、云存储)但又不想自己亲手去做这个功能,我们可以选择使用这个“SDK”软件包,我们把我们的程序连接上API接口,就可以使用SDK软件包里的功能了。2、 简洁的解释重新梳理一下就是:SDK=放着你想要的软件功能的软件包API=SDK上唯一的接口如果你想在自己的短视频app上开发一些SDK软件包中已有的功能,你可以把自己的短视频软件与SDK包上的API接口连接起来,以获得开发包中的功能。3、 形象的解释有一杯饮料,它的名字叫做“SDK”。饮料上插着吸管,吸管的名字叫“API”。我们把你的嘴唇叫做“短视频软件”如果你想让SDK饮料杯里的饮料进到你嘴里(让软件拥有SDK中的功能),你必须通过API这根吸管来实现(通过API连接你的软件和SDK软件开发包),否则你就喝不到饮料。SDK可以分为系统SDK和应用SDK所谓的系统SDK是为特定的软件包,软件框架,硬件平台,操作系统等应用时所使用的开发工具集合而应用SDK则是基于系统SDK开发的独立于具体业务而具有特定功能的集合。内容准确完整,一个优秀的SDK开发人员在编写文档前会做充分的接口场景调用验证,已保证内容的准确和完整。易读易用,SDK开发人员作为文档的第一个读者和使用者,在使用文档过程中应该有意识的降低自己的姿态,时常假想一个很low的开发者在阅读自己文档时候的样子,通过积极阅读和不断改进确保一个不是很擅长编程的开发者也能使用我们的SDK。 精简文档,一个优秀的SDK开发人员会通过减少重复、避免冗余、整洁代码等措施来精简文档的内容,同时这也减少了文档的维护成本。更新日志,文档描述清楚相对上个版本的所有变更(优化项酌情考虑是否添加)。SDK开发中,需要尽量避免依赖第三方库,使用通用的Android SDK自带的官方库能满足需求即可,以免引起不必要的冲突。或者三方库不要放到lib包下,默认打包进去封装过程中的aar二次打包问题;比如,不要为了一个简单的JSON数据转换就引入Fastjson 、Gson之类的第三方json解析转换库。 如果确实因为项目需要,要引入一些开源库,可以通过源码集成的形式引入,再更改一下包名,避免集成冲突。