MSDK的体系结构被设计为高度可扩展的,其中使用了抽象产品类和组件类,以便应用程序可以使用相同的代码控制不同的产品。对于一些没法在不同产品中保持一致性的功能可以在运行时被查询调用,对于一些能保持一致性的功能则直接可以工作了。
例如,Phantom和Inspire系列产品的绝大多数功能是一致的。因此,为适配Phantom 4而编写的应用程序,除Inspire 1的一些独特功能外,将可以直接在Inspire 1机型上使用。
这也意味着当新产品发布时,就已经可以与现有的应用程序一起使用了(需要使用支持该新产品的最新SDK)。新产品中的任何新功能都需要添加到应用程序中,但是所有现有功能都不需要做修改了。
移动应用程序一般通过下图所示的几个主要类来访问DJI Mobile SDK:
关于飞行器产品类的详细说明如下。飞行器产品包含许多组件,而该组件又包含许多子组件,当移动设备通过遥控器连接到飞行器时(如果SDK注册成功), 所有这些组件都可以访问了。如果遥控器和飞行器之间的连接丢失了,那么遥控器对象还会保留(如果移动设备仍连接着遥控器),而飞行器产品和它上面的所有剩余组件将会被置为空。
与飞行器相比,手持相机产品更简单并且包含更少的组件。共享组件的处理方式与在飞行器上相同,因此用来控制摄像机的任何代码都可以在飞行器和手持产品上使用。
智能任务可以用于轻松实现飞行自动化。有关更多详细信息,请查看 智能任务 部分。所有智能任务都继承自DJIMission,因此都可以由Mission Control来执行处理。