最後に、このソースでバージョン、パッケージ、名前などのapkに関する情報を取得できました:
apksのアイコンパスは、すべてのアプリ、一部の「icon.png」、その他の「ic_launcher.png」、および異なるフォルダーで一意ではありません。これが私の問題です。エラーやバグがなく、「apktool」や「appt」などのツールがなくても、とにかくアイコンを取得するにはどうすればよいですか?
実際、小さなサイトでアイコンを直接取得して表示したい
私の悪い英語でごめんなさい
これを pclzip.lib.php ライブラリで使用します。
<?php
require_once 'pclzip.lib.php';
$path = 'path/to/apk';
$default = 'path/to/default_icon.png';
$destination = 'path/to/destination.png';
$zip = new PclZip($path);
$data = $zip->extract(PCLZIP_OPT_BY_PREG, "/res\/drawable(|-ldpi|-mdpi|-hdpi|-xhdpi)\/(ic_launcher|icon|logo|icn|ic|i).(png|jpg|jpeg|gif)/isU", PCLZIP_OPT_PATH, './tmp', PCLZIP_OPT_REMOVE_ALL_PATH);
$icn = end($data);
$icn = $icn['filename'];
//now you have path to the icon in ./tmp folder
if(!empty($icn)){
copy($icn, $destination);
} else{
copy($default, $destination);
}
foreach($data as $dt){
@unlink($dt['filename']);
}
?>
これがうまくいくことを願っています..
編集: 最初の回答の時点では、信頼できるメソッド/ライブラリがありませんでした。そこで、一時的なメソッドを作成しました。それは私のために働いていました。これで、より優れたライブラリができました。それを使用する必要があります。
ライブラリ: Tufan Barış YILDIRIMによるphp-apk-parser