这段时间接手了**魔盒的支付模块和供三方应用调用的支付SDK模块,这才发现SDK开发跟应用版本开发的理念不太相同。无线应用产品,版本更新越快越新可能就越开心,说明业务以及产品在不断发展、优化和改进;然而对于SDK来说,发布新版本的心情却是复杂的,开心又心塞... ... 开心的是有新功能,但是更多的是多版本维护带来的各种压力和成本,SDK一个版本的生命周期不可能像应用那么短,而且它带来的问题影响也会更加长久,接入方不可能轻易更换SDK版本,新功能要考虑到使用旧版SDK应用的适配性,因此要更加谨慎和慎重。

总的说来,一个好的SDK需要具备以下三个特性:

一、轻便且易扩展的SDK API

接入API一定要简单!要简单!要简单!重要的事情说三遍!对于SDK的客户端开发,虽然你可以任性地在不同版本随意的优化入参以及调用方式并且不会招致什么大问题。但是这对于接入SDK的开发来说,绝对是噩梦一般的存在。理想的SDK接入过程一定是非常“顺滑”的,哪怕不开文档只看接口,也能顺利接入,这才是一个设计良好的SDK。反之当SDK接入、更新的成本超过甚至逼近开发直接对接的成本时,这个SDK其实是失败的,而且也失去了应有的意义。

SDK也是一个产品,但是又有其特殊性:API一般说来要有一定的持久性和稳定性,因此需要在设计初期考虑到产品后期的业务发展趋势,提前留好接口的相关业务扩展参数。

二、已接入应用适配问题

保证已接入应用适配问题的关键在于两点:一个是极简集成、一个是分层设计。极简集成顾名思义就是把SDK做薄,只做最基本的业务参数传递和通道建立;分层设计则将SDK和业务核心模块区分了开来,这样可以让核心业务不受SDK版本的限制。

我所负责的**魔盒支付模块基本架构如下图所示:

支付架构图

采用这样的架构模式,业务方只需要在引入SDK jar包后加入短短几行代码,就可以把支付功能托付给支付核心模块来做,在不改变API的情况下,底层业务的更新可以直接供上层使用,无须再次接入新的SDK。

三、稳定性保障

SDK以及相关核心业务的稳定性也是至关重要,主要需要关注以下几点:

1、安全机制;

2、线程管理;

3、用户界面友好性;

4、内存使用情况;

5、CPU占用情况。

最后就是SDK的版本控制,个人觉得最好的版本状态是有三条分支:稳定版、开发版以及定制版。稳定版用于大面积的推广;开发版用于一些急于使用新功能的应用试用。稳定版本和开发版本的存在是为了提高SDK的版本质量,同时结合版本发布的一些策略,降低SDK版本质量对使用者的影响以及SDK的bug的影响范围。

android不同sdk版本控制,闲谈Android SDK开发相关推荐

  1. android sdk版本控制,1. 统一SDK版本管理配置

    为了提高项目开发效率,在实际项目开发过程中往往会引入一些开源框架,还有项目中使用的各种Module,当引入Module过多时最好提供一种统一的方式去管理版本号,如:compileSdkVersion. ...

  2. 【Flutter】Flutter 开发环境搭建 ( Android Studio 下 Flutter / Dart 插件安装 | Flutter SDK 安装 | 环境变量配置 | 开发环境检查 )

    文章目录 一.Flutter 学习资料 二.Flutter 开发环境搭建 三.Android Studio 环境安装 Flutter / Dart 插件 四.下载 Flutter SDK 五.设置 F ...

  3. adt+选择android+sdk,eclipse+adt+android SDK 开发搭建环境中遇到的问题

    [先copy下别人的东西作为讲解需要,别介意问题是我遇到的呵呵] 1.下载Eclipse3.7,登录http://www.eclipse.org/downloads/,下载Eclipse Classi ...

  4. OpenCV android sdk配置OpenCV android NDK开发实例

    OpenCV android sdk配置OpenCV android NDK开发实例 [尊重原创,转载请注明出处]http://blog.csdn.net/guyuealian/article/det ...

  5. android另类工具,[置顶] android应用程序开发另解及Android SDK工具集的另类用法

    转载请注明出处: LouisWang http://blog.csdn.net/louiswangbing/article/details/6606865 相信对于广大Android应用开发爱好者来说 ...

  6. Android SDK+Eclipse+ADT+CDT+NDK 开发环境在windows 7下的搭建

    Android SDK+Eclipse+ADT+CDT+NDK 开发环境在windows 7下的搭建 这几天一直在研究 Android SDK C/C++平台的搭建,尽管以前有成功在Windows X ...

  7. android人脸识别demo_C#开发实录:基于免费SDK实现人脸识别应用开发

    随着人脸识别技术应用范围不断扩展,如何在Windows C#上基于免费SDK实现人脸识别应用开发,正成为开发者们关心的话题之一. 对于该需求,我推荐虹软视觉开放平台的ArcFace 3.0,免费.离线 ...

  8. Android Studio使用AIDL技术进行SDK开发

    前面我们有介绍AIDL的基本用法: Android进程间通信--AIDL Android进程间通信--AIDL Binder连接池 现在我们来介绍利用AIDL来实现一个简陋的SDK,将获取用户信息的方 ...

  9. 虹软人脸识别 SDK 使用 Unity Android C# Java多语言开发 2021-09-06

    Unity接入虹软人脸识别Android版SDK == 自改aar包开发Android应用 下方有下载链接所有 demo aar 包== 文章目录 Unity接入虹软人脸识别Android版SDK 简 ...

  10. Android开发-在Android里接入阿里云推流SDK实现直播推流的功能

    前 言 如今,在国内移动互联网发展了几年的时间,移动开发技术也相对的成熟,在咱们日常使用的手机App中也少不了直播的功能,不管是娱乐类.游戏类.体育类还是教育类等的App都会有直播的功能,可以说直播的 ...

最新文章

  1. 【原创】VB利用堆栈实现算术表达式计算
  2. 《Python基础教程第二版》第二章-Python列表和元祖
  3. 主动,是因为在乎,不再联系,是因为感到自己多余
  4. django 快速搭建blog
  5. java远程监控服务器配置_JAVA VirtualVM远程监控配置
  6. eDMA结构及工作机理的简单介绍
  7. python-install-package-C++编译器问题---03
  8. docker lnmp php
  9. python 字符串 变量_检查变量是否为字符串的Python程序
  10. WordPress前台后台页面打开慢的解决方法
  11. VIM空格和TAB转换
  12. OpenResty无损升级内嵌nginx版本0DAY漏洞
  13. 安卓Android类原生系统官网集合
  14. Springboot+jwt+shiro实现用户权限控制
  15. 冒泡排序及其优化(三种优化)
  16. 2007年5月12日,地坛书市
  17. 网站盈利模式其实只有三种
  18. 二级计算机vf里的sql,计算机二级考试vf常用sql语句
  19. 微信小程序开发学习笔记一
  20. winpe加载raid_为WinPE添加RAID卡驱动的几种步骤

热门文章

  1. 先进核反应堆 ——新能源概论结课作业
  2. IntelliJ IDEA入门教程:如何使用工具窗口
  3. ArcGIS中高风险地区热力图制作
  4. html 城市选择 按字母排序吗,微信小程序实现按字母排列选择城市功能
  5. 采用加速度传感器的角度测量仪系统硬件电路设计_温度传感器电路
  6. 高压输电线路线夹温度监测系统装置
  7. 盘点前端开发常用的几款编辑器
  8. CentOS7.5安装WPS并解决字体报错
  9. 《人月神话》阅读心得
  10. STM32入门教程第一讲