Uygulama güncellemeleri neden yalnızca "güncellemeler" yerine uygulamanın tamamını indiriyor?


10

Android'de (hatta iOS'ta) bir uygulamayı güncellemek için sadece gerçek "Güncellemeler" yerine uygulamanın tamamının indirilmesini oldukça garip buluyorum.

Bu garip bulmamın nedeni, Windows'da bir uygulamayı güncellerken, yalnızca güncelleme dosyaları indirilir - tüm uygulama değil - hem zamandan hem de veri kullanımından tasarruf sağladığı için daha pratiktir.

Bu çoğu için önemsiz görünebilir, ancak sadece küçük bir özellik ekleme / hata düzeltmesi için büyük bir uygulama indirmeniz gerektiğinde gerçek bir PITA olur.

Bu modelin neden uygulandığına dair bir açıklaması olan var mı?

Yanıtlar:


13

Bildiğim kadarıyla Jellybean 4.1 ve üzeri sadece güncellemeleri ("delta" olarak adlandırılır) indirir. Açıkçası, ilk yükleme tam uygulamadır, ancak güncellemeler yalnızca yüklü olan sürümden (yani "delta") değişen verileri indirir. Çoğu uygulamayı güncellerken farklı bir şey görmezsiniz, yine de tam uygulamayı indiriyor gibi görünecektir, ancak bazı büyük uygulamalarda, indirmenin sadece deltayı aldığını gösteren 'atlama' bölümlerini görüp göremeyeceğinizi göreceksiniz.

Engadget ve AndroidCentral'ın her ikisinde de Play Store'un delta güncellemeleri sağladığını gösteren makaleler var


1
Büyük uygulama ne kadar "büyük"? Demek istediğim, sadece Usain Bolt'a sahip olmak için tüm Temple Run 2'yi indirmem gerekiyor! Neyse makaleleri paylaştığın için teşekkürler.
Gh0sT

Emin değilim. Asfalt 6 gibi bir şey için (en az 1GB) sadece geçmişte yapılan değişiklikleri indirdiğini biliyorum.Yalnızca büyük güncellemelere uygulanmış olabilir veya belki de delta oluşturmak mümkün olmayabilir. herhangi bir nedenle Temple Run 2 güncellemesi nasıl? Delta'yı yalnızca belirli bir yüzdeden az değiştiğinde oluşturabilirler. (Not: Tüm bunlar sadece düşüncelerim)
bmdixon

Delta anlık değil. Güncellemeyi play store'a gönderildikten hemen sonra indirirseniz, şimdilik delta oluşturulmamış olabilir. (sadece bir tahmin)
Matthieu Harlé

4

Bir Android Geliştiricisi olarak aynı şeyi düşündüm, en azını söylemek sinir bozucuydu çünkü bir kerede bir kod satırını değiştirmeyi unuttum ve bu satırın yanlış gittiğini, bu da uygulamanın günlük ifadelerini tükürmesine neden olduğunu ve sağ.

Bu soru SO üzerine sorulmuştur, ancak burada da konudur ve bu sorunun kalması gerektiğini düşünüyorum.

SO Soru: /programming/18045290/for-mobile-app-updates-why-does-the-entire-app-need-to-be-downloaded-again

Bir Android Geliştiricisi olarak, tahminim yazılımın paketlenme şekli olmalı. Her android uygulaması bir adında sıkıştırılmış bir dosyaya paketlenir .apk. Bu dosya, uygulama işlevini yapmak için kullanılan tüm kodu, düzen dosyalarını ve görüntüleri içerir. Bir dosyanın sadece bir bölümünü güncellemek biraz zor, özellikle de sıkıştırılmışsa ve geliştirici ProGuard gibi güvenlik özelliklerine sahipse, bir yama uygulamak imkansız olacaktır.

Eminim Google'ın yamalara izin vermemek için bazı güvenlik nedenleri de vardı. Kod yamaları beklenmeyen güvenlik açıkları ve güvenlik açıkları bırakma eğilimindedir.


2
AFAIK delta güncellemeleri yaklaşık yarım yıl önce GPlay'da tanıtıldı. Ve evet, ikili diffs gibi bir şey de var. Temel olarak, .apksürümler arasında karşılaştırma yapmak ve gerekli deltaları oluşturmak için Google sunucularında paketten çıkarılabilir. Gerçi aslında nasıl yapıldığını bilmiyorum.
Izzy

Şimdi bununla çok ilgileniyorum, bunu bir geliştirici olarak seçmeniz mi gerekiyor yoksa Google bunu sizin için mi yönetiyor?
John

1
@John Google bunu otomatik olarak yapar, geliştirici tarafından herhangi bir işlem yapılması gerekmez.
onik

-1

Temelde Android uygulama paketi dosyası (* .apk) dosyası, uygulama kodu yayınlanmaya hazır olduktan sonra oluşturulur, Bu dosya derleme ve oluşturma işleminden sonra ve DALVIK dönüştürme işleminden,

Bu dosya, resim, ses, düzen, sınıf,

Ve Windows .NET çerçevesi ve Linux çerçevesi ile ilgili olarak her ikisi de farklı şekilde çalışır ...

Sadece belirli bir kodunu değiştirmek istiyorsanız bunu android'de yapabilirsiniz, ancak güvenlik için bu uygulamayı tekrar imzalamanız gerekir.

DALVIK'in yaptığı geri dönüşü olmayan bir işlemdir, bu nedenle yeni işlev eklenirse eski sürüm bilmeden ona nasıl erişir?

Bu nedenle düzgün çalışabilmesi ve çalışabilmesi için tüm uygulamanın güncellenmesi gerekir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.