Mengapa pembaruan aplikasi mengunduh seluruh aplikasi alih-alih hanya "pembaruan"?

10

Saya merasa agak aneh bahwa untuk memperbarui aplikasi di Android (atau bahkan iOS) seluruh aplikasi diunduh alih-alih hanya "Pembaruan" yang sebenarnya.

Alasan saya menemukan ini aneh adalah karena di Windows saat memperbarui aplikasi, hanya file pembaruan yang diunduh - bukan keseluruhan aplikasi - yang lebih praktis karena menghemat waktu dan penggunaan data.

Ini tampaknya sepele bagi kebanyakan orang, tetapi ketika Anda perlu mengunduh aplikasi besar hanya untuk penambahan fitur kecil / perbaikan bug itu menjadi PITA nyata.

Adakah yang punya penjelasan mengapa model ini diterapkan?

Gh0sT
sumber

Jawaban:

13

Sejauh yang saya tahu itu hanya mengunduh pembaruan (disebut sebagai "delta") pada Jellybean 4.1 dan di atasnya. Jelas instalasi awal adalah aplikasi lengkap tetapi pembaruan hanya mengunduh data yang telah berubah dari versi yang diinstal saat ini (yaitu "delta" itu). Anda tidak akan melihat sesuatu yang berbeda saat memperbarui sebagian besar aplikasi, itu akan tetap terlihat seperti mengunduh aplikasi lengkap tetapi pada beberapa aplikasi yang lebih besar Anda akan melihat apakah 'lompati' bagian-bagian unduhan yang menunjukkan bahwa ia hanya mendapatkan delta.

Engadget dan AndroidCentral keduanya memiliki artikel yang menunjukkan bahwa Play Store menyediakan pembaruan delta

bmdixon
sumber
1
Seberapa "besar" aplikasi yang lebih besar? Maksudku, aku masih harus mengunduh seluruh Temple Run 2 hanya untuk memiliki Usain Bolt! Pokoknya terima kasih sudah berbagi artikel.
Gh0sT
Saya tidak yakin. Saya tahu bahwa untuk sesuatu seperti Asphalt 6 (yang setidaknya 1GB) yang hanya mengunduh perubahan di masa lalu. Mungkin itu hanya diterapkan pada pembaruan besar, atau mungkin tidak mungkin untuk menghasilkan delta untuk pembaruan Temple Run 2 karena alasan tertentu? Mereka hanya dapat membuat delta ketika kurang dari persentase tertentu telah berubah. (NB. Semua ini hanya pikiran saya)
bmdixon
Delta tidak instan. Jika Anda mengunduh pembaruan tepat setelah didorong ke play store, delta mungkin belum dihasilkan untuk saat ini. (hanya tebakan)
Matthieu Harlé
4

Sebagai Pengembang Android, saya memikirkan hal yang sama, membuat saya frustasi untuk mengatakan paling tidak karena suatu kali saya lupa untuk mengubah satu baris kode, dan itu keluar dengan satu baris yang salah, yang menyebabkan aplikasi untuk memuntahkan pernyataan log kiri dan Baik.

Pertanyaan ini telah diajukan pada SO, tetapi juga pada topik di sini dan saya pikir pertanyaan ini harus tetap.

JADI Pertanyaan: /programming/18045290/for-mobile-app-updates-why-do-the-entire-app-need-to-be-downloaded-again

Sebagai Pengembang Android, tebakan saya harus menjadi cara perangkat lunak tersebut dikemas. Setiap aplikasi android dikemas ke dalam file terkompresi yang disebut .apk. File ini menampung semua kode, file tata letak, dan gambar yang digunakan untuk membuat fungsi aplikasi. Agak sulit untuk memperbarui hanya sebagian file, terutama ketika dikompresi dan jika pengembang memiliki fitur keamanan yang diaktifkan seperti ProGuard, hampir tidak mungkin untuk mengimplementasikan patch.

Saya yakin Google juga memiliki beberapa alasan keamanan untuk tidak mengizinkan tambalan. Patch kode cenderung meninggalkan celah keamanan dan kerentanan yang tidak terduga.

John
sumber
2
Pembaruan delta AFAIK telah diperkenalkan ke GPlay sekitar setengah tahun yang lalu. Dan ya, ada juga sesuatu seperti biner diff. Pada dasarnya, ini .apkjuga bisa dibongkar di server Google untuk membandingkan antar versi dan membuat delta yang diperlukan. Meskipun saya tidak tahu bagaimana hal itu sebenarnya dilakukan.
Izzy
Saya sangat tertarik dengan ini sekarang, apakah Anda harus memilih ini sebagai pengembang atau apakah Google mengelola ini untuk Anda?
John
1
@ John Google melakukannya secara otomatis, tidak ada tindakan yang perlu diambil oleh pengembang.
onik
-1

Pada dasarnya file file paket aplikasi Android (* .apk) dibuat setelah kode aplikasi siap untuk dipublikasikan, File ini dibuat setelah kompilasi dan pembangunan dan dari proses konversi DALVIK,

File ini berisi semua sumber daya yaitu gambar, audio, tata letak, kelas,

Dan Sejauh menyangkut windows .NET framework dan Linux framework keduanya bekerja dengan cara yang berbeda ...

Jika Anda ingin mengganti hanya kode tertentu, Anda dapat melakukannya di Android tetapi untuk keamanan Anda harus masuk lagi ke aplikasi itu ..

Apa yang DALVIK lakukan adalah proses yang tidak dapat dibatalkan, jadi jika fungsi baru ditambahkan bagaimana versi lama akan mengaksesnya tanpa menyadarinya ??

Karena itu perlu memperbarui seluruh aplikasi sehingga dapat berfungsi dan berfungsi dengan baik ..

Amit Modak
sumber