Android(Go バージョン)向けにアプリの開発や最適化を始める際は、以下のベスト プラクティスと一般的な質問に対する回答に沿って行ってください。
- アプリに過剰な権限を追加しないでください。
- アプリがバックグラウンドで実行中で、デバイスがバッテリー残量の少ない状態で動作しているときは、アプリのアクティビティを最小限にする必要があります。
- デバイスが省電力状態に移行できなくなるので、wake lock は使用しないでください。
- wakeup の回数を減らすために、ネットワーク アクティビティをひとまとめにしてください。WorkManager を使用すると、タスクをスケジューリングして、システムに一括処理させることができます。
- 小さい画面でテストしてレイアウトがスケールダウンされることを確認してください。
isLowRamDevice()
やgetMemoryClass()
などのメソッドは、ランタイム時にメモリの制約を判断するのに役立ちます。これらの情報を使用して、メモリ使用量を抑えることができます。たとえば、メモリの少ないデバイスでは低解像度の画像を使用するといったことが可能です。AndroidManifest.xml
ファイルでandroid:installLocation
フラグを使用し、外部ストレージにアプリをインストールできるようにします。- より多くのユーザーに向けて開発する場合は、何十億人ものユーザー向けにアプリを構築するをご覧ください。
Go 向けに最適化するか、最初から対応するか
Android Go でアプリをリリースしようとしている多くのデベロッパーは、既存のアプリを最適化するべきか、まったく新しいアプリを開発するべきか迷っているかもしれません。この選択は、開発リソースの量、そうしたデバイスに最適化された機能をアプリに残せるかどうか、世界中のエンドユーザーに対してどのような種類の配布シナリオを有効にするかなど、さまざまな要因によって決まります。
- 1 つのアプリですべてのデバイスに対応
- 同じアプリで、Android(Go バージョン)デバイスと他のすべてのデバイスに、変わらないエクスペリエンスを提供します。この場合は、既存のアプリがこういったデバイスで適切に動作するように最適化します。そうすれば、既存のユーザーもそうした最適化からパフォーマンス上のメリットを得られます。コードをリファクタリングせずに、サイズを大幅に縮小するために Android App Bundle を使用することを強くおすすめします。
- 2 つのアプリ
- 新たに「軽量」アプリを作成し、Android(Go バージョン)デバイスをターゲットに設定します。既存のアプリに手を加える必要はありません。「軽量」アプリに、Android(Go バージョン)デバイスのみを対象にするという要件はないため、すべてのロケールのすべてのデバイスをターゲットに設定することができます。