Как появляется иконка приложения на рабочем столе?

Иконка приложения на рабочем столе Android появляется благодаря объявлению activity с фильтром intent-filter для действия MAIN и категории LAUNCHER в манифесте приложения (AndroidManifest.xml). Это сигнал системе, что данная Activity — точка входа в приложение и должна быть показана на рабочем столе (в лаунчере).

🔧 Как это устроено

Вот ключевой фрагмент из AndroidManifest.xml, который делает иконку доступной в лаунчере:

<application
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
... >
<activity
android:name=".MainActivity"
android:exported="true">
&lt;intent-filter&gt;
&lt;action android:name="android.intent.action.MAIN" /&gt;
&lt;category android:name="android.intent.category.LAUNCHER" /&gt;
&lt;/intent-filter&gt;
&lt;/activity&gt;
&lt;/application&gt;

Что делает каждая часть

  • <action android:name="android.intent.action.MAIN" />
    — говорит системе: _это основная точка входа в приложение.
    _
  • <category android:name="android.intent.category.LAUNCHER" />
    — указывает, что эта активити должна быть доступна из лаунчера, то есть появляться в списке приложений с иконкой.

  • android:icon внутри <application>
    — задаёт иконку приложения, которая и будет показана пользователю.

🔄 Когда иконка появляется

  • При установке приложения через Play Market, ADB или напрямую из APK.

  • Система Android сканирует AndroidManifest.xml, находит активность с MAIN и LAUNCHER, и создаёт ярлык на рабочем столе (если лаунчер поддерживает).

  • На современных устройствах может не быть ярлыка сразу — он появится в списке приложений, а пользователь сам перетаскивает его на рабочий стол.

📁 Откуда берётся сама иконка

Иконка указывается в атрибуте android:icon и обычно лежит в ресурсах:

android:icon="@mipmap/ic_launcher"

Файл ic_launcher.xml или PNG-иконки лежат в папке:

res/mipmap-anydpi-v26/ic_launcher.xml
res/mipmap-hdpi/
res/mipmap-xxxhdpi/
...

Их можно создать и настроить через Image Asset Studio в Android Studio (→ New → Image Asset).

📱 Что происходит в системе

  1. PackageManager анализирует манифест при установке.

  2. Видит activity с MAIN и LAUNCHER.

  3. Создаёт компонент в лаунчере.

  4. Лаунчер отображает иконку с названием приложения и запускает указанную Activity при нажатии.

⚠️ Что если не указать LAUNCHER?

Если нет категории LAUNCHER в манифесте:

  • Иконка не появится в списке приложений.

  • Приложение можно будет запустить только программно (например, как сервис или через adb shell am start).

  • Это поведение используют, например, библиотеки или фоновые приложения без интерфейса.

🧠 Итого

Иконка приложения появляется на рабочем столе благодаря объявлению активности с фильтром MAIN + LAUNCHER в AndroidManifest.xml. Это даёт системе понять, что приложение можно запускать из лаунчера, и какую активность считать стартовой.