问题:
我想尝试建设采用了三星的SmartTV SDK 2.5的证明了概念的应用程序(我有一个2011年车型TV - UA55D8000)。
Unfortunaltely的SDK有两个品种似乎只在微软Windows上工作。 这很奇怪,因为没有理由应该是这样的:本身运行Linux和应用程序的电视用JavaScript编写的。
这带来两个问题:
由于我没有安装Microsoft Windows在家里,我不能使用的编译环境(也不电视仿真器),附带的SDK。 (SDK文件本身只是JavaScript的)
即使我有到Windows的访问,这是很难不访问传统的构建工具自动化建设与应用的测试(如:使,蚂蚁,自动工具,等等)
我怎么能在Linux上构建三星智能电视应用程序? (即:不使用基于Windows的编译工具附带SDK)
我到目前为止已经想通了:
据我所知,一个JavaScript模式的应用仅仅是压缩一个包含XML配置文件,一个或多个JavaScript文件(包括平台SDK函数提供的JavaScript接口库)文件,和任何所需的资源(HTML,图像等)。
另外,从我收集,部署涉及将zip文件和一个网页服务器网络到电视访问的XML清单文件,登录为电视“发展”和“同步”应用程序上安装的应用程序电视。
可能有人点我了全面部署要求和程序包需求的来源? 甚至只是一个工作的样本?
我已经成功的我的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。
所以你有它。 三星智能电视应用的发展是不可能的没有窗户。 事实上,有可用相当多的选择。 万岁!
现在他们已经发布了智能电视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
一个提示,我还没有看到任何的答案提到的是,电视将尝试打开其中应用从(一个与widgetlist.xml)下载本机端口45634的套接字连接。
所有调试(警报()调用),将通过此端口发送,允许远程调试。
我使用netcat来打开一个端口和转储所有的日志,就像这样:
nc -l 45634
我创建了这个答案,我一无所知的话题,但尽管如此,我做了点东西,在我的方向扔...红旗赏金与否。
首先,我看着你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 SP3
和IE8
这很可能也是适用于此处,也可以跳过了用粗体字行。
我的工作是运用一种叫做灯箱插件网页项目Shadowbox
。 该项目是不是在本地服务器上,只是在一个子文件夹的子文件夹 。 它工作正常在Firefox和Chrome,但IE哽咽,并没有呈现来自插件样式表CSS的任何 。 因为我非常熟悉的太极拳,我100%确信它不是插件 。 于是我开始条条框框 ,并通过考验和磨难 ,我发现罪魁祸首只是实际的路径 !
我已经创造了所使用的项目的子文件夹 /test(v1)/
在Path
,这就是打破了IE8
。 一旦我删除了括号 ,CSS的正确加载。 此相同的解决方案也是一个CSS问题对谁使用论坛成员的原因Vista and IE9
,这样的话这是可以想象的,这些问题摆在葡萄酒为好 。
什么问题是什么? 它使用非法字符 , 括号中的路径名。 我将停止短,说URL名称,只是因为它的文件路径导致index.html
文件( 在编码中使用,只有相对路径-括号不能逃脱-和基础标签不合格 )。
Firefox和Chrome是宽容,而不是IE浏览器。 即使你可能没有使用IE浏览器,它可能是这个问题的是外部延伸。
我的解决方法是不使用parentheses
或whitespaces
的文件路径的任何部分。 虽然这可能不是解决这个特定的错误,起码你不会有当沙箱葡萄酒的问题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要求而改变。 有这样一个路径肯定会减少,如果不消除,任何不可预见的错误。 干杯!
我知道这是一个老问题,但因为我钻研的过程中,我想我会分享一些链接。 请享用!
:关于智能电视平台开发体面快速入门指南http://www.samsungdforum.com/Guide/c02/index.html 。
这是最低项目要求和一些示例文件: http://www.samsungdforum.com/Guide/art00011/index.html 。
谁的人喜欢用命令行做的一切,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)