Как создать и развернуть приложение Samsung SmartTV без IDE (e.g: на Linux)

проблема:

Я хотел бы попробовать создать доказательство концепции приложения с помощью Samsung SmartTV SDK 2.5 (у меня есть 2011 модель TV - UA55D8000).

к сожалению, SDK поставляется в двух вариантах, которые, похоже, работают только в Microsoft Windows. Это странно, потому что нет причин, почему это должно быть так: сами телевизоры запускают Linux, а приложения написаны на JavaScript.

Это представляет два проблемы:

  1. поскольку у меня нет Microsoft Windows дома, я не могу использовать среду сборки (или эмулятор телевизора), которые поставляются с SDK. (Сами файлы SDK - это просто JavaScript)

  2. даже если бы у меня был доступ к Windows, очень сложно автоматизировать создание и тестирование приложений без доступа к традиционным инструментам сборки (e.g: Make, Ant, Autotools и т. д.)

Как я могу создавать приложения Samsung Smart TV на Linux? (Я. e: без использования инструментов сборки на базе Windows, которые поставляются с SDK)


что я выяснил до сих пор:

из того, что я могу собрать, приложение JavaScript-mode-это просто zip-файл, содержащий файл конфигурации XML, один или несколько файлов JavaScript (включая предоставленные библиотеки интерфейса JavaScript для функций SDK платформы) и любые необходимые ресурсы (HTML, изображения и т. д.).

кроме того, из того, что я собираю, развертывание включает размещение zip-файла и XML-файла манифеста в сети веб-сервера, доступной для телевизора, вход в систему как "разработка" на телевизоре и "синхронизация" приложения с установленными приложениями на телевизоре.


может ли кто-нибудь указать мне источник для полных требований к развертыванию и требований к пакету приложений? Или даже просто рабочий образец?

6 ответов


Я имел разумный успех в настройке среды разработки на моей машине с Ubuntu и я хочу поделиться своими методами для тех, кто хочет сделать то же самое. Этот ответ должен быть независимым от платформы, поэтому тот же совет должен работать на любой полноценной операционной системе.

введение

во-первых, предположения вопроса относительно структуры приложения верны. Приложение JavaScript состоит из следующих компонентов предметы:

  • конфиг.в XML, простой файл конфигурации, определяющий различные параметры и информацию о развертывании. См.написание конфигурации.xml-файл на официальном сайте разработчика.
  • widget.info, очень маленький файл с несколькими строками, используемыми для определения непрозрачности тела приложения. Это может не потребоваться для полноэкранных приложений.
  • .HTML-код главная HTML-файл для вашего приложения.
  • картинки, звуки и другие ресурсы.

вы можете написать эти файлы с помощью вашего любимого редактора. Я с удовольствием использую vim С пылеобразования плагины для Мой JS и CSS.

тестирование

начиная с версии 4.0 SDK, теперь доступна версия эмулятора Linux. Это позволяет тестировать приложения, как они будут отображаться на телевизорах 2011-2013 годов. Для старых телевизоров можно запустить SDK Эмулятор 1.5 в Wine, но эмуляторы, принадлежащие SDK 2.0 и новее не будет работать.

Это is можно запустить эмуляторы в виртуальной машине Windows, и, с немного обмана, вы можете сделать эмуляторы использовать свою собственную папку приложения для поиска приложений. Это включает в себя совместное использование папок разработки с виртуальной машиной, а затем создание символической ссылки на эти папки, заменив папку "приложения" внутри установки SDK справочник. Краткий обзор этого процесса в статье под названием ваш Windows IDE отстой? Замените его своим любимым редактором на Mac!

развертывание

Samsung Smart TVs имеют встроенную учетную запись разработчика, которая позволяет отправлять приложение с Вашего компьютера для живого тестирования на самом телевизоре. Вы вводите 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>

после этого, он будет загружать все приложения с помощью URL-адреса в <download> тег. Все, что вам нужно сделать, это zip up файлы, изменить widgetlist.в XML соответственно и убедитесь, что оба файла размещены на веб-сервере, работающем на вашем компьютере. Вы можете использовать Apache, lighttpd или ничего. У меня маленький узел.JS / connect приложение, которое будет строить widgetlist.в XML динамически на основе zip-файлов, которые у меня есть в каталоге с надписью развернуть.

Так что у вас есть. Разработка приложений Samsung Smart TV не невозможна без Windows. На самом деле, есть довольно много вариантов. Ура!


теперь они выпустили Smart TV SDK 4.0, который включает в себя поддержку Linux & Mac OS X:http://www.samsungdforum.com/SamsungDForum/NewsView?newsID=27

" в дополнение к редактору приложений на основе Eclipse был выпущен новый эмулятор на базе Linux.
Этот эмулятор выполняется на виртуальной машине Ubuntu, которая запускается в Virtual Box virtualization tool."

■ особенности для платформы 2013 на Linux (первый выпуск)

  • приложения Рамки
  • App Engine / WebKit
  • новые уровни популярной скрытый
  • SEF (Service Extension Framework)

вам нужно зарегистрироваться на форуме Samsung D, а затем вы можете скачать SDK изhttps://www.samsungdforum.com/Devtools/SdkDownload


один совет, который я не видел в любом из ответов, заключается в том, что телевизор попытается открыть соединение сокета на порту 45634 машины, с которой было загружено приложение (тот, с widgetlist.XML.)

вся отладка (вызовы alerts ()) будет отправлена через этот порт, что позволяет удаленную отладку.

Я использую NetCat для открытия порта и сброса всех журналов, например:

nc -l 45634

я создал этот ответ для темы, о которой я ничего не знаю, но тем не менее я заметил что-то, что бросило красный флаг в моем направлении... награда или нет.

во-первых, я посмотрел на свой Отчет Об Ошибке WineHQ чтобы увидеть, была ли эта проблема решена, но она все еще ожидает на момент написания этой статьи. Я заметил, что отчет об ошибке имел ссылку на обсуждение что я нажал и последовало.

смотреть на!--0--> на обсуждение оказалось информативным.

ссылки:

Z:\home\andy.вино\drive_c\программные файлы (x86)\Samsung\Samsung TV SDK(3.5.2)\Emulator\Emulator2012_v3.5 \ bin\Emulator2.exe

выше Path - это расположение файла, вызвавшего дамп. этот путь-красный флаг, о котором я упоминал.

позвольте мне резервное копирование немного и объяснить о том, что я узнал о Windows XP SP3 и IE8 который очень хорошо может применяться здесь,или вы можете перейти к строке с жирным шрифтом.

я работал над проектом веб-страницы, который использовал плагин lightbox под названием Shadowbox. Этот проект не был на локальном сервере, просто в вложенной подпапке. Он отлично работает в Firefox и Chrome, но IE подавился и не визуализировал CSS из таблицы стилей плагинов. Потому что я был очень знакомый с Shadowbox, я был на 100% убежден, что это было не плагин. Так я начал думать вне коробки, и через испытания и невзгоды я обнаружил, что виновник был просто путь!

я создал папку для проекта, который используется /test(v1)/ на Path и вот что сломалось IE8. Как только я удалил скобки, CSS был загружен правильно. Этот то же решение также стало причиной проблемы CSS для члена форума, который использовал Vista and IE9, тогда вполне возможно, что эти проблемы лежат и с вином.

что это за проблема? Он использует запрещенные символы, скобки - во имя пути. Я остановлюсь и скажу имя URL только потому, что это путь к файлу, ведущий к (и только относительные пути, используемые в кодировании - скобки не миновать - и базовый тег не).

Firefox и Chrome были прощающими, но не IE. Даже если вы не используете IE, возможно, что эта проблема выходит за рамки этого.

мое решение не использовать parentheses или whitespaces в любой части пути к файлу. Хотя это может не решить эту конкретную ошибку, по крайней мере, у вас не будет проблем с sandbox Wine, когда это file path становится URL path для любого требования (например, доступ к объекту SWF для использования в качестве видеоплеера). Если IE браузеры неумолимы, так же могут другие встроенные браузеры или модули программирования.

рекомендуется:

Z:\home\andy.вино\drive_c\Samsung\Samsung_TV SDK_3.5.2\Emulator\Emulator2012_v3.5 \ bin\Emulator2.exe

обратите внимание, что выше не использует Program Files (x86) папка, так как это не может быть изменено в соответствии с требованиями ОС. Иметь такое path, безусловно, уменьшит, если не устранит, любые непредвиденные ошибки. Ура!


Я знаю, что это старый вопрос, но поскольку я углубляюсь в процесс, я решил поделиться некоторыми ссылками. Наслаждайтесь!

достойное краткое руководство по разработке для платформы Smart TV:http://www.samsungdforum.com/Guide/c02/index.html.

Это минимальные требования к проекту и некоторые примеры файлов:http://www.samsungdforum.com/Guide/art00011/index.html.


для людей, которые любят делать все с командной строкой, smarttvjs (http://smarttvjs.org) сделал это очень легко:

  • $smarttvjs init #создать образец проекта
  • ... сделать некоторые разработки (IDE не требуется)
  • $smarttvjs build samsung (создать пакет для samsung)
  • $smarttvjs запустить samsung #запуск тренажера