Изменение иконки приложения¶
Изменение иконки приложения — процедура замены графического изображения, отображаемого на рабочем столе или в меню запуска программного обеспечения. Способ и возможность изменения зависят от операционной системы, типа приложения и прав пользователя. Наиболее распространённые сценарии — замена иконки на Android, iOS, Windows и macOS.
¶Android
На Android иконка приложения определяется ресурсом android:icon в файле AndroidManifest.xml. Существует несколько подходов к её изменению.
¶Изменение иконки вручную (root-доступ)
При наличии root-доступа можно заменить PNG-файлы иконок непосредственно в директории /system/app/ или /data/app/. Стандартные размеры иконок для разных плотностей экрана: 48×48 px (mdpi), 72×72 px (hdpi), 96×96 px (xhdpi), 144×144 px (xxhdpi), 192×192 px (xxxhdpi). Файлы имеют имена вида ic_launcher.png.
¶Через лаунчеры и темы
Большинство сторонних лаунчеров (Nova Launcher, Apex Launcher, ADW Launcher) позволяют менять иконки отдельных приложений без root-доступа. Пользователь удерживает нажатие на иконку, выбирает «Изменить» и подставляет изображение из установленного пакета иконок или из галереи. Существуют также темы иконок, меняющие оформление всех программ разом.
¶При разработке
Разработчик приложения задаёт иконку через атрибут android:icon="@mipmap/ic_launcher" в манифесте. В Android Studio для этого используется набор ресурсов mipmap-*dpi. Начиная с Android 8.0 поддерживается адаптивная иконка (Adaptive Icon), состоящая из переднего плана (foreground) и фона (background), к которым применяются маскировка и анимация. Google рекомендует использовать форматы WebP вместо PNG для уменьшения размера APK.
¶iOS
На iOS замена иконки приложения без пересборки проекта невозможна в стандартных условиях. Apple жёстко контролирует внешний вид программ: иконка задаётся в Xcode через файл AppIcon в каталоге Assets.xcassets. Размеры иконок для разных устройств: 20×20, 29×29, 40×40, 60×60, 76×76, 83.5×83.5 и 1024×1024 px (App Store).
Начиная с iOS 10.3 появилась возможность динамической смены иконки через API setAlternateIconName(_:completionHandler:). Приложение может переключаться между заранее встроенными вариантами иконки, например, в зависимости от темы оформления или событий в игре. Пользователь при этом подтверждает смену системным диалогом.
¶Windows
В Windows иконки приложений хранятся в исполняемых файлах (.exe) и библиотеках (.dll) в формате ICO. Для замены иконки ярлыка:
- Правый клик по ярлыку → «Свойства» → кнопка «Сменить значок».
- Выбор иконки из системного списка или указание пути к файлу .ico.
Для замены иконки самого приложения используются ресурсные редакторы (Resource Hacker, Restorator). Пользователь открывает исполняемый файл, находит ресурс группы Icon или IconGroup и подставляет новый файл. Начиная с Windows 10 и 11 часть иконок отображается из кэша iconcache.db, поэтому после замены может потребоваться его очистка или перезагрузка системы. В Windows 11 действует Fluent Design с поддержкой динамических иконок, привязанных к акцентному цвету системы.
¶macOS
В macOS иконка приложения — файл в формате ICNS, расположенный внутри пакета .app в каталоге Contents/Resources. Для замены:
- Правый клик по приложению → «Показать содержимое пакета».
- Переход в
Contents/Resources. - Замена файла
.icnsна новый с сохранением имени.
Иконку можно создать из набора изображений разных размеров с помощью утилиты iconutil или приложения Preview. После замены может потребоваться сброс кэша иконок командой killall Dock в терминале. Для системных приложений требуется отключение защиты SIP (System Integrity Protection).
¶Форматы иконок
| Формат | Платформа | Особенности |
|---|---|---|
| PNG | Android, веб | Поддержка прозрачности, без сжатия потерь |
| WebP | Android | Сжатие, поддержка прозрачности |
| ICO | Windows | Мультиразмерный контейнер |
| ICNS | macOS | Мультиразмерный контейнер Apple |
| SVG | Веб,部分 Android | Векторный формат, масштабируется без потерь |
¶Безопасность
Замена иконок в системных каталогах требует повышенных привилегий и связана с риском: подмена иконок используется в фишинговых атаках, когда вредоносное ПО маскируется под легитимные программы. В Android 13 и выше введена функция «Иконки для вложений» (Icon Badging), а в iOS и macOS действует механизм подписи кода, затрудняющий подмену содержимого пакетов.
¶Источники
- Документация Android Developers (developer.android.com)
- Руководство Apple Human Interface Guidelines
- Microsoft Fluent Design System documentation
- Resource Hacker documentation
