Android NavbarホームキーとしてGIFを使用する方法

Androidコミュニティの優秀な人たちは、ホームキーとしてアニメーション.gifを使用するようにnavbarを変更する方法を考え出しました。Appualsがそれを行うためのガイドを用意しています。

警告: これはかなり複雑なプロセスです。 SystemUI.apkを逆コンパイルし、いくつかの重要なファイルを台無しにして、一緒に再コンパイルする必要があります。 何かがうまくいかない場合に備えて、SystemUI.apkのバックアップを作成してください!

関連Appualsガイド:

  • AndroidシステムUIを手動でテーマ設定する方法
  • Android APKをデコンパイルおよびテーマ化する方法
  • ストックROMでAPKをデオデックスする方法

要件:

  • 根ざしたAndroidスマートフォン(AppualsにはAndroidルートガイドがたくさんあります!)
  • APKデコンパイルツール(APK Easy Tool を推奨
  • Notepad ++のような優れたコードエディター

SystemUI.apkの逆コンパイル

最初に行う必要があるのは、SystemUI.apkをdeodexすることです。これには、Tickle My Androidなどのツールを使用できます。 このプロセスでAPKをデオデックスするためのAppualsガイドをお読みください。

次のステップは、SystemUI.apkを逆コンパイルすることです。これは、これまでに行ったことがない場合は単独でガイドを必要とします。幸運なことに、Appualsには、 'APKを以前にデコンパイルしていません。

SMALIファイルの追加

ここで、新しいsmaliファイルを追加する必要があります。ここで必要なことを正確に行うために、既に変更された.smaliファイルのパックがあります。 具体的には、.zipから「SelfAnimatingImageView.smali」ファイルを抽出し、ディレクトリ内のデコンパイル済みAPKに追加する必要があります。

 SystemUI.apk \ smali \ com \ android \ morningstar \ 

これらのフォルダーが存在しない場合は作成する必要があります。

GIFをフレームに分割する

ここで、好きなアニメーション.gifを見つけて、ナビゲーションバーのホームボタンとして使用する必要があります。 Giphy.com/stickersで見られるようなステッカーGIFを使用する必要があります。PNGのような透明な背景がありますが、実際にはGIFです。

好きなステッカーGIFを保存したら、それを一連のPNGに変換する必要があります。 これは、変更したSystemUIが実際にネイティブの.gifファイルを実行せず、PNGを順番に再生するためです。 そのため、.gifを連続したPNGに分割する必要があります。幸いなことに、EZGIF Splitなどのオンラインコンバーターを使用して非常に簡単にこれを行うことができます。

GIFをEZGIF分割ツールにアップロードし、[分割オプション]ドロップダウンメニューから[画像をPNG形式で出力]を選択すると、すべてのフレームが順番に抽出されます。 次に、フレームをZIPファイルにまとめてダウンロードできます。

次に、分割GIFのPNGフレームを、デコンパイルされたSystemUI apkフォルダー内の適切な「 drawable-xxxDPI 」フォルダーに追加する必要があります。 使用するフォルダーは、デバイスのDPIによって異なります。したがって、

  • MDPI =〜160 DPI
  • HDPI =〜240 DPI
  • XHDPI =〜320 DPI
  • XXHDPI =〜480 DPI
  • XXXHDPI =〜640 DPI

ここで、アニメーションに使用する画像と、それらの画像をどれだけ速く循環させるかをAndroidに指示するXMLファイルが必要です。 前にダウンロードしたZIPに戻り、「frame_anim.xml」を取得して、逆コンパイルしたAPK内の「res \ drawable」フォルダーにコピーします。

Notepad ++でframe_anim.xmlを開くと、次のようになります。

で始まる各行

最後に、SystemUI.apkを再コンパイルする前に、アニメーションをnavbarに配置する必要があります。 レイアウトXMLファイルを編集するため、これは少し注意が必要です。 ほとんどの標準ROMでは、HOME navbarソフトキーを制御するコードは「layout \ navigation_bar.xml」にありますが、「layout \ home.xml」にもある場合があります。 ROMに応じて、これを探し回る必要があります。

基本的に、次のようなコードを含むレイアウトXMLファイルを探しています。

android:id = "@ id / home_button" android:layout_width = "0.0dip" android:layout_height = "0.0dip" android:scaleType = "center" android:contentDescription = "@ string / accessibility_home" systemui:keyCode = "3" /> 

home_buttonなどを参照する行が表示されると、正しいXMLファイルにいることがわかります。 行う必要があるのは、このHOMEキーを非表示にし、同じサイズであるが見えない新しいキーをその場所に配置することです。そうすると、アニメーションフレームがその下に入ります。 これは実際には非常に簡単で、必要なのはFrameLayoutコードのみです

このコードを調べると、3つの異なるものが互いに重なり合っていることがわかります。 ただし、アプリの実行中は表示されません。表示されるのは、ホームバーがnavbarにあるアニメーションGIFだけです。

したがって、必要なことは、コードのHOMEソフトキー行を上記のFrameLayoutコードに置き換えることだけですが、特定のROMに合わせて調整する必要がある場合があります。 ここで少し試行錯誤が必要です。

APKを再コンパイルしてフラッシュする

これで、改造されたAPKを再コンパイルする準備が整いました。 APK Easy Toolを使用してSystemUI.apkを再コンパイルし、デバイスのリカバリモードでフラッシュします。 Dalvikキャッシュを消去する必要があるため、リカバリモードでこれを行うことが重要です。そうしないと、追加した新しいsmaliファイルがアクティブになりません。

すべてがうまくいけば、アニメーションGIFが新しいnavbarホームキーとして表示されるはずです。

興味深い記事