Я нахожу довольно странным, что для обновления приложения в Android (или даже iOS) загружается все приложение, а не только фактические «Обновления».
Причина, по которой я нахожу это странным, заключается в том, что в Windows при обновлении приложения загружаются только файлы обновления, а не все приложение, что более практично, поскольку экономит время и использование данных.
Большинству это может показаться тривиальным, но когда вам нужно загрузить огромное приложение только для небольшого добавления функции/исправления ошибки, это становится настоящим PITA.
У кого-нибудь есть объяснение, почему эта модель была реализована?
Насколько я знаю, он загружает только обновления (называемые «дельта») для Jellybean 4.1 и выше. Очевидно, что первоначальная установка — это полное приложение, но обновления загружают только те данные, которые изменились по сравнению с текущей установленной версией (т. е. ее «дельту»). Вы не увидите ничего другого при обновлении большинства приложений, оно по-прежнему будет выглядеть так, как будто оно загружает полное приложение, но в некоторых более крупных приложениях вы увидите, что части загрузки «перескакивают», что указывает на то, что оно просто получает дельту.
У Engadget и AndroidCentral есть статьи, указывающие на то, что магазин Play предоставляет дельта-обновления.
Как разработчик Android, я думал о том же, это было по меньшей мере неприятно, потому что однажды я забыл изменить одну строку кода, и он вышел с этой одной неправильной строкой, из-за чего приложение выдало операторы журнала слева и правильно.
Этот вопрос был задан на SO, но он также актуален здесь, и я думаю, что этот вопрос следует оставить.
Как разработчик Android, я предполагаю, что программное обеспечение упаковано. Каждое приложение для Android упаковывается в сжатый файл с расширением .apk
. Этот файл содержит весь код, файлы макетов и изображения, используемые для работы приложения. Довольно сложно обновить только часть файла, особенно когда он сжат, и если у разработчика включены функции безопасности, такие как ProGuard, реализовать патч будет практически невозможно.
Я уверен, что у Google также были некоторые причины безопасности, чтобы не разрешать исправления. Патчи кода, как правило, оставляют непредвиденные бреши и уязвимости в системе безопасности.
.apk
также можно просто распаковать на серверах Google, чтобы сравнить версии и создать необходимые дельты. Хотя я не знаю, как это делается на самом деле.В основном файл пакета приложения Android (*.apk) создается после того, как код приложения готов к публикации. Этот файл создается после компиляции и сборки, а также в процессе преобразования DALVIK.
Этот файл содержит все ресурсы, то есть ваши изображения, аудио, макеты, классы,
И что касается Windows, то .NET framework и Linux работают по-разному...
Если вы хотите заменить только определенный код, вы можете сделать это в Android, но в целях безопасности вам нужно снова подписать это приложение.
То, что делает DALVIK, является необратимым процессом, поэтому, если будет добавлена новая функция, как старая версия получит к ней доступ, не зная об этом ??
Вот почему требуется обновить все приложение, чтобы оно могло работать и функционировать должным образом.
Gh0sT
бмдиксон
Матье Арле