问题:
我想尝试使用Samsung SmartTV SDK 2.5(我有一台2011年型号的电视-UA55D8000)构建概念验证应用。
不幸的是,SDK有两个变种,它们似乎只能在Microsoft Windows上运行。这很奇怪,因为没有理由应该这样:电视本身运行Linux,应用程序是用JavaScript编写的。
这带来了两个问题:
由于我在家中没有Microsoft Windows,因此无法使用SDK附带的构建环境(也不是电视模拟器)。(SDK文件本身只是JavaScript)
即使我可以使用Windows,也很难在不使用传统构建工具(例如:Make,Ant,Autotools等)的情况下自动进行应用的构建和测试。
如何在Linux上构建Samsung Smart TV应用程序?(即:不使用SDK随附的基于Windows的构建工具)
到目前为止,我已经弄清楚了:
据我所知,一个JavaScript模式的应用程序只是一个zip文件,其中包含一个XML配置文件,一个或多个JavaScript文件(包括为平台SDK函数提供的JavaScript接口库)以及任何必需的资产(HTML,图像等)。
另外,从我收集的数据来看,部署过程涉及将zip文件和XML清单文件放置在电视可访问的Web服务器网络上,在电视上以“开发”身份登录,并将应用程序“同步”到电视上已安装的应用程序电视。
有人可以指出我的全部部署要求和应用程序捆绑包要求的来源吗?甚至只是一个工作样本?
我在Ubuntu机器上建立开发环境取得了相当大的成功,并且我想在这里与任何希望这样做的人分享我的方法。该答案旨在独立于平台使用,因此相同的建议应适用于任何成熟的操作系统。
首先,关于应用程序结构的问题假设是正确的。JavaScript应用程序包含以下各项:
您可以使用自己喜欢的编辑器来编写这些文件。我很高兴将 vim 与linting插件一起用于JS和CSS。
从SDK的4.0版本开始,现在可以使用Linux版本的仿真器。这样,您就可以像在2011-2013年电视上一样测试应用程序了。对于较旧的电视,您可以在Wine中运行SDK 1.5的模拟器,但是不能运行属于SDK 2.0及更高版本的模拟器。
它 是 可以运行在Windows虚拟机的仿真器,并与挂羊头卖狗肉的一点点,就可以使模拟器使用自己的应用程序文件夹,寻找应用程序。这包括与虚拟机共享开发文件夹,然后创建到这些文件夹的符号链接,替换SDK安装目录中的“ apps”文件夹。标题为“ 您的Windows IDE很烂? ”的文章中提供了有关此过程的快速概述 。 在Mac上将其替换为“收藏夹编辑器”!
三星智能电视具有内置的开发人员帐户,该帐户可让您从计算机发送应用程序以在电视本身上进行实时测试。您输入部署服务器的IP地址,电视将在该服务器上查找名为 widgetlist.xml 的文件。格式的示例如下:
<?xml version="1.0" encoding="UTF-8"?> <rsp stat="ok"> <list> <widget id="MyTVApp"> <title>MyTVApp</title> <compression size="3383543" type="zip"/> <description>A basic application for Samsung TVs</description> <download>http://192.168.1.83/Widget/MyTVApp_0.1_America_20120709.zip</download> </widget> </list> </rsp>
之后,它将使用<download>标签中的URL下载列出的每个应用程序。您所需要做的就是压缩文件,相应地修改 widgetlist.xml 并确保两个文件都托管在计算机上运行的Web服务器中。您可以使用Apache,lighttpd或其他任何东西。我有一个小型的node.js / connect应用程序,它将根据我在名为 deploy 的目录中拥有的zip文件动态构建 widgetlist.xml 。 __
<download>
所以你有它。没有Windows,就不可能开发Samsung Smart TV应用程序。实际上,有很多可用的选项。万岁!