Android Go が古い Android スマートフォンで Android 8.1 Oreo を実行できるようにする方法

Android Go は、新しい低 RAM デバイス向けの Google の Android Oreo 8.1 の機能を簡素化したバージョンです。 結局のところ、古いデバイスでのカスタム ROM 開発にも役立つ可能性があります。

Android Go は、Android 8.1 Oreo をベースにした Google の Android の機能を簡素化したバージョンであり、1GB 以下の RAM を搭載したローエンド デバイス向けに最適化された Android バージョンであることを目指しています。 昨年 5 月の Google I/O 開発者カンファレンスで発表されました。 最終的に、その年の後半の12月に詳細が明らかになりました. これは、次世代のエントリーレベルのデバイス向けに作られたものであり、 発展途上国では、インターネットにアクセスするために機能するスマートフォンをまだ利用できます。 アプリを使用します。

Go には、平均的な Android Oreo インストールよりも占有ストレージ容量が 50% 削減されるなど、さまざまなパフォーマンスの最適化と改善が施されています。 Android ランタイム (ART) とカーネルの最適化のおかげで、Android Go を実行しているデバイスは、同じデバイスに通常の Android Oreo をインストールした場合よりも平均で 15% 高速に動作します。 これらの最適化は、Google によって作成された多数の特殊なビルド構成によって行われます。これについては後ほど説明します。

Android Go は、次のような特別な「Go」アプリケーションからも恩恵を受けます。 ファイルゴー, YouTube ゴー そして Google マップ ゴー. これらは Google 製のアプリケーションの軽量バージョンであり、より効率的に実行するための要件が​​軽減されています。 これは、Android Go デバイスを使用しているユーザーも、通常の Android Oreo ユーザーが享受できるメリットのほとんどを享受できることを意味します。 フラッグシップ製品に多額の費用を費やすことなく、あるいは若干高価な予算を費やすことなく、Google のアプリケーション スイートを使用できる デバイス。

それはすべて、Google が市場を拡大するためです。 しかし、Android Go の大部分がビルド構成と最適化された Google アプリのスイートで構成されている場合、開発者は Android Go の独自のビルドを作成できるのでしょうか? 要するに、

はい、できます.

少数の LineageOS 開発者がすでに Android Go に最適化されたカスタム ROM を構築しています

XDA Recognized Developer など、一部のカスタム ROM 開発者による Android Go の導入がすでに見られています。 エイドリアンDC、Android Go ビルド構成を使用した LineageOS 15.1 に関する彼の取り組み いくつかの古いソニーの携帯電話. 対象となるデバイスは、Sony Xperia SP、Sony Xperia T、Sony Xperia V、Sony Xperia TX です。 これらのデバイスはすべて 2012 年と 2013 年に遡りますが、Android 8.1 Oreo ベースの LineageOS 15.1 を受け取ります。 Go ビルド構成。最終的に Gapps の Android Go セットがリリースされると、デバイスが Google 'Go' アプリをスムーズに実行できるようになります。 解放されました。

個々の LOS メンテナーは、ビルド構成とその他の最適化のセットである Android Go 構成ビルドを導入できる必要があります。 これが意味するのは、たとえば発売時に Android 4.0.4 Ice Cream Sandwich を搭載したデバイスである Sony Xperia T を購入した可能性がある人は、 YouTube Go や Google Maps Go などのアプリケーションを利用して、デバイス上の Android 8.1 Oreo のより最適化されたビルド。 フラッグシップレベルのパフォーマンスでは動作しません。 しかしそうあるべきです 使える—特に 2012 年に遡るデバイスの場合。


Android Go が古い Android スマートフォンで Android Oreo を実行できるようにする方法

Android のビルド構成は、デバイスにフラッシュするためにシステム イメージをコンパイルするときに適用される、Android システムのさまざまな側面に関連する一連のパラメーターです。 通常、これらはシステムの動作を変更します。Android Go の主な最適化は次のとおりです。 これらのビルド構成.

Android Go のコンパイルに使用されるビルド構成。

XDA認定開発者と話をしました 陽気な、何が起こっているのか、つまり Android Go を本当に機能させるものは何なのかを理解するのに非常に役立ちました。 これらのビルド構成の一部は再コンパイルしないと変更できず、ROM 自体のブループリントの一部です。 これらは完全に大文字のフラグです。

ただし、これらのフラグはすべて、ストレージとメモリの使用量に関する Android のさまざまな側面に関連しています。 これらには以下が含まれます 自動ストレージ管理、Android の低メモリキラー、dex (dアルヴィク 実行可能ファイル)オプティマイザーと実行中のアプリの RAM 制限。 APK ファイルはこれらの DEX ファイルで構成されているため、ある意味では、APK ファイルを単に 多数の .dex ファイルを含む ZIP ファイル。Android が実際に実行するのは、これです。 応用。 自動ストレージ管理は、Android システムではなく、Files Go アプリケーションによって制御されます。

Android Go ユーティリティ Android の低 RAM モード

Android 4.4 KitKat で、Google は「」と呼ばれる新しいフラグを導入しました。低ラム」は、512MB の RAM を搭載したデバイスをサポートすることを目的としていました。 システムに対してさまざまな最適化が行われます。 これらの変更は、RAM の少ないデバイスにとって非常に有益です。

メモリ管理の改善

  • 検証済みのメモリ節約カーネル構成: ZRAM にスワップします。
  • キャッシュが解除されそうになり、大きすぎる場合は、キャッシュされたプロセスを強制終了します。
  • 大規模なサービスが自分自身を A サービスに戻すことを許可しないでください (そのため、ランチャーが強制終了されることはありません)。
  • アイドル状態のメンテナンスで大きくなりすぎるプロセス (現在の IME など、通常は強制終了できないプロセスであっても) を強制終了します。
  • バックグラウンドサービスの立ち上げをシリアル化します。
  • 低 RAM デバイスのメモリ使用量の調整: メモリ不足 (OOM) 調整レベルの厳格化、グラフィック キャッシュの縮小など。

上記のこれらの変更により、基本的に、システムは ZRAM を使用することで、可能な場合には圧縮 RAM を確実に使用するようになります。 ZRAM は基本的に、スワップ ファイルとして RAM ディスク (デバイス上の通常のストレージを使用するよりもはるかに高速な RAM を使用するストレージ メディア) です。 スワップ ファイルは、RAM の使用率が高く、アプリケーションが依然としてメモリを必要とする場合に使用されます。 これは RAM よりもはるかに遅いため、可能な限り回避する必要があります。 本質的には、メモリの内容を単に圧縮するだけです。

システムメモリの減少

  • system_server プロセスと SystemUI プロセスをトリミングしました (数 MB を節約)。
  • Dalvik に dex キャッシュをプリロードします (数 MB を節約)。
  • 検証済みの JIT オフ オプション (プロセスごとに最大 1.5MB を節約)。
  • プロセスごとのフォント キャッシュのオーバーヘッドが削減されました。
  • ArrayMap/ArraySet が導入され、HashMap/HashSet のフットプリントが軽い代替品としてフレームワークで広く使用されています。

ここで主に起こっていることは、デバイス上で実行されているさまざまなプロセスによるメモリ消費量を可能な限り控えめに削減することです。 RAM のすべてのメガバイトが重要であるため、バックグラウンドでのメモリ使用量をできる限り少なくするために、重要なシステム サービスは削除されています。

Android Go は修正されたローメモリキラーと dex 最適化を使用します

Android Go は主に 1GB 以下の RAM を搭載したデバイス向けであることを考えると、より積極的なメモリ管理が必要になります。 Android Go は、いくつかの異なる方法で Low Memory Killer (LMK) を変更します。 まず、大量の RAM が使い果たされると、メモリ不足キラーが "臨界圧力" 州。 これは、メモリ使用量が多い場合、デバイスのストレージ上のスワップ ファイルに常にアクセスしようとするため、システムの動作が遅くなるからです。 RAM をクリアな状態にしておくと、システムがこのスワップ ファイルを使用する必要がなくなり、メモリのスラッシングが防止されます。 メモリ スラッシングは、デバイスのメモリがいっぱいになると発生し、デバイスのストレージ上のスワップ ファイルを常にページングする必要があるため、パフォーマンスが大幅に低下します。

サービスと WiFi サービスが「」に設定されています速度プロファイルこれは、これらのサービスの選択されたメソッドが Ahead-of-Time (AOT) コンパイルされていることを意味します。 (メソッドとは、名前でいつでも呼び出すことができるコードのセットを指します。)これにより、RAM の使用量が削減され、 Android システムは、ストレージ上で実行される重要なサービスを継続的に再コンパイルする必要がないため、 デバイス。 一方、共有 APK は「高速化」に設定されており、dex 命令を最適化してパフォーマンスを向上させることで、バッテリー寿命と CPU サイクルを延長するように設計されています。

dex の最適化に関しては、Android Go は非常に多くのことを行います。 まず、10日後には、 アプリケーションをダウングレードする スペースを節約するために使用しない場合。 ここでのダウングレードとは、アプリケーションの実際のバージョン番号が下がることを意味するのではなく、アプリの dalvik_cache が消去されることを意味します。 Dalvik キャッシュは、デバイスがアプリを再コンパイルする必要がないようにするために使用され、代わりにアプリの最も必要な部分のみをコンパイルしてキャッシュします。 残りの部分は、アプリケーションの実行時に Just in Time (JIT) コンパイラーを使用してコンパイルされます。 ただし、アプリケーションが 10 日間使用されなかった場合、プリコンパイルされたアプリケーションの重要な部分も削除されます。 これは、できるだけ多くのスペースを解放するために行われます。 もう 1 つの簡単な変更は、アプリの RAM 使用量が 256 MB を超えないようにすることで、アプリがデバイス上のすべての RAM を使用できないようにすることです。


Android Go は、ローエンド デバイスでのカスタム ROM 開発の未来となるのでしょうか?

現時点では、これに対する答えはわかりませんが、古いデバイスでのカスタム ROM 開発の未来は明るいようです。 デバイス上で新しいバージョンの Android を実行するには他にも問題がある可能性がありますが、理論的には、Android Oreo をベースにしてより最適化された Android Go にアップグレードする必要があります。 すべき 古いローエンドデバイスの動作を改善します。