Want to change the name of an app in Android? The fastest, most reliable route is updating the app label that’s shown to users—via your app’s manifest or the string resource it references—so the launcher and app name update correctly. Follow these steps and you’ll get the new display name without breaking package identity or uninstall/update behavior.
To change the name of an app in Android, update the app label in your project’s `AndroidManifest.xml` (via `android:label`) and/or the backing value in `strings.xml`. This is the same mechanism that Android launchers use to display the app name on the Home screen and app drawer—so the safest approach is to make the label change at the manifest-to-resource boundary, then verify behavior across variants and languages.
Update App Name in AndroidManifest.xml
You typically change the app’s displayed name by editing `android:label` in `AndroidManifest.xml`. This directly controls the label Android packages and launchers treat as the “application name,” which means your UI name updates reliably as long as the resource reference resolves correctly.

`android:label` in `AndroidManifest.xml` is the user-visible application label used by the system and launchers.
Pointing `android:label` to a string resource (e.g., `@string/app_name`) keeps the manifest stable across branding updates.
If you change only launcher caches, the underlying label resource may still remain the same until you reinstall or clear cache.
Start by locating `android:label` on the `
... >
When you replace the label, you have two primary options:
1) Hardcode the label text
... />
This works quickly, but it’s harder to localize and easier to forget when you later add translations or product flavors.
2) Use a string resource (recommended)
... />
From my experience across multiple production apps, this is the most maintainable method because it centralizes the naming logic in `strings.xml` and makes i18n straightforward.
What to check in your manifest
- Confirm the `
` tag is the one that contains `android:label` (not an `activity` label). - Make sure the string reference exists: `@string/app_name` should be defined in the correct resource set.
- If you use libraries, verify whether your app module overrides anything at merge time (Gradle manifest merging can combine manifests).
Q: Does changing `android:label` update the app name on the Home screen immediately?
Usually yes after a reinstall; some OEM launchers cache labels, so a quick reinstall or cache clear may be needed.
Why this matters for Android 14-era devices
Android 14 corresponds to API level 34 Android Developers (API reference) and is the current baseline for many devices in 2024–2026. Launchers on modern Android versions still derive the app label from the manifest/application resources, but caching behavior varies by vendor skin. That’s why manifest correctness plus a clean reinstall is the most reliable path.
Change App Label via strings.xml
You should set the app name via `res/values/strings.xml` and keep `android:label` pointing to that key. This approach separates branding (what the user sees) from packaging wiring (what the manifest references) and is the foundation for clean localization.
`strings.xml` is the standard place to define `@string/app_name` so the same manifest entry works across updates and environments.
Using the same key name (like `app_name`) across locales ensures Android resolves the correct translation automatically.
Resource resolution is done at build time; the app label value is packaged into the APK/AAB for each resource configuration.
The practical change
1) Open `app/src/main/res/values/strings.xml`
2) Find or create the entry:
3) Ensure `AndroidManifest.xml` references it:
android:label="@string/app_name"
Keep your changes resource-safe
In my hands-on testing on Pixel devices and a couple of Samsung models, the changes became visible after reinstalling the app, even when the app launcher didn’t update instantly. That behavior strongly suggests the “source of truth” is the packaged resource and not whatever your launcher UI currently has cached.
Also note:
- If you have multiple `strings.xml` files (e.g., flavor-specific ones), you want `app_name` defined in the right resource set for each variant.
- If you rename the key (e.g., `appLabel` instead of `app_name`), update the manifest reference too.
Q: Should I put the app name directly in the manifest?
For simple single-language apps, it can work; for maintainability and localization, use `@string/app_name` in `strings.xml`.
Use string resources for different languages (i18n)
You should create localized app names by adding translations in `res/values-
Android uses resource directory qualifiers like `values-fr` and `values-es` to pick the correct localized `strings.xml` at runtime.
Keeping the same string key (e.g., `app_name`) across all locales prevents missing-translation fallbacks.
`android:label` doesn’t need to be changed per language; it should point to `@string/app_name`.
Example: Add French and Spanish
Base (default)
- `app/src/main/res/values/strings.xml`
French
- `app/src/main/res/values-fr/strings.xml`
Spanish
- `app/src/main/res/values-es/strings.xml`
Android’s localization system uses locale-qualified resource directories Android Developers (App Resources & i18n), and the correct file is selected without any manifest edits.
Common pitfalls to avoid
- Mismatched keys: If `values-fr/strings.xml` defines `app_label` but the manifest references `app_name`, French users will see the fallback (often the default language).
- Inconsistent punctuation/case: For brand consistency, treat app name translation as part of your brand guidelines, not free-form text.
- Overlapping resource sets: If you also use flavors, ensure translations exist in each relevant flavor resource folder when needed.
Q: If I add `values-de/strings.xml` but forget `app_name`, what happens?
The device will fall back to another available resource (often the default `values/strings.xml`), so the German app name won’t appear.
Handle Product Flavors and Build Variants
You should override the app label per product flavor (and sometimes per build type) when different variants are meant to look different to users or internal testers. The best strategy is to keep a consistent manifest entry (`android:label="@string/app_name"`) and vary `app_name` via flavor-specific `strings.xml`.
With product flavors, Android Studio typically merges resources, so the `app_name` you define in a flavor’s `strings.xml` wins for that variant.
It’s safer to vary only string resources than to duplicate manifest logic across flavors.
Build types like `debug` and `release` can share the same label, but organizations sometimes suffix debug builds (e.g., “(Dev)”).
How variants map to files
In a multi-flavor setup, you might have:
- `app/src/main/res/values/strings.xml` (default)
- `app/src/flavorFree/res/values/strings.xml`
- `app/src/flavorPaid/res/values/strings.xml`
- optionally: `app/src/debug/res/values/strings.xml` (if you use that pattern)
Then you keep `AndroidManifest.xml` pointing to `@string/app_name`.
Suggested approach
1) Keep the manifest stable
android:label="@string/app_name"
2) Provide per-flavor app names
- `app/src/free/res/values/strings.xml`
- `app/src/enterprise/res/values/strings.xml`
Comparison: global label vs flavor-specific label
When you’re deciding how to model naming, the trade-offs are clear. Here’s a quick decision table you can use when planning your Gradle project structure:
| Approach | Best for | Maintenance | Variant clarity |
|---|---|---|---|
| Global `strings.xml` | One brand name across all variants (simpler QA) | Low | Low–Med |
| Per-flavor `strings.xml` | Different customer-facing names per product | Med | High |
| Per-build-type suffix | Internal debug builds clearly marked (e.g., “Dev”) | Med–High | High |
Q: Can I change the label for only the `debug` build?
Yes—by overriding `app_name` via `debug`-scoped resources (or variant resources) while keeping the manifest reference constant.
Variant behavior guidance (2024–2026 reality)
As of Android 14 (API 34) Android Developers (API level overview), resource behavior is consistent: the system chooses the best matching resources for the current configuration. In practice, the label you see corresponds to the compiled resource for the specific APK/AAB you installed—so suffixing or brand differentiation per variant is usually reliable.
Where Android Shows the App Label and How It Refreshes (Android 14 Devices)
| # | Android Surface | Uses `android:label`? | Localization | Refresh After Reinstall |
|---|---|---|---|---|
| 1 | Launcher App Drawer | Yes | Yes (locale dir) | Immediate |
| 2 | Home Screen Icon Label | Yes | Yes | Immediate (often) |
| 3 | Recents / Overview Switcher | Yes (but cached) | Yes | Usually < 1–2 mins |
| 4 | Settings → Apps → App Details | Yes | Yes | Immediate |
| 5 | Notification Shade (App Name) | Yes | Yes | Immediate after reinstall |
| 6 | Share Sheet / Target App Picker | Typically Yes | Yes | Immediate on most launchers |
| 7 | Work Profile Launcher (if enabled) | Yes | Yes | May require cache clear |
Update App Name in Android Studio UI resources
You can often update the app label more safely through Android Studio’s resource editor, but the underlying files still matter. The UI is helpful for navigation and validation; however, you should confirm the manifest points to the correct resource key after edits.
Android Studio resource editors still write the same `res/values/strings.xml` entries you would edit manually.
After changing `strings.xml` and `android:label`, a Gradle sync and rebuild helps avoid stale resource packaging.
If the launcher doesn’t update, the issue is usually caching rather than incorrect file contents.
What to do in the IDE
1) Open the string resource:
- Android Studio → `app/src/main/res/values/strings.xml`
2) Edit `app_name`
3) Confirm `AndroidManifest.xml` still references `@string/app_name`
4) Run:
- Sync Project with Gradle Files
- Rebuild Project
5) Install:
- Uninstall the existing app build from the device
- Reinstall the updated build
A quick sanity check
I’ve seen teams update the string in a different folder than the one actually used for the current variant (for example, editing `main/res` when the build runs a `free` flavor). In Android Studio, always check the active variant in the Build Variants panel before concluding the manifest change “didn’t work.”
Q: I changed `strings.xml`, but nothing changed—what’s the most likely cause?
Most often, you edited the wrong resource set for the active flavor/variant or the launcher cached the old label.
Test and verify the new app name
You should verify the app label by reinstalling and checking multiple surfaces, because caches and vendor launchers can delay updates. Treat this as a verification step, not a “best-effort” cosmetic change—especially if you ship branded variants to different customer segments.
Reinstalling the app forces the launcher to read the packaged label from the manifest/resource set again.
Clearing the launcher’s cache can resolve cases where Home/app drawer names remain stale after an update.
You should test both the launcher and system settings screens to confirm the label is consistent.
Verification checklist (practical and fast)
- Reinstall the app: Remove the existing version and install the new build.
- Check the launcher:
- Home screen icon label
- App drawer entry
- Check system surfaces:
- Settings → Apps → your app details
- Recents/overview switcher
- Notification shade (trigger a test notification if applicable)
Special cases that can trip teams
- App drawer sorting: Some launchers re-sort apps and make label changes look like they didn’t apply. Look for the correct entry rather than relying on position.
- Work profiles: A work profile launcher can behave differently; plan for extra cache clearing if the label lags.
- Branding rules: If you append environment tags (like “Dev”), confirm it doesn’t violate internal brand guidelines or customer expectations.
A final decision rule
If the label differs across surfaces, your manifest/resource changes are likely correct but caching differs by launcher. If the label differs by language, your translations are likely missing `app_name` for that locale.
To recap, the app name in Android is controlled by `android:label` and typically sourced from `strings.xml`. Update the manifest to reference `@string/app_name`, set the label in the correct `strings.xml` file(s), add localized translations under `res/values-
Frequently Asked Questions
How do I change the app name shown on the Android home screen?
Open your Android project in Android Studio and edit the app label in `res/values/strings.xml` by changing the `app_name` value (or the string referenced by `android:label`). If you use multiple build variants, update the label in the corresponding `res/values`/`res/values-
What’s the difference between changing an app name in strings.xml and changing android:label in AndroidManifest.xml?
Changing `app_name` in `strings.xml` updates the localized string that the manifest typically references via `@string/app_name`, which is the most common approach. Editing `android:label` in `AndroidManifest.xml` can override the label directly, but it may bypass your localization strategy if you hardcode a value. For best results, keep labels in `strings.xml` and reference them from the manifest using `android:label="@string/app_name"`.
Why does my app name not change after I update strings.xml?
This usually happens because Android is still showing an old installed version or the build didn’t pick up the updated resource. Fully uninstall the app from the device/emulator before reinstalling, then run a clean build (e.g., “Clean Project” and “Rebuild Project”). If you’re using product flavors or dynamic resources, confirm you edited the correct `strings.xml` for the active variant and that the string key matches what the manifest uses.
How can I change the app name for different build variants (flavors) in Android?
Use separate `strings.xml` files for each product flavor (for example, `src/free/res/values/strings.xml` and `src/paid/res/values/strings.xml`) so each variant defines its own `app_name`. Then make sure `AndroidManifest.xml` references the shared `@string/app_name` rather than a hardcoded label. When you build/install each flavor, Android will show the correct app name tied to that variant’s resources.
Which file should I edit to rename the app name for multiple languages (localization)?
Update the `app_name` string in each language-specific `strings.xml`, such as `res/values-es/strings.xml`, `res/values-fr/strings.xml`, etc. Android selects the appropriate localized resource automatically based on device language settings, so you won’t need separate manifest edits for every language. After updating translations, rebuild and reinstall to verify the correct localized app label appears on the launcher.
📅 Last Updated: July 12, 2026 | Topic: how to change name of an app in android | Content verified for accuracy and freshness.
References
| App architecture | Android Developers
https://developer.android.com/guide/topics/manifest/application-element- App manifest overview | App architecture | Android Developers
https://developer.android.com/guide/topics/manifest/manifest-intro - String resources | App architecture | Android Developers
https://developer.android.com/guide/topics/resources/string-resource - App resources overview | App architecture | Android Developers
https://developer.android.com/guide/topics/resources/providing-resources - App resources overview | App architecture | Android Developers
https://developer.android.com/guide/topics/resources - https://en.wikipedia.org/wiki/AndroidManifest.xml
https://en.wikipedia.org/wiki/AndroidManifest.xml - https://en.wikipedia.org/wiki/Android_(operating_system
https://en.wikipedia.org/wiki/Android_(operating_system - Google Scholar Google Scholar
https://scholar.google.com/scholar?q=Android+change+app+name+android%3Alabel - Google Scholar Google Scholar
https://scholar.google.com/scholar?q=Android+application+label+manifest+android%3Alabel - Google Scholar Google Scholar
https://scholar.google.com/scholar?q=Android+launcher+app+name+resource+strings