問題:
Samsung SmartTV SDK 2.5(2011年モデルのテレビ-UA55D8000を使用)を使用して、概念実証アプリを構築してみたいと思います。
残念ながら、SDKには2つの種類があり、Microsoft Windowsでのみ動作するようです。理由はないからです。テレビ自体がLinuxを実行し、アプリケーションがJavaScriptで記述されているためです。
これには2つの問題があります。
私は自宅にMicrosoft Windowsを持っていないため、SDKに付属のビルド環境(またはTVエミュレーター)を使用できません。 (SDKファイル自体は単なるJavaScriptです)
Windowsにアクセスできたとしても、従来のビルドツール(例:Make、Ant、Autotoolsなど)にアクセスせずに、アプリのビルドとテストを自動化することは非常に困難です
LinuxでSamsung Smart TVアプリケーションを構築するにはどうすればよいですか? (つまり、SDKに付属のWindowsベースのビルドツールを使用せずに)
私がこれまでに理解したこと:
私が収集できるものから、JavaScriptモードアプリケーションは、XML構成ファイル、1つ以上のJavaScriptファイル(プラットフォームSDK機能用に提供されたJavaScriptインターフェイスライブラリを含む)、および必要なアセット(HTML、画像など)を含む単なるZipファイルです。
また、私が収集したものから、展開には、ZipファイルとXMLマニフェストファイルをテレビにアクセス可能なWebサーバーネットワークに配置し、テレビで「開発」としてログインし、インストールされているアプリケーションにアプリケーションを「同期」することが含まれますテレビ。
誰かが私に完全な展開要件とアプリバンドル要件のソースを教えてもらえますか?それとも、実際に動作するサンプルですか?
私はUbuntuマシンで開発環境を設定するのにかなりの成功を収めました。同じことをしたい人のためにここで私の方法を共有したいと思います。この答えはプラットフォームに依存しないことを意図しているため、同じアドバイスが本格的なオペレーティングシステムでも機能するはずです。
まず、アプリの構造に関する質問の仮定は正しいです。 JavaScriptアプリケーションは、次のアイテムで構成されています。
これらのファイルは、お気に入りのエディターを使用して作成できます。私は喜んでvimをJSとCSSのリンティングプラグインで使用しています。
SDKのバージョン4.0の時点で、Linuxバージョンのエミュレーターが利用可能になりました。これにより、2011〜2013年のテレビに表示されるアプリをテストできます。古いテレビの場合、WineでSDK 1.5のエミュレーターを実行できますが、SDK 2.0以降に属するエミュレーターは 実行しない です。
is Windows仮想マシンでエミュレーターを実行することができます。少しだけ巧妙に、エミュレーターが独自のアプリケーションフォルダーを使用してアプリを検索できるようにします。これには、開発フォルダーを仮想マシンと共有し、それらのフォルダーへのシンボリックリンクを作成して、SDKのインストールディレクトリ内の「apps」フォルダーを置き換えることが含まれます。 Your Windows IDE sucks?Replace on Your Favorite Editor on the Mac! というタイトルの記事で、このプロセスの概要を確認できます。 =
Samsung Smart TVには組み込みの開発者アカウントがあり、コンピューターからアプリケーションを送信して、テレビ自体でライブテストを行うことができます。展開サーバーのIPアドレスを入力すると、TVはそのサーバーで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などを使用できます。 deployというラベルのディレクトリにあるZipファイルに基づいてwidgetlist.xmlを動的に構築する小さなnode.js/connectアプリがあります。
だからあなたはそれを持っています。 Samsung Smart TVアプリの開発は、Windowsなしでは不可能ではありません。実際、利用可能なオプションはかなりあります。やった!
LinuxおよびMac OS Xのサポートを含むSmart TV SDK 4.0をリリースしました: http://www.samsungdforum.com/SamsungDForum/NewsView?newsID=27
「EclipseベースのApp Editorに加えて、新しいLinuxベースのエミュレーターがリリースされました。
このエミュレータは、Virtual Box仮想化ツールで実行されるUbuntu仮想マシンで実行されます。」
■Linux上の2013プラットフォームの機能(初回リリース)
Samsung Dフォーラムに登録する必要があり、SDKを https://www.samsungdforum.com/Devtools/SdkDownload からダウンロードできます。
私が答えのどれにも言及していない1つのヒントは、テレビがアプリのダウンロード元のマシン(widgetlist.xmlを持つもの)のポート45634でソケット接続を開こうとすることです。
すべてのデバッグ(alerts()呼び出し)は、このポートを介して送信され、リモートデバッグが可能になります。
NetCatを使用してポートを開き、次のようにすべてのログをダンプします。
nc -l 45634
それは古い質問だと知っていますが、プロセスを詳しく調べているので、いくつかのリンクを共有すると思いました。楽しい!
スマートTVプラットフォーム向けの開発に関するまともなクイックスタートガイド: http://www.samsungdforum.com/Guide/c02/index.html 。
これらは、プロジェクトの最小要件といくつかのサンプルファイルです: http://www.samsungdforum.com/Guide/art00011/index.html 。
私は何も知らないトピックのためにこの回答を作成しましたが、それでも私の方向に赤い旗を投げた何かを見つけました... bounty or not。
まず、 WineHQ Bug Report を見て、この問題が解決されたかどうかを確認しましたが、この記事の執筆時点ではまだ保留中です。バグレポートには、 ディスカッション への参照リンクがあることに気付きました。
その議論のmachine-code generated dump-error
を見ると有益であることがわかりました。
参照:
Z:\ home\andy.wine\drive_c\Program Files(x86)\ Samsung\Samsung TV SDK(3.5.2)\ Emulator\Emulator2012_v3.5\bin\Emulator2.exe
上記のPath
は、ダンプの原因となったファイルの場所です。 そのパスは私が言及した赤い旗です。
少しバックアップして、Windows XP SP3
とIE8
について学んだことを説明しましょう。これは非常によく当てはまるかもしれませんが、太字のテキストの行までスキップすることもできます。
Shadowbox
というライトボックスプラグインを使用するWebページプロジェクトに取り組みました。そのプロジェクトはローカルサーバー上ではなく、サブフォルダーのサブフォルダー内にありました。 Firefoxでは正常に動作し、ChromeがIE chokedで、プラグインスタイルシートからCSSをレンダリングしませんでした。 Shadowboxに非常に精通し、私はそれがプラグインではないであると100%確信していました。だから私は箱の外を考え始め、試練と苦難犯人はただ実際のパスでした!
Path
で/test(v1)/
を使用するプロジェクト用にサブフォルダーを作成しましたが、それがIE8
を壊しました。 括弧を削除すると、CSSは正しくロードされました。この同じ解決策は、Vista and IE9
を使用したフォーラムメンバーのCSS問題の原因でもあったため、これらの問題がWineにもあると考えられます。
それはどんな問題ですか?パス名に違法文字、カッコを使用しています。 index.html
ファイルへのファイルパスであるため、短い名前でURL名を言います(および相対パスのみがコーディングで使用されました-括弧をエスケープできませんでした-ベースタグが失敗しました)。
FirefoxとChromeは寛容でしたが、IEはそうではありませんでした。IEを使用していない場合でも、この問題はそれ以外にも及ぶ可能性があります。
私の解決策は、parentheses
またはwhitespaces
ファイルパスの任意の部分。これはこの特定のバグを解決しないかもしれませんが、少なくとも、file path
がどんな要件でもURL path
になるときのサンドボックスWineの問題はありません(例えば、ビデオプレーヤーとして使用されるSWFオブジェクトへのアクセス )。 IEブラウザが容赦ない場合、他の組み込みブラウザまたはプログラミングモジュールも同様です。
推奨:
Z:\ home\andy.wine\drive_c\Samsung\Samsung_TV SDK_3.5.2\Emulator\Emulator2012_v3.5\bin\Emulator2.exe
上記はProgram Files (x86)
フォルダーを使用しないことに注意してください。これはOS要件ごとに変更できないためです。このようなパスを使用すると、予期しないエラーを排除できなくても確実に削減できます。乾杯!
コマンドラインを使用してすべてを行うのが好きな人のために、smarttvjs( http://smarttvjs.org )によって非常に簡単になりました: