10

apk-fileからアプリアイコンを抽出する必要があります。アイコンが1つだけ必要です。apk内の他のすべてを抽出したくありません。ファイルは簡単に入手できますが、どのアイコンファイルが正しいアプリアイコンであるかを判断するにはどうすればよいですか。これはリソーステーブルに保存されていると思いますか?したがって、実際に必要なのはリソーステーブルを読み取ることだと思います。リソーステーブルから、アプリから抽出できるアイコンファイルの名前を特定できることを願っています。

これには簡単なツールが必要です。apkファイル全体を抽出できるapktoolについて知っていますが、これは私が望んでいるものではありません。

  • それは私が必要としない他の多くのものを行います(逆コンパイル、他のファイルの解凍など)

  • 実行には時間がかかります

アイコンファイルのパスを取得するためだけに使用できるツールは他にありますか?

すべての提案を歓迎します

編集:明確にするために、私はデバイスでこれを行おうとはしていません。私はこれをPCで行おうとしています。

4

8 に答える 8

13

aaptツールには Android SDK が同梱されてplatform-toolsおり、必要な詳細情報が得られるはずです。apktool には aapt が同梱されています

aapt d --values badging payload.apk

この出力を使用して、apk (zip ファイル) からアイコン ファイルを抽出できます。

于 2013-01-23T16:48:31.137 に答える
11
  • .apk ファイルの名前を .zip に変更します
  • 7zip などのツールで解凍します。
  • 以下の png ファイルとしてアイコンを見つけます。 /res/drawable-hdpi/icon.png

編集: このファイルはすべての apk ファイルに存在するわけではなく、ほとんどのファイルに存在することに注意してください。すべての .png ファイルを抽出し、リストから 1 つを選択する以外に、より良い解決策を見つけることができませんでした。

于 2013-01-23T15:58:34.283 に答える
7
//if your apk is not installed ..only having .apk on sdcard   
  String APKFilePath = "mnt/sdcard/myapkfile.apk"; //For example...
     PackageManager pm = getPackageManager();
     PackageInfo    pi = pm.getPackageArchiveInfo(APKFilePath, 0);

    // the secret are these two lines....
     pi.applicationInfo.sourceDir       = APKFilePath;
     pi.applicationInfo.publicSourceDir = APKFilePath;
    //

   Drawable APKicon = pi.applicationInfo.loadIcon(pm);
   String   AppName = (String)pi.applicationInfo.loadLabel(pm);

このリンクを参照できます

APK の取得アイコン

于 2014-02-19T13:35:53.227 に答える
5

私の知る限り (ウィキペディアによると)、APK ファイルは ZIP ファイル形式のパッケージです。したがって、任意の解凍ツールを使用してapkファイルを解凍し、必要なアイコンを取得できると思います. ランチャー アイコンについては、AndroidManifest.xmlファイルを開いてandroid:icon<application>. おそらく次のようになります。

android:icon="@drawable/ic_launcher"

アイコン ファイルは になりますres/drawable-<dim>/ic_launcher.png。ここで、<dim>ldpi, mdpi, hdpi, xhdpiさまざまな解像度を表します。最大の画像はxhdpiまたはになりhdpiます。

于 2012-09-28T12:59:52.413 に答える
2

このbash関数は、アイコンを抽出して で表示しますpreview。Mac を使用していない場合は、ImageMagickdisplayのコマンドを使用できます。

preview-android-icon () { unzip -p $1 $(aapt d --values badging $1 | sed -n "/^application: /s/.*icon='\([^']*\).*/\1/p") > /tmp/$$.png && preview /tmp/$$.png; }

次のように使用します。

preview-android-icon /path/to/your.apk
于 2015-01-28T20:03:23.430 に答える
2

ソフトウェア

これらの GUI ツールを試して、Android アプリのアイコンを簡単に抽出することもできます。

説明

Apktool は内部で使用されますが、GUI フロントエンドにより、APK アイコンの抽出または変更が非常に簡単になります。

適切なアプリケーション アイコンは、マニフェストと内部構造から自動的に解析されるため、必要なリソース ファイルを手動で検索する必要はありません。

APK アイコン エディタ

  • どちらのツールも、使いやすい GUI を介してアイコンを簡単に編集、置換、または抽出するのに役立ちます。
  • どちらのツールもWindowsmacOSおよびLinuxで利用できます。
  • どちらのツールもオープンソースです(C++/Qt で記述)。

免責事項

私はこれらのツールの作成者です。

于 2014-06-01T17:35:34.463 に答える
0

apktoolのソースが利用可能です。リソースの抽出とコードの逆コンパイルはまったく異なるため、コードの逆コンパイルを削除して必要なものに最小化するように変更するのは簡単だと思います。

アイコンファイル名の決定に関しては、AndroidManifest.xmlの内容に基づいていますが、画面の密度、向き、言語構成などに基づいて、アイコンの複数のバージョンを考慮する必要がある場合があります。

于 2012-09-28T12:54:12.793 に答える