Comment construire et déployer une application SmartTV Samsung sans IDE(E. G: sous Linux)

problème:

j'aimerais essayer de construire une application de validation de principe en utilisant le Samsung SmartTV SDK 2.5 (j'ai un modèle 2011 TV-UA55D8000).

malheureusement, le SDK est disponible en deux versions qui ne semblent fonctionner que sous Microsoft Windows. C'est bizarre car il n'y a aucune raison que ce soit le cas: les téléviseurs eux-mêmes fonctionnent sous Linux et les applications sont écrites en JavaScript.

deux problèmes:

  1. comme je N'ai pas Microsoft Windows à la maison, Je ne peux pas utiliser l'environnement de construction (ni l'émulateur TV) qui viennent avec le SDK. (Les fichiers SDK eux-mêmes sont juste JavaScript)

  2. même si J'avais accès à Windows, il est très difficile d'automatiser la construction et les tests des applications sans accès aux outils de construction traditionnels (E. G: Marque, Ant, Autotools, etc)

Comment puis-je construire des Applications Smart TV Samsung sur Linux? (I. e: sans utiliser les outils de construction Windows fournis avec le SDK)


ce que j'ai compris jusqu'à présent:

D'après ce que je peux comprendre, une application en mode JavaScript est tout simplement un fichier zip contenant un fichier de configuration XML, un ou plusieurs fichiers JavaScript (y compris les bibliothèques d'interface JavaScript fournies pour la plate-forme SDK fonctions), et tous les biens nécessaires (HTML, images, etc.).

aussi, d'après ce que j'ai compris, le déploiement implique de placer le fichier zip et un fichier manifeste XML sur un réseau de serveurs Web accessible à la TV, de se connecter en tant que 'développer' sur la TV et de 'synchroniser' l'application avec les applications installées sur la TV.


est-ce que quelqu'un pourrait m'indiquer une source pour les exigences de déploiement complet et les exigences du groupe d'applications? Ou même juste un exemple de travail?

41
demandé sur David-SkyMesh 2012-10-07 10:30:05

6 réponses

j'ai eu un certain succès dans la mise en place d'un environnement de développement sur ma machine Ubuntu et j'aimerais partager mes méthodes ici pour tous ceux qui cherchent à faire la même chose. Cette réponse est destinée à être indépendante de la plate-forme, de sorte que le même Conseil devrait fonctionner sur n'importe quel système d'exploitation à part entière.

Introduction

tout d'abord, les hypothèses de la question concernant la structure de l'app sont correctes. Une application JavaScript se compose de

  • config.xml , un simple fichier de configuration définissant divers paramètres et informations de déploiement. Voir écrire la config.fichier xml sur le site officiel du développeur.
  • widget.info , un très petit fichier de quelques lignes servant à définir l'opacité du corps de la demande. Cela peut ne pas être nécessaire pour le plein écran application.
  • de l'index.html , le fichier HTML principal de votre demande.
  • Images, sons et autres ressources .

vous pouvez écrire ces fichiers en utilisant votre éditeur préféré. Je suis heureux d'utiliser vim avec des plugins de linting pour mon JS et CSS.

test

à partir de la version 4.0 du SDK, un La version Linux de l'émulateur est maintenant disponible. Cela vous permet de tester vos applications comme elles apparaîtraient sur les téléviseurs 2011-2013. Pour les téléviseurs plus anciens, vous pouvez utiliser L'émulateur SDK 1.5 dans Wine, mais les émulateurs appartenant au SDK 2.0 et au nouveau ne fonctionneront pas .

Il est possible de lancer les émulateurs dans une machine virtuelle Windows, et, avec un peu de ruse, vous pouvez faire les émulateurs utiliser votre propre dossier de l'application pour rechercher des applications. Cela implique de partager vos dossiers de développement avec votre machine virtuelle, puis de créer un lien symbolique vers ces dossiers, en remplaçant le dossier "apps" dans le répertoire d'installation du SDK. Un rapide aperçu de ce processus est disponible dans un article intitulé, votre IDE Windows craint? Remplacez - le par votre éditeur préféré sur le Mac!

déploiement

Samsung Smart TVs ont un développeur intégré compte qui vous permet d'envoyer une demande à partir de votre ordinateur pour des tests en direct sur la télévision elle-même. Vous entrez l'adresse IP de votre serveur de déploiement et le téléviseur recherchera un fichier appelé widgetlist.xml sur ce serveur. Un exemple du format est le suivant:

<?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>

après cela, il téléchargera chaque application listée en utilisant L'URL de la balise <download> . Tout ce que vous avez à faire est de fermer les fichiers, modifier le widgetlist.xml en conséquence et assurez-vous que les deux fichiers sont hébergés sur un serveur web tournant sur votre machine. Vous pouvez utiliser Apache, lighttpd ou n'importe quoi. J'ai un petit nœud.js / connect app qui construira la widgetlist .xml basé dynamiquement sur les fichiers zip que j'ai dans un répertoire intitulé déployer .

Alors voilà. Le développement D'applications Smart TV Samsung N'est pas impossible sans Windows. Effectivement, il ya quelques options disponibles. Hourra!

59
répondu Andy E 2013-02-11 23:30:05

ils ont maintenant publié Smart TV SDK 4.0 qui comprend le soutien Pour Linux et Mac OS X: http://www.samsungdforum.com/SamsungDForum/NewsView?newsID=27

" en plus de L'éditeur D'applications basé sur Eclipse, un nouvel émulateur basé sur Linux a été publié.

Cet émulateur s'exécute dans une machine virtuelle Ubuntu qui est exécutée dans l'outil de virtualisation de la boîte virtuelle."

■ Caractéristiques pour 2013 Plate-forme sur Linux (Première Version)

  • Apps "Cadre De 1519120920"
  • App Engine / WebKit
  • UniPlayer
  • SEF (Service Extension Framework)

vous devez vous inscrire au Forum Samsung D et ensuite vous pouvez télécharger le SDK à partir de https://www.samsungdforum.com/Devtools/SdkDownload

8
répondu yelmu 2013-01-16 15:32:17

un conseil que je n'ai pas vu mentionné dans aucune des réponses, est que le téléviseur va essayer d'ouvrir une connexion socket sur le port 45634 de la machine où l'application a été téléchargée à partir (celui avec la widgetlist.XML.)

tous les appels de débogage (alerts ()), seront envoyés sur ce port, permettant le débogage à distance.

J'utilise NetCat pour ouvrir un port et décharger toutes les logs, comme ça:

nc -l 45634
7
répondu Steve 2013-11-04 13:42:06

j'ai créé cette réponse pour un sujet que je ne connais pas, mais néanmoins j'ai repéré quelque chose qui a lancé un signal d'alarme dans ma direction... ou non.

tout d'abord, j'ai regardé votre "rapport de bogue de WineHQ pour voir si ce problème a été résolu, mais il est toujours en suspens au moment de l'écriture. J'ai remarqué que le rapport de bogue avait un lien de référence vers la discussion que j'ai cliqué et suivi.

en regardant le machine-code generated dump-error dans que la discussion s'est avérée instructive.

référence:

Z:\home\andy.wine\drive_c\Program Files(x86) \ Samsung\Samsung TV SDK (3.5.2)\Emulator\Emulator2012_v3.5\bin\Emulator2.exe

le au-dessus de Path se trouve l'emplacement du fichier qui a causé le dump. ce chemin est le drapeau rouge que j'ai mentionné.

Permettez-moi de revenir un petit peu en arrière et d'expliquer ce que j'ai appris sur Windows XP SP3 et IE8 qui très bien peut s'appliquer ici, ou vous pouvez passer à la ligne avec le texte en gras.

j'ai travaillé sur un projet de page Web qui utilisait un plugin lightbox appelé Shadowbox . Ce projet n'était pas sur un serveur local, juste dans un sous-dossier d'un sous-dossier . Il fonctionne très bien dans Firefox et Chrome, mais IE s'est étouffé et n'a pas rendu de CSS de la feuille de style plugins. Parce que je connaissais très bien Shadowbox, j'étais à 100% convaincu que c'était pas le plugin . J'ai donc commencé à penser en dehors de la boîte et la tribulations j'ai découvert le coupable était juste l' chemin actuel !

j'avais créé un sous-dossier pour le projet qui a utilisé /test(v1)/ dans le Path et c'est ce qui a cassé IE8 . Une fois que j'ai enlevé le parenthèses , le CSS a été chargé correctement. Cette même solution a également été la cause d'une question CSS pour un membre du forum qui a utilisé Vista and IE9 , alors il est concevable que ces questions se trouvent avec le vin ainsi .

Quel Est ce problème? Il utilise les caractères illégaux , les parenthèses , dans le nom du chemin. Je vais arrêter court et dire le nom de L'URL uniquement parce que c'est le chemin du fichier menant au fichier index.html ( et seuls les chemins relatifs ont été utilisés dans le codage - les parenthèses ne pouvaient pas être échappées - et la balise de base a échoué ).

Firefox et Chrome étaient indulgents, mais pas IE. Même si vous ne pouvez pas être en utilisant IE, il est possible que cette question s'étende en dehors de cela.

ma solution N'est pas d'utiliser parentheses ou whitespaces dans aucune partie de votre chemin de fichier. Bien que cela ne puisse pas résoudre ce bug particulier, à tout le moins vous n'aurez pas de problèmes de vin de bac à sable pour quand ce file path devient un URL path pour quelque exigence que ce soit ( par exemple, accéder à un objet SWF pour être utilisé comme un lecteur vidéo ). Si les navigateurs IE sont impitoyables, il en va de même pour les autres navigateurs intégrés ou les modules de programmation.

recommandé:

Z:\home\andy.vin\drive_c\Samsung\Samsung_TV SDK_3.5.2\Emulator \ Emulator2012_v3.5\bin\Emulator2.exe

notez que ce qui précède n'utilise pas le dossier Program Files (x86) car cela ne peut pas être modifié selon les exigences du système D'exploitation. Avoir un tel chemin réduisez, sinon éliminez, les erreurs imprévues. Acclamations!

4
répondu arttronics 2012-12-22 11:59:03

je sais que c'est une vieille question, mais puisque je me penche sur le processus, j'ai pensé que je partagerais quelques liens. Profitez-en!

Décent guide de démarrage rapide sur le développement de la plate-forme Smart TV: http://www.samsungdforum.com/Guide/c02/index.html .

ce sont les exigences minimales du projet et quelques exemples de fichiers: http://www.samsungdforum.com/Guide/art00011/index.html .

4
répondu Zachary Nicoll 2014-01-21 20:15:14

pour les personnes qui aiment tout faire avec la ligne de commande, smarttvjs ( http://smarttvjs.org ) a rendu très facile:

  • $smarttvjs init #créer l'exemple de projet
  • ... faire un peu de développement (IDE est ni obligatoire)
  • $smarttvjs build samsung (créer un paquet pour samsung)
  • $smarttvjs run samsung #lancement du simulateur
1
répondu yawl 2015-04-25 03:41:56