Чому оновлення програм завантажують всю програму замість лише "оновлень"?


10

Мені здається досить дивним, що для оновлення програми в Android (або навіть iOS) весь додаток завантажується замість лише власне "оновлень".

Причиною я вважаю це дивним в тому, що в Windows під час оновлення програми завантажуються лише файли оновлення - не весь додаток - що практичніше, оскільки це економить час і використання даних.

Для більшості це здасться тривіальним, але коли вам потрібно завантажити величезний додаток лише для мініатюрного доповнення та виправлення помилок, він стає справжнім PITA.

Хтось має пояснення, чому ця модель була реалізована?

Відповіді:


13

Наскільки я знаю, він завантажує лише оновлення (звані "дельта") на Jellybean 4.1 і вище. Очевидно, що початкова установка - це повна програма, але оновлення завантажують лише ті дані, які змінилися з поточної встановленої версії (тобто "дельта" її). Під час оновлення більшості додатків ви не побачите нічого іншого, воно все одно буде виглядати як завантаження повного додатка, але в деяких великих додатках ви побачите, чи "стрибають" частини завантаження, що вказує на те, що це лише отримання дельти.

У Engadget та AndroidCentral є статті, які вказують на те, що магазин Play Play забезпечує оновлення дельти


1
Наскільки «великим» є більший додаток? Я маю на увазі, що мені ще потрібно завантажити весь Temple Run 2, щоб мати Юсейн Болт! Все одно дякую за те, що поділилися статтями
Gh0sT

Я не впевнений. Я знаю, що для чогось на зразок Asphalt 6 (що становить принаймні 1 Гб) він завантажував лише зміни в минулому. Можливо, він застосовується лише до великих оновлень, а може бути, неможливо створити дельту для чомусь оновлення Temple Run 2? Вони можуть створювати дельту лише тоді, коли змінилося менше певного відсотка. (NB. Все це лише мої думки)
bmdixon

Дельта не миттєві. Якщо ви завантажите оновлення одразу після того, як воно було натиснене в ігровий магазин, дельта може не створюватися наразі. (лише здогадка)
Матьє Харле

4

Як розробник Android, я подумав те саме, що було найменше неприємно, тому що одного разу я забув змінити один рядок коду, і це вийшло з цього рядка неправильно, через що додаток виплюнув заявки журналу зліва і правильно.

Це питання було задано на SO, але воно також є тематичним, і я думаю, що це питання має залишитися.

ТАК Питання: /programming/18045290/for-mobile-app-updates-why-does-the-entire-app-need-to-be-downloaded-again

Як розробник Android, я можу здогадатися, яким чином пакується програмне забезпечення. Кожен додаток для Android упаковується у стислий файл, який називається an .apk. Цей файл містить весь код, файли макета та зображення, які використовуються для створення програми. Оновити лише частину файлу важко, особливо коли він стискається, і якщо розробник має такі функції безпеки, як ProGuard, реалізувати патч було б неможливо.

Я впевнений, що в Google також були деякі причини безпеки, щоб не допускати виправлення. Патчі коду, як правило, залишають непередбачувані дірки в безпеці та вразливості.


2
Оновлення дельти AFAIK були представлені в GPlay близько півроку тому. І так, є також щось на зразок бінарного. В основному, також .apkможна просто розпакувати на серверах Google, щоб порівняти версії та створити необхідні дельти. Хоча я не знаю, як це робиться насправді.
Izzy

Мене зараз це дуже цікавить, чи потрібно ввімкнути це як розробник чи Google цим керує?
Іван

1
@John Google робить це автоматично, розробник не повинен вживати жодних дій.
onik

-1

Фактично, файл файлу пакету додатків для Android (* .apk) створюється після того, як код програми буде готовий до публікації. Цей файл створюється після компіляції та складання та в процесі перетворення DALVIK,

Цей файл містить усі ресурси, тобто ваші зображення, аудіо, макети, класи,

А що стосується Windows, .NET Framework та Linux Framework обидва працюють по-різному ...

Якщо ви хочете замінити лише певний код, ви можете це зробити в android, але для безпеки вам потрібно підписати цю програму ще раз.

Що робити DALVIK - це незворотний процес, тож якщо буде додана нова функція, як стара версія отримає доступ до неї, не знаючи про неї ??

Ось чому для цього потрібно оновити весь додаток, щоб він міг працювати і функціонувати належним чином ..

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.