当前位置: 首页 > 面试题库 >

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

卫弘义
2023-03-14
问题内容

问题:

我想尝试使用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服务器网络上,在电视上以“开发”身份登录,并将应用程序“同步”到电视上已安装的应用程序电视。

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


问题答案:

我在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应用程序。实际上,有很多可用的选项。万岁!



 类似资料:
  • 我已经安装了Android SDK最新版本和Eclipse。但我也想试试Android Studio。 我看过这个和这个帖子,但是那些解决方案改变了Android Studio(一旦下载并安装)使用的SDK实例。我想要的不是下载另一个SDK,当我已经在我的机器上安装了它。

  • 我已经按照这些教程为我的Spring Boot应用程序构建Docker映像,该应用程序使用Maven作为构建工具。我正在Windows10机器上使用boot2docker VM,将我的项目从Bitbucker存储库克隆到VM。 > 使用用于DockerFile的Spotify maven插件。尝试运行./mvnw来构建JAR和Docker映像。但是,我没有在boot2docker中安装Java。因

  • 我正在遵循Oracle的教程在JavaFX中创建TableView。在这个截图中,我复制并粘贴了代码,发现了几个错误,教程中没有提到这些错误。 TableView上的警告显示: TableView是原始类型。对泛型类型TableView的引用 表列上的警告说: 表列是一个原始类型。对泛型类型TableCol列的引用 addAll方法上的警告是: 类型安全:方法addAll(Object…)属于原始

  • 问题内容: 我正在尝试为Ruby项目构建Docker映像。问题在于该项目具有一些gem依赖项,需要构建本机扩展。我的理解是,我有两种选择: 从已经安装了构建工具的基础映像开始。 使用没有构建工具的基础映像,并在运行之前在Dockerfile中安装构建工具。 在主机上预编译本机扩展,将gem供应商化,然后简单地将生成的包复制到映像中。 1和2似乎要求生成的映像包含构建本机扩展所需的构建工具。出于安全

  • 我正在创建一个Android应用程序,使用一个普通的谷歌驱动器帐户作为一个应用程序-养号,如上所述,以令人难以置信的简洁,这里: 使用常规Google帐户作为应用程序拥有的帐户 不幸的是,有关如何在云端硬盘上执行任何操作的所有说明都指向客户端密钥,如下所述: Google API控制台-缺少客户端机密 对于已安装的应用程序,这实际上不再存在。我设法通过构建一个实际的网页,在难以置信的痛苦中获得了O

  • 因为参考文献是不鼓励的,有什么方法我可以应用下面的功能与状态或其他方式?