一尘不染

如何在没有IDE的情况下构建和部署Samsung SmartTV应用(例如:在Linux上)

linux

问题:

我想尝试使用Samsung SmartTV SDK 2.5(我有一台2011年型号的电视-UA55D8000)构建概念验证应用。

不幸的是,SDK有两个变种,它们似乎只能在Microsoft
Windows上运行。这很奇怪,因为没有理由应该这样:电视本身运行Linux,应用程序是用JavaScript编写的。

这带来了两个问题:

  1. 由于我在家中没有Microsoft Windows,因此无法使用SDK附带的构建环境(也不是电视模拟器)。(SDK文件本身只是JavaScript)

  2. 即使我可以使用Windows,也很难在不使用传统构建工具(例如:Make,Ant,Autotools等)的情况下自动进行应用的构建和测试。

如何在Linux上构建Samsung Smart TV应用程序?(即:不使用SDK随附的基于Windows的构建工具)


到目前为止,我已经弄清楚了:

据我所知,一个JavaScript模式的应用程序只是一个zip文件,其中包含一个XML配置文件,一个或多个JavaScript文件(包括为平台SDK函数提供的JavaScript接口库)以及任何必需的资产(HTML,图像等)。

另外,从我收集的数据来看,部署过程涉及将zip文件和XML清单文件放置在电视可访问的Web服务器网络上,在电视上以“开发”身份登录,并将应用程序“同步”到电视上已安装的应用程序电视。


有人可以指出我的全部部署要求和应用程序捆绑包要求的来源吗?甚至只是一个工作样本?


阅读 239

收藏
2020-06-02

共1个答案

一尘不染

我在Ubuntu机器上建立开发环境取得了相当大的成功,并且我想在这里与任何希望这样做的人分享我的方法。该答案旨在独立于平台使用,因此相同的建议应适用于任何成熟的操作系统。

介绍

首先,关于应用程序结构的问题假设是正确的。JavaScript应用程序包含以下各项:

  • config.xml ,一个简单的配置文件,定义了各种设置和部署信息。请参阅官方开发人员站点上 的config.xml文件编写
  • widget.info ,这是一个非常小的文件,只有几行用于定义应用程序主体的不透明度。全屏应用程序可能不需要这样做。
  • index.html ,您的应用程序的主要HTML文件。
  • 图像,声音和其他资源

您可以使用自己喜欢的编辑器来编写这些文件。我很高兴将 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 。 __

所以你有它。没有Windows,就不可能开发Samsung Smart TV应用程序。实际上,有很多可用的选项。万岁!

2020-06-02