最近 Comcast 在热情推销 ( RDK http://rdkcentral.com ), 他为何这样做呢?
RDK 是什么
官方描述如下
RDK 是一个软件集合, 这个软件集合经过完整测试并集成到机顶盒上面
所谓完整测试: 就是若干不同类型的 Comcast 机顶盒( 或其他厂商的) 都可以运行
所谓集成: 就是说不同的机顶盒, 硬件不用(cpu, 解码芯片, 网络,声音芯片), driver不同, 因为做了适配,所以这些构件都能运行
Comcast 觉得那个 Software 构件应该放入 RDK 就给于RDK license. 这样若干软件公司都可以给 RDK 提供软件构件.
RDK 构件组成
可以看到 RDK 在 OEM Platform 之上
OEM Platform 就是给 Comcast 提供机顶盒的硬件厂商. 他们多提供基于 mips, x86架构的硬件, 上面跑 linux.
他们提供显示,声音,视频播放等接口各不相同, 所以给一种类型的机顶盒做的软件是不能给另一类型使用的
以前机顶盒功能单一, Comcast 采购机顶盒时不关注这些.
而现在机顶盒就像一个客厅PC, 就要求有更强大的功能. 也要求维护尽可能少, 因此机顶盒的软件架构也要求变革.
最好的办法之一就是提供JVM等让它支持夸平台的应用
当然 JVM 应用关键功能都需要 native的支持, 比如上屏, 视频播放等等, 所以需要提供一个工具合集, 而不单单是 JVM.
除此以外我们还看到很多其他 native, 比如 QT, Meadia Streamer 等等
RDK 的用户 (基于 RDK 编写软件的人), 就不一定是 comcast 的内部员工, 任何开发者都可以编写基于 RDK 的应用. 并且因为 RDK 之下的软硬件差异都被屏蔽. 如果你编写一个基于 RDK api 的应用, 它应该能跑在所有 RDK compatible 的 set box(机顶盒) 上 (当然除了 java, 不同平台要重新编译)
我觉得为了更好保证 RDK compatible, 应该有完整性测试: 就如同 Android 的 CTS, 一个庞大的测试集合,测试一个 device 各方面 features 是否满足
总结:
Comcast 发布RDK是为了结束 OEM 提供机顶盒 API 混乱的场面, 现在要求它们支持 RDK, 是减少维护, 并使以后机顶盒的应用开发更容易. 这将导致以后机顶盒有更强大的功能. 为Comcat 重塑和打造新的机顶盒生态链, 这也是 Comcast 面对 Android TV 和 苹果 TV 的冲击的合理反应.