如何建立与没有IDE部署的SmartTV三星应用程序(例如:在Linux上)如何建立与没有IDE部署

2019-05-12 23:10发布

问题:

我想尝试建设采用了三星的SmartTV SDK 2.5的证明了概念的应用程序(我有一个2011年车型TV - UA55D8000)。

Unfortunaltely的SDK有两个品种似乎只在微软Windows上工作。 这很奇怪,因为没有理由应该是这样的:本身运行Linux和应用程序的电视用JavaScript编写的。

这带来两个问题:

  1. 由于我没有安装Microsoft Windows在家里,我不能使用的编译环境(也不电视仿真器),附带的SDK。 (SDK文件本身只是JavaScript的)

  2. 即使我有到Windows的访问,这是很难不访问传统的构建工具自动化建设与应用的测试(如:使,蚂蚁,自动工具,等等)

我怎么能在Linux上构建三星智能电视应用程序? (即:不使用基于Windows的编译工具附带SDK)


我到目前为止已经想通了:

据我所知,一个JavaScript模式的应用仅仅是压缩一个包含XML配置文件,一个或多个JavaScript文件(包括平台SDK函数提供的JavaScript接口库)文件,和任何所需的资源(HTML,图像等)。

另外,从我收集,部署涉及将zip文件和一个网页服务器网络到电视访问的XML清单文件,登录为电视“发展”和“同步”应用程序上安装的应用程序电视。


可能有人点我了全面部署要求和程序包需求的来源? 甚至只是一个工作的样本?

Answer 1:

我已经成功的我的Ubuntu机器上设置了一个开发环境,合理数量的,我想在这里分享我的方法对任何人都希望这样做。 这个答案的目的是独立于平台,所以同样的建议应任何完全成熟的操作系统上运行。

介绍

首先,问题的有关程序结构的假设是正确的。 一个JavaScript应用程序包括以下项目:

  • config.xml中 ,一个简单的配置文件定义各种设置和部署信息。 见编写config.xml文件中在官方开发者网站。
  • widget.info,一个非常小的文件,用来定义应用程序的身体的不透明度几行。 这可能不是必需的全屏应用程序。
  • index.html的 ,主要的HTML文件为您的应用程序。
  • 图像,声音和其他资源

你可以用你喜欢的编辑器编写这些文件。 我愉快地使用vim有掉毛插件我的JS和CSS。

测试

由于该SDK的4.0版本,一个Linux版本的模拟器现已推出。 这使您可以测试自己的应用,因为它们将出现在2011 - 2013年电视。 对于较旧的电视,您可以在葡萄酒运行SDK 1.5的模拟器,但是属于SDK 2.0和较新的仿真器将无法运行 。

可以运行在Windows虚拟机的仿真器,并与挂羊头卖狗肉的一点点,就可以使模拟器使用自己的应用程序文件夹,寻找应用程序。 这涉及到你的虚拟机共享您的文件夹的开发,然后创建符号链接到这些文件夹,替换SDK的安装目录里面的“应用程序”文件夹中。 这个过程的简要概述,请题为的文章中, 您的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>标签。 所有你需要做的是拉上的文件,相应地修改widgetlist.xml,并确保这两个文件都在你的机器上运行Web服务器托管。 您可以使用Apache,lighttpd的或任何东西。 我有一个小的node.js /连接的应用程序,将建立动态基础上的zip文件我有一个目录中名为部署widgetlist.xml。

所以你有它。 三星智能电视应用的发展是不可能的没有窗户。 事实上,有可用相当多的选择。 万岁!



Answer 2:

现在他们已经发布了智能电视SDK 4.0包括用于Linux和Mac OS X的支持: http://www.samsungdforum.com/SamsungDForum/NewsView?newsID=27

“除了基于Eclipse的应用程序编辑器,一个新的基于Linux的仿真器已被释放。
这个模拟器执行是在虚拟盒虚拟化工具运行Ubuntu的虚拟机“。

■在Linux上2013平台的特点(首次发行)

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

您需要注册三星d论坛,然后你可以从下载SDK https://www.samsungdforum.com/Devtools/SdkDownload



Answer 3:

一个提示,我还没有看到任何的答案提到的是,电视将尝试打开其中应用从(一个与widgetlist.xml)下载本机端口45634的套接字连接。

所有调试(警报()调用),将通过此端口发送,允许远程调试。

我使用netcat来打开一个端口和转储所有的日志,就像这样:

nc -l 45634


Answer 4:

我创建了这个答案,我一无所知的话题,但尽管如此,我做了点东西,在我的方向扔...红旗赏金与否。

首先,我看着你WineHQ错误报告 ,看看这个问题就解决了,但它仍然悬而未决写这篇文章的。 我发现的bug报告的引用链接的讨论 ,我点击和遵循。

纵观machine-code generated dump-error 在讨论证明信息。

参考:

Z:\家\ andy.wine \ drive_c \程序文件(x86)\三星\三星电视SDK(3.5.2)\仿真器\ Emulator2012_v3.5 \ BIN \ Emulator2.exe

上述Path是导致转储文件的位置。 也就是说路径是红旗我提到。

让我备份一点点,并约我学到了什么有关解释Windows XP SP3IE8这很可能也是适用于此处,也可以跳过了用粗体字行。

我的工作是运用一种叫做灯箱插件网页项目Shadowbox 。 该项目是不是在本地服务器上,只是在一个子文件夹的子文件夹 。 它工作正常在Firefox和Chrome,但IE哽咽,并没有呈现来自插件样式表CSS的任何 。 因为我非常熟悉的太极拳,我100%确信它不是插件 。 于是我开始条条框框 ,并通过考验和磨难 ,我发现罪魁祸首只是实际的路径

我已经创造了所使用的项目的子文件夹 /test(v1)/Path ,这就是打破了IE8 。 一旦我删除了括号 ,CSS的正确加载。 此相同的解决方案也是一个CSS问题对谁使用论坛成员的原因Vista and IE9 ,这样的话这是可以想象的,这些问题摆在葡萄酒为好

什么问题是什么? 它使用非法字符括号中的路径名。 我将停止短,说URL名称,只是因为它的文件路径导致index.html文件( 在编码中使用,只有相对路径-括号不能逃脱-和基础标签不合格 )。

Firefox和Chrome是宽容,而不是IE浏览器。 即使你可能没有使用IE浏览器,它可能是这个问题的是外部延伸。

我的解决方法是不使用parentheseswhitespaces的文件路径的任何部分。 虽然这可能不是解决这个特定的错误,起码你不会有当沙箱葡萄酒的问题file path成为一个URL path的任何要求( 例如,访问SWF对象作为一个视频播放器 )。 如果IE浏览器是无情,所以也可以将其他嵌入式浏览器或编程模块。

推荐的:

Z:\家\ andy.wine \ drive_c \三星\ Samsung_TV SDK_3.5.2 \仿真器\ Emulator2012_v3.5 \ BIN \ Emulator2.exe

注意以上不使用Program Files (x86)文件夹,因为不能每个OS要求而改变。 有这样一个路径肯定会减少,如果不消除,任何不可预见的错误。 干杯!



Answer 5:

我知道这是一个老问题,但因为我钻研的过程中,我想我会分享一些链接。 请享用!

:关于智能电视平台开发体面快速入门指南http://www.samsungdforum.com/Guide/c02/index.html 。

这是最低项目要求和一些示例文件: http://www.samsungdforum.com/Guide/art00011/index.html 。



Answer 6:

谁的人喜欢用命令行做的一切,smarttvjs( http://smarttvjs.org )已经说得很简单:

  • $ smarttvjs的init#创建示例项目
  • ...做一些开发(IDE时也不需要)
  • $ smarttvjs打造的三星(创建一个包三星)
  • $ smarttvjs运行三星#launch模拟器


文章来源: How to build & deploy a Samsung SmartTV app without the IDE (e.g: on Linux)