构建SDK项目开发分享

3 篇文章 0 订阅
3 篇文章 0 订阅

构建SDK项目开发分享

1、sdk简介

sdk字面意思是Software Development Kit,也就是软件开发工具集合。
就是一个工具包,里边包含了所有我们要提供给第三方接入,或者是方便开发的资源,或者说是接口。
通过接口可以很方便的实现一些功能。

2、sdk 分类

sdk按功能分类可以分为:

* 工具类sdk:比如android sdk,jdk等等都属于工具类
* 服务类sdk:比如讯飞sdk,腾讯im sdk等等

如果按照通信方式来分:

*跨进程通信类sdk:比如需要在应用之间进行通信或者说是应用之间的一个纽带。(调用微信的分享功能,或者手机的打电话,发短信,相机等等,都属于是跨进程通信)
*单一进程sdk,或者说主线程sdk:该sdk大部分是工具类sdk,用来提供某些独立的功能,比如统一的网络管理,文件管理,文本格式化。android中使用这个类型的sdk是最多的。因为现在的第三方的框架都属于这个类别。

3、sdk开发流程

java中要求程序的结构与sdk中的结构基本相同。要求程序类都是高内聚,低耦合,尽量降低sdk集成的简单性。
通过统一的接口来进程sdk的访问工作。
根据上边所提到的sdk的种类可以大体的绘制一下不同的sdk的开发流程。

跨进程通信类sdk
这里写图片描述

跨进程sdk主要流程是服务端通过统一的接口实现类来提供服务。
接口实现类使用单例保证程序运行过程中的唯一性。
客户端通过sdk提供的接口来调用service中接口所提供的功能。通过android的IPC机制来完成通信。
服务类sdk都需要提供错误回调机制,提交错误监听。
可以有必要的工具类以及其他需要在客户端用到的Model类。

单一进程sdk
这里写图片描述

单一进程sdk主要是通过sdk来提供所需要的的功能,不需要服务端来进行配合,使用起来简单。
按需来添加回调监听。
可以有必要的工具类以及其他需要在客户端用到的Model类。

4、结合擎话讯飞的sdk详细介绍跨进程sdk项目流程

sdk的开发:
1、确认sdk需求
2、确认sdk类别
3、按需求文档编写错误码,以及初始接口文档
4、根据sdk类别创建sdk流程图(如果需要时间控制可以绘制时序图)
5、按流程图编写sdk的整体结构,创建接口类以及接口实现类,错误码类,回调监听接口以及实现类
6、创建IPC通信服务类(android 使用Binder进行通信,aidl是通信接口类,Ipc通信使用Parcelable进行数据传输)
7、客户端通过bing IPC服务类进行连接,然后进行通信,获取想应服务。
8、服务端对要提供的服务进行真正的实现,以及功能执行过程中的异常处理,执行失败以及成功的回调处理。
9、完善接口文档,提供(sdk + sdk使用Demo)使用以及接口文档

擎话sdk代码接口

根据分析擎话讯飞sdk为跨进程sdk,然后根据接口编写初始接口文档

创建流程图

这里写图片描述

根据上图创建需要的类,然后Client 通过QHServiceManager进行初初始,绑定远程服务,通过擎话App的远程服务提供最QHSercie来提供服务,服务最终实现在QHServiceInterfaceIml类中。


import com.qinghua.car.aidllibrary.OnServiceListener;

/**
 * Created by chenpengfei on 17/5/31.
 * 远程服务接口
 */

public interface QHServiceInterface {

    // 打开app。
    public void startApp();

    // 进入第几个直播间。
    public void enterRoom(String tipmsg,OnServiceListener listener);

    // 上一页 - 首页展示主播
    public void pageUp(OnServiceListener listener);

    // 下一页 - 首页展示主播
    public void pageDown(OnServiceListener listener);

    // 呼叫擎话小秘。
    public void callCustomService(OnServiceListener listener);

    // 主播间 送礼 玫瑰花金话筒。
    public void sendGift(String giftName,OnServiceListener listener);

    // 直播间 留言
    public void leaveMessage(long dur,String filePath,OnServiceListener listener);

    // 直播间换台 - 上一个
    public void livePrevious(OnServiceListener listener);

    // 直播间换台 - 下一个
    void liveNext(OnServiceListener listener);
    //退出直播间
    void exitRoom(OnServiceListener listener);
}

上边的所有工作都是为了最后功能实现所做的准备。
所以一个跨进程sdk的核心工作就是跨进程服务的连接 + 服务端最终功能实现。

最终接口开发完毕以后开发人员通过接入sdk来验证功能的完整性,即Demo的编写。
方便cp接入的时候可以有参考的对象。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值