构建SDK项目开发分享
来源:互联网 发布:西游记解读知乎 编辑:程序博客网 时间:2024/06/06 02:01
构建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 0
- 构建SDK项目开发分享
- 微信分享SDK开发
- Android SDK开发技术分享
- iOS SDK开发经验分享
- sdk开发项目心得
- Vuforia SDK---- AR开发vuforia 3D识别追踪项目分析分享
- Eclipse SDK构建J2EE开发环境
- 腾讯微博分享 SDK开发流程
- 腾讯微博分享 SDK开发流程
- android 5.0 sdk开发包分享
- 腾讯微博分享 SDK开发流程
- 微信开发:js sdk 分享(java)
- Android SDK 命令开发项目
- 【分享C#项目开发经验】
- 游戏项目开发经验分享
- 游戏项目开发经验分享
- 分享sdk
- 微信全接口封装SDK 20分钟构建微信项目
- 微服务
- 在IDEA下跑gradle构建的SpringBoot项目启动报“CreateProcess error=206, 文件名或扩展名太长”
- 32种掩码和反掩码
- OkHttp Retrofit RxJava 统一错误处理
- pthread_mutex_unlock实现
- 构建SDK项目开发分享
- 实现隐藏滚动条同时又可以滚动
- 【0019】navicat导入sql语句
- mysql 查询大于多少天的数据
- Java IO 流的实现机制
- JAVA问题定位大杂汇之java 虚拟机内存占用超出 -Xmx设置
- laravel--4 数据库操作
- seq2seq模型
- C++面向对象含义