# app-sdk-api-standardization **Repository Path**: qiujiayu/app-sdk-api-standardization ## Basic Information - **Project Name**: app-sdk-api-standardization - **Description**: app sdk 开发及使用规范 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2019-07-29 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # App SDK 开发及使用规范 交流群:205502605 现在手游行业中,进行推广时,需要接入非常多的第三方的SDK,给产品的发布增加了非常多的成本,同时也给代码的管理带来了非常大的难度。如果这个行业中的SDK提供方和SDK的使用方,有机会能坐在一起讨论这个事就好了,相信对这个行业的发展有些帮助。 引用[U8SDK创始人小黑——让手游SDK接入更简单](http://game.people.com.cn/n/2015/0720/c213917-27330656.html) 这篇文章的内容: ` 说到游戏上线,却让很多游戏开发商们措手不及。在国内,有太多大大小小的渠道,几乎所有的用户资源都掌握在他们手中。所以,辛辛苦苦搭框架,堆功能,测体验,OK,准备上线的时候,发现,还有将近几十家甚至几百家的渠道SDK要接入,顿时坠入无底深渊。而且,现在国内手游开发,一般都是基 Unity3D,Cocos2D-x等游戏引擎,游戏引擎本身就是支持跨平台的,所以对于游戏逻辑开发来说,一次开发完成,就可以立马打出针对 Android和IOS,甚至WP的包。 ` 如果游戏厂商能提高SDK接入的效率,最终受益的不仅是游戏厂商,还有SDK提供商,以及用户。相信这个账大家应该都会算。 在学习Node.js时发现,由于现在Javascript的用户在增加,所以出现了CommonJS和AMD 两种模块规范。然而现在App的盛行,SDK的使用也是非常多,难道我们就不能也出一个规范吗? 在我的工作过程中,也总结了一些经验,在这里供大家参考,也希望大家能发表自己的意见,为这个行业的发展做点贡献。(直接Fork,然后把你的意见添加进来,我来进行整理) ### SDK的开发规范 SDK大部份情况都是提供给项目组外,甚至是公司外部人员使用的,所以开发SDK的目标不仅保证功能和性能的达标,还需要达到节约沟通成本,提升“用户体验”的目标。所以需要实现以下几点: * API 要实现高内聚,隐藏复杂度,比如我们最常用的登录接口,只需要提供一个login方法和通知登录结果的callback回调就可以了; * 配置文件及配置内容,越少越好,减少维护成本,降低修改出错率;在接入时,每个SDK的配置项都需要去理解做什么用的,如何使用,这样给接入带来很高的成本; * 配置参数尽量可以通过代码来修改,这样使用方也就可以实现通过服务端来管理;对于做SDK二次封装的业务,就非常有用; * 避免配置文件及资源文件冲突,尽量使用公司名或项目名当前缀; * 方便切换测试环境与生产环境; * 不能占用独有资源(比如:Android中的Aplication); * 需要提供详细的说明文档和尽量接近能使用的实例工程; ### SDK的使用规范 在使用SDK时,如果是经常要维护的,那尽量还是开发一个中间件,把SDK的实现与自身APP的代码进行解耦合,然后通过“反射”技术注入。一方面可以把游戏代码与第三方SDK进行解耦,另一方面也方便代码的复用,可以用于其它产品。 我们公司因为业务特殊,需要把别人的SDK接入到我们的平台,然后再把封装后的SDK提供给游戏厂商使用。因为我们需要接入非常多的SDK,于是采用这种技术,把我们自己的业务与第三方SDK进行解耦。 在使用SDK方面,可以借鉴U8SDK的思想。