

























做Android开发很多年了,多次思考过App开发和SDK开发在架构方面及其他各个方面的异同,以及各自方向开发时需要注意的事项。
下面是我个人对SDK开发的理解及相关经验分享。
SDK即Software Development Kit,通常是为辅助开发某类软件,而编写的特定的软件包、框架集合。同App开发不同,一般我们开发的SDK为相对独立的业务、拥有特定功能的工具集合,使用SDK的一般为B端的用户,一般是集成SDK来实现相关功能的App端开发者,我们会以 代码 + Demo + 文档 的方式交付。
集成 Demo 通常是一个简单的 App,用来展示如何快速地接入 SDK。Demo 的源码需要保证方便使用者参考,其版本变更策略和 SDK 版本的变化保持一致。它的开发原则也要与 SDK 一致,确保高质量的交付。
接入文档用来告诉 SDK 使用者,如何使用 SDK、详细使用步骤和可能发生的问题。文档内容包括:更新记录、基本信息、API 说明、集成步骤、FAQ等。好文档的标准就是清晰明了,通俗易懂。一个完全不懂 SDK 的开发者看着文档就能对接,对于经常遇到的问题要逐条列出,专业名词要有对应的解释。
开发SDK的人可以注意下以下几个点:
SDK是需要我们提供给其他开发者使用的,简洁和高效的对接是非常有必要的。如果对接一个SDK很繁琐,或者需要关心很多业务之外的问题,那么说明SDK的设计就是存在问题的。
SDK本身就是一些公用的代码或者业务的集合,内部做了很多工作,实现了很多细节。 对于开发者而言,一个好的SDK应该是简洁易用的,不应该花费太多时间去对接。通过阅读Demo的代码和文档,就能对接好,才是SDK易用性的体现。
我们必须要保证设计的SDK是稳定的,所以在SDK的设计及实现阶段,最好做到以下几点:
a). 尽量保证对外提供的API是稳定的,非特殊情况不要更改。
b). 必须要保证有稳定的业务支撑API的使用。
c). 尽可能屏蔽掉SDK的迭代过程,尽量让用户升级时只需要关注版本号即可,避免出现不必要的升级适配操作。
性能问题,无论是普通的SDK开发还是应用的开发,都需要考虑到。作为SDK的开发者,我们必须时刻注意到性能问题,否则会影响到接入SDK的App的整体性能。
一般的最需要关注的就是内存及电量这块的使用情况。
a). 优化SDK的内存占用。一般 SDK 和 App 运行在同一进程,此时 SDK 要管理好自己占用的内存,合理分配,注意释放,并避免出现内存抖动。
b). 优化电量消耗。尽量避免在后台运行一些不必要的服务,并优化SDK使用时的CPU使用情况。
API 设计在任何开发中都非常重要,许多时候软件的质量好坏体现在 API 的设计上。
在普通的应用开发中,API 只会在开发人员间流通,不会暴露给非本应用开发的其他人员。但是 SDK 作为一种服务,需要向开发者暴露一部分 API,这样才能使用 SDK 的服务。
SDK提供给别人使用的时候,结构清晰非常重要,以下几个点,可以供大家参考:
SDK提供给别人使用的时候,方便调试是很重要的,能减少对接过程中的问题反馈,以下几点可以参考:
一般开发SDK是需要包含的辅助功能如下(这里指的是除去主业务功能之外的其他功能):
以上这些功能不仅可以方便开发和调试,也提高了测试同学的效率。
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。