ターゲットプレビュー (Target Preview)

Target Preview を使用すると、アプリケーションをエクスポートして再デプロイすることなく、Kanzi Studio プロジェクトで行った変更をターゲットデバイス上で確認できます。

Target Preview が開発ワークフローに与える影響は次のとおりです。

  • レンダリングやレイテンシ、プラットフォーム固有のコードで定義した動作を含め、アプリケーションをありのままに表示します。Target Preview に表示されるコンテンツはビデオストリームではありません。

  • Target Preview を使用すると、開発の後期段階でもデザインを修正できます。デザインを即座にテストし、車両内のディスプレイなど実際の環境で変更がどのように見えるかを確認できます。

  • Kanzi Android framework (droidfw) を使用して Android アプリケーションを開発する場合、Kanzi と Android UI の両方で構成される、完全に合成されたアプリケーションを確認できます。

Target Preview プラグインは TCP/IP 通信チャネルを作成し、Kanzi Studio が接続されたデバイス上のアプリケーションに変更を加えられるようにします。デプロイプロセスを置き換えるものではありませんが、アプリケーションを再デプロイせずにターゲットデバイス上で変更を確認できるため、ワークフローが向上します。

../../_images/target-preview-android.gif

次の点に注意してください。

  • Kanzi Studio プロジェクトで Kanzi Engine プラグインを使用している場合は、同じプラグインを Kanzi アプリケーションに追加し、アプリケーションをターゲットデバイスに再デプロイする必要があります。

  • Target Preview で行った変更はターゲットデバイスに保存されません。変更を永続化するには、通常のアプリケーションのデプロイプロセスに従ってください。Kanzi アプリケーションのデプロイ を参照してください。

Target Preview を使用する

Target Preview は、Kanzi プラットフォームパッケージに同梱されている Kanzi Engine プラグインです。

これは Kanzi アプリケーションの開発を支援するツールとしてのみ使用することを目的としています。アプリケーションを製品向けに準備する際は、Target Preview プラグインへのリンクを削除してください。これにより、プラグインがもたらす可能性のあるセキュリティ上の問題を取り除くことができます。

Target Preview を使用するには、

  1. プラグインを読み込みます。

    • 動的リンクプラグインの場合は、application.cfg に追加してプラグインを読み込みます。ModuleNames を参照してください。

      ModuleNames="kztargetpreview"
      
    • 静的リンクプラグインの場合は、アプリケーションコードでプラグインを登録します。

      #include <kanzi/plugins/targetpreview/targetpreview_plugin.hpp>
      
      void MyApplication::registerMetadataOverride(ObjectFactory& factory) override
      {
            TargetPreviewPlugin::registerModule(getDomain());
      }
      
  2. 静的リンクプラグインの場合、および LLVM C++ コンパイラーを使用する Android または QNX 上の動的リンクプラグインの場合は、アプリケーションの CMakeLists.txt でプラグインをリンクします。

    target_link_libraries(MyApplication Kanzi::kztargetpreview)
    

    Kanzi Engine プラグイン を参照してください。

  3. (オプション) デフォルトでは、Target Preview プラグインはネットワークポート 50000 を使用します。別のポートを設定するには、target_preview_configuration.json ファイルで port アトリビュートを設定します。

    {
       "port": 60000
    }
    
  4. Android 上のアプリケーションで Target Preview を使用する場合は、

    • アプリケーションの AndroidManifest.xml ファイルに次のネットワーク権限を追加します。

      <uses-permission android:name="android.permission.INTERNET" />
      <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
      
    • Android エミュレーター、または ADB 経由で接続されたデバイスの場合は、

      1. アドレス 127.0.0.1 を使用します。コンピューター上のこのアドレスは ADB ループバックインターフェイスに対応します。

      2. デフォルトのポート、または定義したポートへのポートフォワーディングを設定します。

        adb forward tcp:<port> tcp:<port>
        
  5. Target Preview の使用を開始する前に、kzb をエクスポートし、ターゲットデバイスで同じ kzb と同じ Kanzi Engine プラグインのセットを使用していることを確認します。

  6. Kanzi Studio で、デバイス上のアプリケーションに接続します。

    1. Kanzi Studio の Preview で、target-preview をクリックします。

      ../../_images/preview-target-preview.png
    2. Target Preview ウィンドウで、次のように設定します。

      • Target IP をデバイスの IP アドレスに

      • Port を前の手順で設定したポートに

        Target Preview は TCP/IP を使用して Kanzi Studio と通信します。ファイアウォールを使用している場合は、Kanzi アプリケーションが指定したポートで受信ネットワーク接続を受け付けるように許可してください。

      ../../_images/target-preview-connection-settings.png
    3. Connect をクリックします。

      Kanzi Studio は Log ウィンドウに接続ステータスを出力します。

      ../../_images/target-preview-log-window.png