При установке приложений из Google Play Store пользователи обычно предпочитают приложения меньшего размера. Это может быть связано с ограниченным пространством для хранения на устройстве или ограниченным каналом, кроме того некоторые пользователи просто предпочитают более быструю установку. Spotify выпустил инструмент под названием Ruler, который использует для измерения и анализа размера своих приложений для Android, чтобы выяснить, как их уменьшить. Компания сделала этот инструмент открытым и бесплатным для любого разработчика, который захочет его использовать.
https://twitter.com/SpotifyEng/status/1493249078565683202
Приложения, опубликованные в магазине Google Play, теперь обычно загружаются в виде Android App Bundle. Когда пользователь запрашивает приложение для установки, Google Play Store создает оптимизированный APK для конечного пользователя, устанавливающего приложение. Ruler имитирует этот процесс, чтобы создать APK, точно соответствующий тому, что должен получить конечный пользователь. Затем для каждого файла Ruler фиксирует два значения:
- Размер загрузки: байты, передаваемые по сети, когда пользователь загружает приложение.
- Размер установки: байты, которые файл занимает на устройстве после установки приложения.
Затем Ruler может просканировать приложение и найти список файлов внутри и их размеры. Он также может найти все модули и зависимости Gradle, которые влияют на размер приложения. Благодаря этому создается второй список всех компонентов и их содержимого. Объединение обоих списков позволяет сгруппировать все файлы приложения по их источнику и определить, насколько каждый модуль и зависимость влияют на общий размер приложения.
Spotify говорит, что основное приложение Spotify имеет более 1000 модулей Gradle и сотни сторонних зависимостей, и что Ruler помог уменьшить размер приложения более чем на 9% за последние шесть месяцев. Компания заявляет, что экспортирует данные о размере приложения один раз в день, используя последнюю основную сборку. Она может использовать эти данные для отслеживания исторических тенденций как для приложения в целом, так и для отдельных модулей и сторонних зависимостей. Влияние каждого пул реквеста на размер приложения также анализируется, чтобы разработчикам можно было предоставить раннюю обратную связь.
Ruler полностью написан на Kotlin, и для его использования все, что вам нужно сделать, это применить плагин к вашему проекту Android и запустить одну задачу Gradle. Вы можете узнать больше на странице проекта на GitHub.