5

ご存じのとおり、android4.1以降、Googleはスマートアプリのアップデートをサポートしています。ユーザーの場合、Google Play からインストールした Android アプリを更新すると、すべての apk をダウンロードするのではなく、変更されたものだけをダウンロードします。

私のアプリでは、smartAppUpdates もサポートしたいです。今は bsdiff と bspatch を使用していますが、アプリを更新すると、ユーザーがダウンロードするのは非常に大きいと思います。私のアプリのapkファイルでは、ライブラリは非常に大きく、私のapkは約11Mですが、ライブラリ内の.soファイルは9Mです。アプリを更新するとき、ライブラリを更新したことはありません。例:私はこのようにbsdiffを使用します

bsdiff old.apk new.apk diff.apk

new.apk は 11.5M、old.apk は約 11.4M ですが、diff.apk は約 6M です。

アプリを更新するとき、ライブラリを更新したことはありません。

diff.apkを圧縮して縮小しようとすると、使用されません。diff.zip のサイズは diff.apk のサイズと同じです

どうすればこれを行うことができますか?みんな私を助けてくれますか?前もって感謝します。

アプリの増分更新の効率を改善するにはどうすればよいですか?

4

2 に答える 2

5

残念ながら、Google Play を使用してアプリを配布する場合、デルタ アップデートのサイズでできることは多くありません。私の知る限り、Google の Smart Application Update テクノロジーは、古い APK と新しい APK をブロックごとに比較する GDIFF デルタ エンコーディング アルゴリズムを使用しています。このアプローチの問題点は、APK がファイルの圧縮アーカイブであることです。アーカイブ内のファイルにわずかな変更を加えるだけでも、APK ファイルの外観がバイト レベルで大きく異なる可能性があります。この論文の詳細: http://ieeexplore.ieee.org/xpl/articleDetails.jsp?arnumber=6563072 .

私の経験から、唯一できることは ProGuard を使用しないことです。これはセキュリティ上の理由などから明らかに悪いことです。ProGuard で難読化されたコードは、20% 大きいデルタ ファイルを生成する傾向があります。

于 2013-11-15T20:13:18.303 に答える
1

これは増分更新とは関係ありませんが、apk のサイズの縮小に関係しています。Proguard シュリンクを使用することで、驚くべき結果が得られました。サイズが 4MB+ から約 1MB になりました。しかし、正直なところ、実装するのは簡単ではありません: ここにガイドがあります: http://developer.android.com/tools/help/proguard.html

于 2013-09-30T01:48:05.537 に答える