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

Dav*_*esh 42 javascript linux samsung-smart-tv

问题:

我想尝试使用Samsung SmartTV SDK 2.5构建一个概念验证应用程序(我有一个2011型号电视 - UA55D8000).

不幸的是,SDK有两种版本,似乎只适用于Microsoft Windows.这很奇怪,因为没有理由这样:电视本身运行Linux,应用程序用JavaScript编写.

这提出了两个问题:

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

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

如何在Linux上构建三星智能电视应用?(即:不使用SDK附带的基于Windows的构建工具)


到目前为止我已经想到了什么:

从我可以收集的内容来看,JavaScript模式应用程序只是包含XML配置文件,一个或多个JavaScript文件(包括用于平台SDK功能的JavaScript接口库)以及任何所需资产(HTML,图像等)的zip文件.

此外,根据我收集的内容,部署涉及将zip文件和XML清单文件放在电视可访问的Web服务器网络上,在电视上以"开发"方式登录,并将应用程序"同步"到已安装的应用程序上.电视.


有人能指出我的完整部署要求和应用程序包要求的来源吗?或者甚至只是一个工作样本?

And*_*y E 59

我已经在我的Ubuntu机器上设置了一个合理的成功开发环境,我想在这里分享我的方法给那些想要做同样事情的人.这个答案旨在与平台无关,因此相同的建议应该适用于任何完全成熟的操作系统.

介绍

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

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

您可以使用自己喜欢的编辑器编写这些文件.我很高兴使用vim和我的JS和CSS的linting插件.

测试

从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>
Run Code Online (Sandbox Code Playgroud)

之后,它将使用<download>标记中的URL下载列出的每个应用程序.您所要做的就是压缩文件,相应地修改widgetlist.xml,并确保这两个文件都托管在您计算机上运行的Web服务器上.您可以使用Apache,lighttpd或其他任何东西.我有一个小node.js/connect应用程序,它将根据我在标记为deploy的目录中的zip文件动态构建widgetlist.xml.

所以你有它.没有Windows,三星智能电视应用的开发并非不可能.事实上,有很多选择.万岁!


yel*_*lmu 8

他们现在发布了Smart TV SDK 4.0,其中包括对Linux和Mac OS X的支持:http://www.samsungdforum.com/SamsungDForum/NewsView?newsID = 27

"除了基于Eclipse的App Editor之外,还发布了一个新的基于Linux的仿真器.
该仿真器在一个运行在Virtual Box虚拟化工具中的Ubuntu虚拟机中执行."

■适用于Linux的2013平台的功能(首次发布)

  • 应用框架
  • App Engine/WebKit
  • UniPlayer
  • SEF(服务扩展框架)

您需要注册Samsung D论坛,然后您可以从https://www.samsungdforum.com/Devtools/Sdk下载下载SDK


Ste*_*eve 7

我在任何答案中都没有提到的一个提示是,电视将尝试在下载应用程序的机器的端口45634上打开套接字连接(带有widgetlist.xml的端口).

所有调试(alerts()调用)都将通过此端口发送,以便进行远程调试.

我使用NetCat打开一个端口并转储所有日志,如下所示:

nc -l 45634
Run Code Online (Sandbox Code Playgroud)