Create Multiple App Icons from a Single Flutter App (Like Amazon Pay)
Introduction
Have you ever noticed that the Amazon app installs only once, but shows multiple icons in the Android app drawer—such as Amazon and Amazon Pay?
Each icon:
- Opens a different screen
- Has different quick actions
- Behaves like a separate mini-app
Yet:
- There is only one APK installed
- Storage usage is not duplicated
This powerful Android capability is called:
And yes—you can implement it inside a Flutter app.
What is Android Activity Alias?
Activity Alias is an Android manifest feature that allows:
- Multiple launcher icons
- Different labels & icons
- Different entry activities
- All from the same installed app
So instead of:
1 App → 1 Launcher Icon
You get:
1 App → Multiple Launcher Icons → Multiple Entry Experiences
Real-World Use Cases
Popular apps using this pattern:
- Shopping + Payments separation
- Consumer + Business mode
- Lite tools inside a super-app
- Feature-focused entry points
This improves:
- User retention
- Feature discoverability
- Conversion to high-value flows (like payments)
Concept Architecture
Internally, Android app structure looks like:
Single APK
├── MainActivity → Opens Home
├── PayActivity → Opens Payments
├── Activity Alias #1 → Launcher icon for Main
├── Activity Alias #2 → Launcher icon for Pay
Each alias appears as a separate app icon, but all share:
- Same package
- Same permissions
- Same data
- Same installation
Visual Architecture Diagram Prompt (for AI image generation)
Use this prompt to generate a clean architecture diagram:
Implementing Activity Alias in Flutter
Flutter cannot directly create launcher aliases. You must configure it in the Android native layer.
We’ll do this step-by-step.
Step 1 — Create a Second Android Activity
Open:
android/app/src/main/AndroidManifest.xml
Add a new activity:
<activity
android:name=".PayActivity"
android:exported="true"
android:theme="@style/Theme.App">
</activity>
This activity will later open a different Flutter route.
Step 2 — Add Activity Alias for Second Launcher Icon
<activity-alias
android:name=".PayLauncher"
android:enabled="true"
android:exported="true"
android:icon="@mipmap/ic_pay"
android:label="My Pay"
android:targetActivity=".PayActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity-alias>
Now Android will:
- Show another icon in app drawer
- Launch PayActivity
- Still keep single installation
Launcher Result Illustration Prompt
Step 3 — Connect PayActivity to Flutter Route
Create:
PayActivity.kt
class PayActivity : FlutterActivity() {
override fun getInitialRoute(): String {
return "/pay"
}
}
This tells Flutter:
“When launched from Pay icon → open
/payscreen.”
Step 4 — Handle Route Inside Flutter
MaterialApp(
initialRoute: '/',
routes: {
'/': (_) => HomeScreen(),
'/pay': (_) => PayScreen(),
},
);
Done 🎉
You now have:
- Two app icons
- Two independent entry flows
- One Flutter app
User Flow Diagram Prompt
Advanced Capabilities
1. Enable/Disable Icons Dynamically
You can:
- Show Pay icon only after login
- Hide feature-based icons
- Run A/B experiments
Controlled via:
PackageManager.setComponentEnabledSetting()
2. Separate Analytics Per Icon
Track:
- Which launcher opened the app
- Conversion from Pay icon vs Home
- Feature adoption
This is huge for product teams.
3. White-Label Mini-Apps Inside One APK
Activity alias enables:
- Partner-branded entry points
- Region-specific icons
- Campaign-based launchers
Without:
- Multiple builds
- Store re-submission
Product Strategy Illustration Prompt
Android vs iOS Limitation
Android
✔ Multiple launcher icons supported ✔ Separate quick actions per icon ✔ Same installation
iOS
❌ Multiple simultaneous icons not allowed ✔ Siri Shortcuts workaround ✔ Quick actions via long-press
So true Activity Alias exists only on Android.
When Should You Use Activity Alias?
Use it when you want:
- Faster access to high-value features
- Super-app architecture
- Payment or scan flows to feel independent
- Better engagement & retention
Avoid if:
- App is very small
- Features are not frequently used
- UX may feel confusing
Final Thoughts
Android Activity Alias is one of the most underused growth features in mobile development.
With just:
- 1 extra activity
- 1 manifest alias
- 1 Flutter route
You can transform a simple Flutter app into a multi-entry super-app experience—just like major fintech and commerce platforms.
If you'd like next, I can write:
- Dynamic icon enable/disable in Flutter (production code)
- Deep linking + activity alias combined architecture
- Super-app design system for Flutter
Just tell me.



