粗浅的业务梳理
1. 需求: 设一个unity项目需要精准定位的功能.
2. 分析: 定位是一个比较复杂的类别, 涉及GPS数据解析,差错计算,楼宇间的基站定位. 繁琐又复杂;
3. 办法: 这个时候就看看老牌的地图商家有没有比较好的解决办法, 可以借用的. 比如高德, 腾讯, 百度等.
4. 内幕: 假设腾讯有适用于unity的定位功能. 上面2提到过, 定位是很复杂很耗费财力的,腾讯当然不会直接告诉你怎样搞. 所以人家提供给你一个密封的盒子. 盒子有一个输入和输出; 盒子内部有自己且保密的运算逻辑. 当我们需要这个盒子工作时, 我们进行负责输入指令并接受盒子的输出即可. 不用关心盒子内部的运算逻辑.
结论:
1. SDK: 就是别人针对特定功能(定位)弄好的一些逻辑; 经过封装成了一个黑盒子. 我们不用关心这个黑盒子里面的具体实现, 只需要按照规定输入数据,并按照解析手册解析盒子的输出内容即可.
2. 通用性: 一般情况下SDK是基于某种系统而开发的. 具有普适性. 比如基于Android开发, iOS开发. 一般而言和上层应用无关.
3. 位置: 如果按照软件层级来划分; 整体情况是这样的. 操作系统-SDK-上层应用程序.
4. 调用逻辑: 上层应用程序->SDK->(自有逻辑|系统接口)-> 返回数据给上层应用程序调用者.