ChromeOS 向けアプリの作成を開始する

Chromebook などの ChromeOS デバイスは、Google Play ストアと Android アプリ。この記事は、 Chromebook 用に最適化する スマートフォンやタブレットを選択します基本を学ぶ 「初めての Android アプリのビルド アプリ

アプリのマニフェスト ファイルのアップデート

まずマニフェスト ファイルを更新して、いくつかの重要なハードウェアと Chromebook とその他の Android デバイスの違い

ChromeOS バージョン M53 以降、 android.hardware.touchscreen この機能は、 android.hardware.faketouch 機能。ただし、アプリがすべての マニフェスト ファイルを更新して、 次に示すように、android.hardware.touchscreen 機能は必須ではありません。 見てみましょう。

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
          ... >
    <!-- Some Chromebooks don't support touch. Although not essential,
         it's a good idea to explicitly include this declaration. -->
    <uses-feature android:name="android.hardware.touchscreen"
                  android:required="false" />
</manifest>

搭載されているセンサーのセットはハードウェア デバイスによって異なります。 Chromebook は、Android ハンドヘルド デバイスに搭載されているセンサーをすべて搭載しているわけではありません。 センサーも搭載していますただしこの機能が 別の方法で実現できます。たとえば、Chromebook は GPS センサーがありますが、Wi-Fi 接続に基づいて位置情報が提供されます。 詳しくは、センサーの概要をご覧ください。 Android プラットフォームがサポートするセンサーの 詳細を説明します

センサーの有無にかかわらずアプリを Chromebook で実行したい場合は、 センサーが不要になるようにマニフェスト ファイルを更新します。

一部のソフトウェア機能は Chromebook でサポートされていません。たとえば、 カスタム IME、アプリ ウィジェット、ライブ壁紙、アプリ ランチャーが Chromebook にはインストールできません。Google 広告ヘルプセンターの Chromebook でサポートされていないソフトウェア機能については、互換性のない ソフトウェア機能

ターゲット SDK のアップデート

アプリの targetSdkVersion を更新する 属性を最新の API レベルに関連付けて、Google Cloud の Android プラットフォームの改良点ですAndroid 4.0 の改善点をご確認ください さまざまなバージョンで提供されています。

ネットワーク要件の確認

Chromebook は、Docker や LXC と同様に、Android OS 全体をコンテナ内で実行します。 つまり、Android はシステムの LAN に直接アクセスできません。 行うことができます。IPv4 トラフィックは、ネットワークの内部レイヤを通過する ルーティングされ、IPv6 ユニキャスト トラフィックは追加のネットワーク あります。

主に Android アプリからインターネットへのアウトバウンド ユニキャスト接続 機能します。通常、インバウンド接続はブロックされます。マルチキャストまたはブロードキャスト Android からのパケットは、ファイアウォール経由で LAN に転送されません。

マルチキャスト制限の例外として、ChromeOS では、 Android と LAN インターフェースの間で mDNS トラフィックが転送されるため、標準の ネットワーク サービス ディスカバリ API は、LAN セグメント上の他のデバイスを検出する場合におすすめの方法です。変更後 Android アプリは標準の TCP または UDP ユニキャストを使用して ソケットを使用して通信します。

Android からの IPv4 接続には、ChromeOS ホストの IPv4 アドレスが使用されます。 内部的には、Android アプリがネットワークに割り当てられたプライベート IPv4 アドレスを認識します。 行うことができます。Android からの IPv6 接続は別のアドレスを使用する これは、Android コンテナに専用のパブリック コンテナ イメージがあるためです。 IPv6 アドレス。

クラウドとローカル ストレージの効果的な使用

Chromebook なら、デバイス間の移行も簡単です。ユーザーが停止した場合 ログインするだけで別の Chromebook を使い始めると、 すべてのアプリが表示されます。

この機能により、同期を有効にするには、アプリのデータをクラウドにバックアップしてください 。ただし、アプリがインターネット接続に依存せずに、 動作しません。代わりに、デバイスの起動時にユーザーの作業をローカルに保存する デバイスがオンラインに戻ったら、クラウドに同期できます。

Chromebook は、 ありますローカル ストレージは無限ではないため、アカウント全体を いつでもデバイスから取り外すことができます。対象 教育機関の教育設定によっては、このシナリオを念頭に置くことをおすすめします。

NDK ライブラリのアップデート

アプリで Android NDK ライブラリを使用していて、ターゲット SDK バージョンが 23 または ARM と x86 の両方からテキストの再配置が削除されていること NDK ライブラリのすべてのバージョンと互換性がありません。これらのライブラリは Android 6.0(API レベル 23)以上である必要があります。NDK ライブラリにテキストの再配置を残すことで、 Chromebook との互換性エラーが x86 アーキテクチャを使用するデバイスで動作しているとします。

アプリの新しいテストケースの開発

アプリのテストケースを作成するには、最初に 使用します。特に、screenOrientation を設定することを検討してください。 宛先: unspecified横向きを指定する場合は、 sensorLandscapeして、タブレットでのエクスペリエンスを最適化します。

デスクトップ環境で特別なサイズや向きが必要な場合は、 メタタグをサイズや向きのヒントとして追加できます。サイズと向きを含める スマートフォンで、レイアウトを指定 defaultHeight, defaultWidth, または minHeight 属性を使用することをおすすめします。

特定のデバイスに対する特定の入力デバイスの処理に関心がある場合 カテゴリ。入力を無効にするには android.hardware.type.pc を指定します。 互換モードです。

なんらかのネットワークを使用している場合は、アプリが再接続できることを確認してください 接続の問題が解決した後、またはデバイスがスリープ状態から復帰した後に、 おやすみモードをオンにします。

Chrome 上の Android アプリのテストケースの一覧を確認することをおすすめします OS: テストプランで使用できます。 テストケースは、Android アプリが備えるべき一般的なシナリオを網羅しています。 確認します。

マルチウィンドウと画面の向きの変更

ChromeOS のマルチウィンドウ環境では、状態の永続性とリコールが可能 明らかです。ViewModel を使用する 状態を保存して復元できます。

状態の永続性をテストするには、しばらくアプリを最小化し、別のアプリを起動します。 リソースを大量に消費するプロセスを検出して、アプリを復元して 維持します。

全画面キー(F4)を押し、最大化し、 あります。無料のサイズ変更をテストするには、まず開発者向けオプションで有効にし、 アプリがクラッシュせずにスムーズにサイズ変更されることを確認します。

お使いの ChromeOS デバイスが対応している場合は、ノートパソコン モードからタブレット モードに変更して確認します すべてが期待どおりに動作するかを確認しますタブレット モードでデバイスを 1 回回転させると、 画面の向き変更をテストしてからノートパソコン モードに戻します。この手順を繰り返す おすすめします。

UI 要素をオフセットして、トップバーによってアプリが機能しなくならないようにする 位置情報ベースのタップ入力です。ChromeOS デバイスの場合は、アプリが 重要な情報はステータスバー領域に配置されません。

カメラや他のハードウェア機能(ペンなど)を使用する場合は、 ウィンドウやデバイスの変更が加えられたときに、それが すでに説明しました