问题:
我想尝试使用三星 SmartTV SDK 2.5 构建一个概念验证应用程序(我有一台 2011 年型号的电视 - UA55D8000)。
不幸的是,SDK 有两种似乎只能在 Microsoft Windows 上运行的版本。这很奇怪,因为没有理由应该是这样:电视本身运行 Linux,应用程序是用 JavaScript 编写的。
这带来了两个问题:
因为我家里没有 Microsoft Windows,所以我不能使用 SDK 附带的构建环境(也不能使用电视模拟器)。 (SDK 文件本身就是 JavaScript)
即使我可以使用 Windows,如果不使用传统的构建工具(例如:Make、Ant、Autotools 等),也很难自动构建和测试应用程序
如何在 Linux 上构建三星智能电视应用程序? (即:不使用 SDK 附带的基于 Windows 的构建工具)
到目前为止我的发现:
据我所知,JavaScript 模式应用程序只是一个 zip 文件,其中包含一个 XML 配置文件、一个或多个 JavaScript 文件(包括为平台 SDK 功能提供的 JavaScript 接口(interface)库),以及任何所需的 Assets (HTML、图像、等)。
此外,据我所知,部署涉及将 zip 文件和 XML list 文件放置在电视可访问的 Web 服务器网络上,在电视上以“开发”身份登录并将应用程序“同步”到已安装的电视上的应用程序。
有人能给我指出完整部署要求和应用程序包要求的来源吗?或者只是一个工作样本?
最佳答案
我在我的 Ubuntu 机器上设置开发环境取得了相当大的成功,我想在这里分享我的方法给任何想要做同样事情的人。此答案旨在独立于平台,因此相同的建议应适用于任何成熟的操作系统。
简介
首先,问题关于应用程序结构的假设是正确的。 JavaScript 应用程序由以下几项组成:
- config.xml,一个定义各种设置和部署信息的简单配置文件。见 Writing the config.xml File在官方开发者网站上。
- widget.info,一个很小的文件,只有几行,用于定义应用程序主体的不透明度。全屏应用程序可能不需要这样做。
- index.html,您的应用程序的主 HTML 文件。
- 图像、声音和其他资源。
您可以使用自己喜欢的编辑器编写这些文件。我很乐意为我的 JS 和 CSS 使用带有 linting 插件的 vim。
测试
从 SDK 4.0 版开始,模拟器的 Linux 版本现已推出。这允许您测试您的应用程序,因为它们会出现在 2011-2013 年的电视上。对于较旧的电视,您可以在 Wine 中运行 SDK 1.5 的模拟器,但属于 SDK 2.0 和更新版本的模拟器 will not run .
可以在 Windows 虚拟机中运行模拟器,并且通过一些技巧,您可以让模拟器使用您自己的应用程序文件夹来查找应用程序。这包括与您的虚拟机共享您的开发文件夹,然后创建指向这些文件夹的符号链接(symbolic link),替换 SDK 安装目录中的“apps”文件夹。标题为 Your Windows IDE sucks? Replace it with Your Favorite Editor on the 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,三星智能电视应用程序的开发并非不可能。事实上,有很多可用的选项。万岁!
关于javascript - 如何在没有 IDE 的情况下构建和部署三星 SmartTV 应用程序(例如 : on Linux),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12766653/