2

apktool (バージョン 2.1.0) を使用して、次のように APK をデコードします。

$ apktool d test.apk 
I: Using Apktool 2.1.0 on test.apk
I: Loading resource table...
I: Decoding AndroidManifest.xml with resources...
I: Loading resource table from file: /Users/*****/Library/apktool/framework/1.apk
I: Regular manifest package...
I: Decoding file-resources...
I: Decoding values */* XMLs...
I: Baksmaling classes.dex...
I: Copying assets and libs...
I: Copying unknown files...
I: Copying original files...
$

何も変更せずに、次のように APK をすぐに再構築します。

$ apktool b test
I: Using Apktool 2.1.0
I: Checking whether sources has changed...
I: Smaling smali folder into classes.dex...
I: Checking whether resources has changed...
I: Building resources...
I: Building apk file...
I: Copying unknown files/dir...
$

結果として得られる APK ファイルは、元のファイルのほぼ 2 倍のサイズになります。

$ ls -la test.apk 
-rw-r--r--@ 1 *****  staff  10266918 Aug  9 13:15 test.apk
$ ls -la test/dist/test.apk 
-rw-r--r--  1 *****  staff  19656549 Aug  9 13:20 test/dist/test.apk

サイズが大きくなった理由について何か考えはありますか?サイズの減少は、生成された APK ファイルが署名されていないことに起因します... バージョン 2.0.2 の apktool が組み込まれている APK Studio で同じ実験を行ったことに注意してください。結果の APK ファイルは実際には少し小さい。明らかな何かが欠けていますか、それとも apktool の 2 つのバージョン間の既知の動作の違いですか? 前もって感謝します...!!!

4

1 に答える 1

0

APK は単なる zip アーカイブです。それを抽出して内容を比較できます。内容が同じ場合 - 使用する圧縮方法が異なる可能性があります: http://kb.winzip.com/help/help_compression.htm

于 2016-08-09T19:04:41.183 に答える