回答:
私が知る限り、Jellybean 4.1以降の更新(「デルタ」と呼ばれます)のみをダウンロードします。明らかに、初期インストールは完全なアプリですが、更新は現在インストールされているバージョン(つまり、その「デルタ」)から変更されたデータのみをダウンロードします。ほとんどのアプリを更新しても何も変わらないように見えますが、アプリ全体をダウンロードしているように見えますが、一部の大きなアプリでは、ダウンロードの「ジャンプ」部分が差分を取得しているだけであるかどうかを確認できます。
EngadgetとAndroidCentralの両方に、Playストアが差分更新を提供していることを示す記事があります
Android開発者も同じことを考えていましたが、1行のコードを変更するのを忘れて、その1行が間違っていたためにアプリがログステートメントを左に吐き出したため、控えめに言ってもイライラしました。正しい。
この質問はSOで尋ねられましたが、ここでも話題になっているので、この質問はそのままにしておくべきだと思います。
SOの質問:https : //stackoverflow.com/questions/18045290/for-mobile-app-updates-why-does-the-entire-app-need-to-be-downloaded-again
Androidデベロッパーとして、私の推測ではソフトウェアのパッケージ方法を推測する必要があります。すべてのAndroidアプリはと呼ばれる圧縮ファイルにパックされます.apk
。このファイルには、アプリを機能させるために使用されるすべてのコード、レイアウトファイル、画像が含まれています。特に圧縮されている場合、ファイルの一部だけを更新するのは難しいです。開発者がProGuardのようなセキュリティ機能を有効にしている場合、パッチを実装するのはほとんど不可能です。
Googleにも、パッチを許可しないことのセキュリティ上の理由があったと思います。コードパッチは、予期しないセキュリティホールや脆弱性を残す傾向があります。
.apk
バージョンを比較して必要なデルタを作成するために、単にをGoogleサーバーに解凍することもできます。実際にどのように行われているかはわかりませんが。
基本的に、Androidアプリケーションパッケージファイル(* .apk)ファイルは、アプリのコードを公開する準備ができた後に作成されます。このファイルは、コンパイルとビルドの後に、DALVIK変換プロセスから作成されます。
このファイルには、画像、音声、レイアウト、クラスなどのすべてのリソースが含まれています。
そして、Windowsに関する限り、.NETフレームワークとLinuxフレームワークはどちらも異なる方法で機能します...
特定のコードのみを置き換えたい場合は、Androidで行うことができますが、セキュリティのために、そのアプリに再度署名する必要があります。
DALVIKは不可逆的なプロセスであるため、新しい機能が追加された場合、古いバージョンはそれを知らずにどのようにアクセスしますか?
これが、アプリが正しく機能するようにアプリ全体を更新する必要がある理由です。