Package Name — co to je, reverzní doménová notace a požadavky

Autor: IT Sectr Publikováno: 2026-04-17 Doba čtení: 8 min

Package Name — je jedinečný identifikátor aplikace pro Android, založený na obráceném zápisu názvu domény (reverse domain notation). Používá jej systém k rozlišení aplikací na zařízení uživatele, v Google Play k identifikaci produktu a ve službách Firebase k propojení všech konfigurací projektu. Podle Android Developer Documentation zůstává Package Name po celý životní cyklus aplikace po publikování nezměněn.

Hlavní body

  • Package Name — globální identifikátor aplikace pro Android ve formátu reverse domain
  • Formát používá doménu společnosti v obráceném pořadí: com.example.app
  • Jedinečnost je kontrolována Google Play při publikování — duplikáty jsou zakázány
  • Změna Package Name po publikování není možná bez vytvoření nové aplikace
  • Application ID v build.gradle odpovídá Package Name a konfiguruje se samostatně

Co je Package Name v Androidu

Package Name — je jedinečný řetězec, který Android používá k identifikaci aplikace na úrovni operačního systému. Odpovídá poli package v souboru AndroidManifest.xml a poli applicationId v souboru build.gradle modulu aplikace. Bez jedinečného Package Name není instalace aplikace na zařízení uživatele možná.

Účel Package Name

Na zařízení slouží Package Name jako klíč pro správu aplikací: systém ukládá data, nastavení a mezipaměť každé aplikace do adresáře /data/data/[packageName]. Dvě aplikace se stejným identifikátorem nemohou koexistovat — při pokusu o instalaci duplikátu systém navrhne odstranění stávající.

Package Name a Application ID

V Android Gradle Plugin verzi 0.11+ došlo k oddělení mezi Package Name (v manifestu) a Application ID (v build.gradle). Application ID je skutečný identifikátor aplikace pro systém a Google Play. Package Name v manifestu se používá pro rozlišení zdrojů a generování třídy R. Doporučuje se je mít pro jednoduchost stejné.

groovy
// build.gradle (Modul: app)
android {
    defaultConfig {
        applicationId "com.example.myapplication"
        minSdkVersion 24
        targetSdkVersion 34
        versionCode 1
        versionName "1.0"
    }

    buildTypes {
        debug {
            applicationIdSuffix ".debug"
        }
    }
}

Pole applicationIdSuffix umožňuje přidat příponu k Application ID pro různé konfigurace sestavení. Debug verze může mít identifikátor com.example.app.debug, což umožňuje její instalaci vedle produkční verze pro paralelní testování.

Pravidla pojmenování Package Name

Google Play stanovuje přísná pravidla pro Package Name, která je třeba dodržovat při publikování. Identifikátor musí být jedinečný v rámci celého obchodu, splňovat syntaktické požadavky a neporušovat zásady používání ochranných známek.

Syntaktické požadavky

Package Name může obsahovat pouze latinská písmena (A-Z, a-z), číslice (0-9), tečku (.) a podtržítko (_). Maximální délka — 150 znaků. Každý segment mezi tečkami musí začínat písmenem. Spojovníky, mezery a speciální znaky jsou pravidly Google Play zakázány.

PožadavekHodnotaPříklad
Povolené znakyLatinská písmena, číslice, tečka, podtržítkocom.example.my_app
Maximální délka150 znakůcom.example.verylongappname
Začátek segmentuPouze písmenocom — ne 3com
ZakázánoSpojovníky, mezery, azbukacom.můj-doména — chyba
JedinečnostGlobální v Google PlayKontrola při vytváření

Požadavky na jedinečnost

Jedinečnost Package Name — je absolutní požadavek obchodu Google Play Store. Pokud jiná aplikace již vybraný identifikátor používá, publikování bude zamítnuto. Google neuvolňuje identifikátory odstraněných aplikací, proto je výběr prvního Package Name kritickým rozhodnutím pro každý vývojářský projekt.

Reverzní doménová notace a konvence

Reverzní doménová notace — je standard pojmenování, ve kterém se název domény společnosti zapisuje v obráceném pořadí: com.example místo example.com. Takový systém zaručuje globální jedinečnost identifikátorů, protože každý název domény je ze své podstaty jedinečný.

Standardní předpony

Vývojáři obvykle používají předponu odpovídající TLD jejich domény: com pro komerční organizace, org pro neziskové, io pro technologické projekty, net pro síťové služby a řešení. Pro osobní projekty je povoleno použití com.github.username nebo com.email.

  • com.company.app — standardní formát pro komerční aplikace
  • org.company.app — pro neziskové a open-source projekty
  • io.company.app — oblíbené mezi startupy a produkty SaaS
  • com.github.username — pro osobní projekty na GitHubu

Konvence pro multiplatformní projekty

Pro aplikace vydávané na iOS a Android se doporučuje používat stejný identifikátor na obou platformách. To zjednodušuje integraci s Firebase, AppsFlyer, Adjust a dalšími analytickými systémy, které se vážou k identifikátoru projektu. Například com.mycompany.myapp bude Bundle ID na iOS a Package Name na Androidu.

Konfigurace Package Name v projektu Android

Konfigurace Package Name v projektu Android zahrnuje změnu applicationId v build.gradle a odpovídající struktury adresářů kódu Java/Kotlin. Android Studio poskytuje nástroje pro refaktorování Package Name, ale pro složité projekty se doporučuje postupná migrace.

Struktura adresářů a Package Name

kotlin
// Cesta k souboru odpovídá Package Name
// com/example/myapp/MainActivity.kt

package com.example.myapp

import android.os.Bundle
import androidx.activity.ComponentActivity

class MainActivity : ComponentActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
    }
}

V Kotlin a Java musí Package Name ve zdrojových souborech odpovídat struktuře adresářů. Při změně Package Name v build.gradle je třeba přesunout soubory do odpovídajících adresářů a aktualizovat všechny deklarace package a import. Android Studio to umí provést automaticky pomocí Refactor -> Move, ale u velkých projektů s desítkami souborů se doporučuje zkontrolovat výsledek po refaktorování.

Pokud projekt používá Data Binding, View Binding nebo Hilt, změna Package Name ovlivní také generované třídy. Vazební třídy jsou vytvářeny na základě Package Name modulu a adresáře layout. Po změně identifikátoru bude nutné projekt přestavět, aby se aktualizovaly všechny generované odkazy. Doporučuje se provést clean build po změně Package Name, aby se odstranily chyby způsobené zastaralými odkazy v mezipaměti.

V Gradle 7.0+ se objevila podpora pro namespace v build.gradle, který nahradil package v AndroidManifest.xml pro účely generování třídy R a zdrojů. Application ID však zůstává skutečným identifikátorem aplikace pro systém a Google Play. To umožňuje mít různé applicationId a namespace, což je užitečné pro knihovní moduly, kde je namespace pevný a veřejný identifikátor se může při sestavení měnit.

U projektů s modulární architekturou může změna Package Name jednoho modulu ovlivnit importy v jiných modulech. Pokud má datový modul balíček com.example.data a doménový modul používá jeho třídy, po změně identifikátoru aktualizujte importy ve všech závislých modulech. Zásuvný modul Gradle pro Android verze 8.0+ zjednodušuje tento proces automatickým generováním namespace z build.gradle.

Kontrola Package Name pomocí kódu

Aktuální Application ID lze získat prostřednictvím třídy BuildConfig: BuildConfig.APPLICATION_ID. To je vhodné pro podmíněnou logiku v kódu, vázání na prostředí nebo zobrazení identifikátoru na debug obrazovkách. BuildConfig je automaticky generován na základě build.gradle.

kotlin
// Získání Application ID za běhu
val packageName = BuildConfig.APPLICATION_ID
val packageManager = packageManager
val appInfo = packageManager.getPackageInfo(packageName, 0)

println("Verze aplikace: ${appInfo.versionName} (${appInfo.versionCode})")
println("Balíček: $packageName")

Změna Package Name po publikování

Změna Package Name po publikování aplikace v Google Play — je operace, která znamená vytvoření zcela nového produktu. Systém neumožňuje aktualizovat stávající aplikaci s jiným Package Name, proto je rozhodnutí o změně identifikátoru ekvivalentní restartu projektu v obchodě.

Důsledky změny Package Name

Při změně Package Name se ztrácí: všechna hodnocení a recenze, statistiky instalací, integrace s Google Services (pokud nebyla přenesena), odkazy na projekt Firebase (vyžaduje vytvoření nového google-services.json). Uživatelé neobdrží automatickou aktualizaci — uvidí v obchodě novou aplikaci.

  • Hodnocení a recenze — zůstávají u staré aplikace, nepřenášejí se
  • Statistiky instalací — se vynulují pro nový Package Name
  • Projekty Firebase — vyžadují novou konfiguraci google-services.json a opětovné nastavení všech služeb
  • Uživatelé — neobdrží automatickou aktualizaci, je třeba je informovat samostatně

Kdy je změna Package Name oprávněná

Změna Package Name může být oprávněná při rebrandingu společnosti, převedení aplikace na jiný účet vývojáře nebo při vytváření samostatné verze pro jiný region. V každém případě se před změnou doporučuje informovat uživatele prostřednictvím staré aplikace a připravit plán migrace s přenosem dat. Bez migračního plánu uživatelé ztratí přístup k zakoupenému obsahu, předplatným a uloženým datům aplikace. Migrace zahrnuje přenos databáze a souborů prostřednictvím SharedPreferences nebo Room.

Před změnou Package Name se ujistěte, že nový identifikátor je jedinečný a odpovídá pravidlům pojmenování. Vytvořte novou aplikaci v Google Play s novým Package Name a publikujte ji jako samostatný produkt. Do popisu staré aplikace přidejte odkaz na novou. Zvažte použití Google Play Custom Store Listing pro přesměrování uživatelů.

Často kladené otázky

Je možné v Package Name použít spojovník nebo podtržítko?

V Package Name je povolen znak podtržítka (_), ale ne spojovník (-). Podtržítko se používá zřídka, ale je přijatelné: com.example.my_app. Spojovník je pravidly Google Play zakázán a při publikování způsobí chybu. Doporučuje se používat pouze tečku jako oddělovač segmentů.

Čím se liší Package Name od Application ID v build.gradle?

Package Name — je identifikátor v AndroidManifest.xml, používaný pro rozlišení zdrojů a generování třídy R. Application ID — pole v build.gradle, které určuje identifikátor aplikace pro systém a Google Play Store. Doporučuje se je mít stejné, ale rozdíl je přijatelný při použití applicationIdSuffix.

Jak správně vybrat Package Name pro nový projekt?

Použijte reverzní doménovou notaci vaší společnosti nebo přezdívky: com.domena.nazevaplikace. Ujistěte se, že identifikátor je jedinečný v Google Play. Vyhněte se obecným slovům (todo, test, app) a zkontrolujte, zda identifikátor není obsazen jiným vývojářem pomocí vyhledávání v Google Play.

Lze změnit Package Name před publikováním v Google Play?

Ano, před publikováním v Google Play lze Package Name změnit bez následků. Po změně bude nutné znovu vygenerovat google-services.json, aktualizovat strukturu adresářů a zkontrolovat všechny importy. Android Studio poskytuje nástroje Refactor -> Move pro automatizaci procesu.

Jak souvisí Package Name s podpisem aplikace?

Package Name spolu s certifikátem podpisu tvoří jedinečné propojení, které identifikuje aplikaci v Google Play. I když dvě aplikace mají odlišný Package Name, mohou být podepsány stejným klíčem. Změna certifikátu podpisu je možná prostřednictvím Key Rotation v Play Console bez ztráty identifikátoru.

Shrnutí

  • Package Name — jedinečný identifikátor aplikace pro Android ve formátu reverzní doménové notace
  • Pravidla pojmenování — latinská písmena, číslice, tečka, podtržítko; maximálně 150 znaků
  • Reverzní doména zaručuje globální jedinečnost: com.company.appname
  • Application ID v build.gradle odpovídá Package Name a může mít přípony sestavení
  • Změna po publikování není možná — nová aplikace ztrácí hodnocení a recenze
  • Android Studio poskytuje nástroje pro refaktorování pro bezpečnou změnu před publikováním
  • Doporučení — vyberte smysluplný identifikátor před publikováním, vyhněte se obecným a obsazeným názvům

Vyvineme mobilní aplikaci na klíč

IT Sectr vytváří aplikace pro iOS a Android pro startupy a podniky od roku 2017. Poradíme vám a navrhneme nejlepší řešení.

Prodiskutovat projekt

Přečtěte si také