Package Name — vad är det, omvänd domännotation och krav

Författare: IT Sectr Publicerad: 2026-04-17 Lästid: 8 min

Package Name — är en unik identifierare för Android-applikationer, baserad på omvänd skrivning av domännamn (reverse domain notation). Den används av systemet för att särskilja applikationer på användarens enhet, i Google Play för att identifiera produkten och i Firebase-tjänster för att binda alla projektkonfigurationer. Enligt Android Developer Documentation förblir Package Name oförändrat under hela applikationens livscykel efter publicering.

Huvudpunkter

  • Package Name — global identifierare för Android-applikationer i reverse domain-format
  • Format använder företagets domän i omvänd ordning: com.example.app
  • Unikhet kontrolleras av Google Play vid publicering — dubbletter är förbjudna
  • Ändring av Package Name efter publicering är omöjligt utan att skapa en ny applikation
  • Application ID i build.gradle motsvarar Package Name och konfigureras separat

Vad är Package Name i Android

Package Name — är en unik sträng som Android använder för att identifiera applikationen på operativsystemsnivå. Den motsvarar fältet package i filen AndroidManifest.xml och fältet applicationId i filen build.gradle för applikationsmodulen. Utan ett unikt Package Name är installation av applikationen på användarens enhet omöjlig.

Syftet med Package Name

På enheten fungerar Package Name som en nyckel för hantering av applikationer: systemet lagrar data, inställningar och cache för varje applikation i katalogen /data/data/[packageName]. Två applikationer med samma identifierare kan inte samexistera — vid försök att installera en dubblett föreslår systemet att den befintliga tas bort.

Package Name och Application ID

I Android Gradle Plugin version 0.11+ uppstod en separation mellan Package Name (i manifestet) och Application ID (i build.gradle). Application ID är den faktiska identifieraren för applikationen för systemet och Google Play. Package Name i manifestet används för resursupplösning och generering av R-klassen. Det rekommenderas att hålla dem lika för enkelhetens skull.

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

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

Fältet applicationIdSuffix gör det möjligt att lägga till ett suffix till Application ID för olika kompileringskonfigurationer. Debug-versionen kan ha identifieraren com.example.app.debug, vilket gör det möjligt att installera den bredvid produktionsversionen för parallell testning.

Namnregler för Package Name

Google Play fastställer strikta regler för Package Name som måste följas vid publicering. Identifieraren måste vara unik i hela butikens skala, uppfylla syntaktiska krav och inte bryta mot policy för användning av varumärken.

Syntaktiska krav

Package Name får endast innehålla latinska bokstäver (A-Z, a-z), siffror (0-9), punkt (.) och understreck (_). Maximal längd — 150 tecken. Varje segment mellan punkter måste börja med en bokstav. Bindestreck, mellanslag och specialtecken är förbjudna enligt Google Plays regler.

KravVärdeExempel
Tillåtna teckenLatinska bokstäver, siffror, punkt, understreckcom.example.my_app
Maximal längd150 teckencom.example.verylongappname
SegmentstartEndast bokstavcom — inte 3com
FörbjudetBindestreck, mellanslag, kyrilliskacom.min-domän — fel
UnikhetGlobal i Google PlayKontroll vid skapande

Krav på unikhet

Unikhet för Package Name — är ett absolut krav från Google Play Store. Om en annan applikation redan använder den valda identifieraren kommer publiceringen att avvisas. Google frigör inte identifierare för borttagna applikationer, därför är valet av det första Package Name ett kritiskt beslut för varje utvecklingsprojekt.

Omvänd domännotation och konventioner

Omvänd domännotation — är en namngivningsstandard där företagets domännamn skrivs i omvänd ordning: com.example istället för example.com. Ett sådant system garanterar global unikhet för identifierare, eftersom varje domännamn per definition är unikt.

Standardprefix

Utvecklare använder vanligtvis prefix som motsvarar TLD för deras domän: com för kommersiella organisationer, org för ideella, io för tekniska projekt, net för nätverkstjänster och lösningar. För personliga projekt är det tillåtet att använda com.github.username eller com.email.

  • com.company.app — standardformat för kommersiella applikationer
  • org.company.app — för ideella och open-source-projekt
  • io.company.app — populärt bland startups och SaaS-produkter
  • com.github.username — för personliga projekt på GitHub

Konventioner för multiplattformsprojekt

För applikationer som släpps på iOS och Android rekommenderas att använda samma identifierare på båda plattformarna. Detta förenklar integrationen med Firebase, AppsFlyer, Adjust och andra analyssystem som är knutna till projektidentifieraren. Till exempel kommer com.mycompany.myapp att vara Bundle ID på iOS och Package Name på Android.

Konfigurera Package Name i Android-projekt

Konfigurera Package Name i ett Android-projekt innebär att ändra applicationId i build.gradle och motsvarande katalogstruktur för Java/Kotlin-kod. Android Studio tillhandahåller verktyg för att refaktorera Package Name, men för komplexa projekt rekommenderas stegvis migrering.

Katalogstruktur och Package Name

kotlin
// Filsökvägen motsvarar 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)
    }
}

I Kotlin och Java måste Package Name i källfiler motsvara katalogstrukturen. Vid ändring av Package Name i build.gradle måste filer flyttas till motsvarande kataloger och alla package- och importdeklarationer uppdateras. Android Studio kan göra detta automatiskt via Refactor -> Move, men för stora projekt med dussintals filer rekommenderas att kontrollera resultatet efter refaktorering.

Om projektet använder Data Binding, View Binding eller Hilt kommer ändring av Package Name också att påverka genererade klasser. Bindningsklasser skapas baserat på modulens Package Name och layoutkatalogen. Efter ändring av identifieraren måste projektet byggas om för att uppdatera alla genererade referenser. Det rekommenderas att utföra en clean build efter ändring av Package Name för att eliminera fel på grund av cachade gamla referenser.

I Gradle 7.0+ tillkom stöd för namespace i build.gradle, som ersatte package i AndroidManifest.xml för generering av R-klass och resurser. Application ID förblir dock den faktiska identifieraren för applikationen för systemet och Google Play. Detta gör det möjligt att ha olika applicationId och namespace, vilket är användbart för biblioteksmoduler där namespace är fast och den publika identifieraren kan ändras vid kompilering.

För projekt med modulär arkitektur kan ändring av Package Name för en modul påverka importer i andra moduler. Om datamodulen har paketet com.example.data och domänmodulen använder dess klasser, uppdatera importerna i alla beroende moduler efter identifierarändringen. Gradle-plugin för Android version 8.0+ förenklar denna process genom automatisk generering av namespace från build.gradle.

Kontrollera Package Name via kod

Aktuell Application ID kan hämtas via klassen BuildConfig: BuildConfig.APPLICATION_ID. Detta är praktiskt för villkorslogik i kod, bindning till miljön eller visning av identifieraren på debug-skärmar. BuildConfig genereras automatiskt baserat på build.gradle.

kotlin
// Hämta Application ID vid körning
val packageName = BuildConfig.APPLICATION_ID
val packageManager = packageManager
val appInfo = packageManager.getPackageInfo(packageName, 0)

println("Appversion: ${appInfo.versionName} (${appInfo.versionCode})")
println("Paket: $packageName")

Ändra Package Name efter publicering

Ändra Package Name efter publicering av applikationen i Google Play — är en operation som innebär att skapa en helt ny produkt. Systemet tillåter inte uppdatering av en befintlig applikation med ett annat Package Name, därför är beslutet att ändra identifieraren likvärdigt med att starta om projektet i butiken.

Konsekvenser av att ändra Package Name

Vid ändring av Package Name förloras: alla betyg och recensioner, installationsstatistik, integration med Google Services (om inte överförd), referenser till Firebase-projekt (kräver skapande av ny google-services.json). Användare får ingen automatisk uppdatering — de kommer att se en ny applikation i butiken.

  • Betyg och recensioner — stannar kvar hos den gamla applikationen, överförs inte
  • Installationsstatistik — nollställs för det nya Package Name
  • Firebase-projekt — kräver ny konfiguration av google-services.json och omkonfigurering av alla tjänster
  • Användare — får ingen automatisk uppdatering, måste meddelas separat

När är ändring av Package Name motiverad

Ändring av Package Name kan vara motiverad vid omprofilering av företaget, överföring av applikationen till ett annat utvecklarkonto eller vid skapande av en separat version för en annan region. I vilket fall som helst rekommenderas att informera användare via den gamla applikationen och förbereda en migreringsplan med dataöverföring. Utan migreringsplan förlorar användare åtkomst till köpt innehåll, prenumerationer och sparade applikationsdata. Migrering innefattar överföring av databas och filer via SharedPreferences eller Room.

Innan du ändrar Package Name, se till att den nya identifieraren är unik och följer namnreglerna. Skapa en ny applikation i Google Play med det nya Package Name och publicera den som en separat produkt. I beskrivningen av den gamla applikationen lägger du till en länk till den nya. Överväg att använda Google Play Custom Store Listing för att omdirigera användare.

Vanliga frågor

Kan man använda bindestreck eller understreck i Package Name?

I Package Name är understreck (_) tillåtet, men inte bindestreck (-). Understreck används sällan men är acceptabelt: com.example.my_app. Bindestreck är förbjudet enligt Google Plays regler och orsakar fel vid publicering. Det rekommenderas att endast använda punkt som avgränsare för segment.

Vad är skillnaden mellan Package Name och Application ID i build.gradle?

Package Name — är identifieraren i AndroidManifest.xml, som används för resursupplösning och generering av R-klassen. Application ID — fältet i build.gradle som bestämmer applikationens identifierare för systemet och Google Play Store. Det rekommenderas att hålla dem lika, men skillnad är acceptabel vid användning av applicationIdSuffix.

Hur väljer man rätt Package Name för ett nytt projekt?

Använd omvänd domännotation för ditt företag eller användarnamn: com.domän.appnamn. Se till att identifieraren är unik i Google Play. Undvik allmänna ord (todo, test, app) och kontrollera om identifieraren är upptagen av en annan utvecklare genom sökning i Google Play.

Kan man ändra Package Name före publicering i Google Play?

Ja, före publicering i Google Play kan Package Name ändras utan konsekvenser. Efter ändring måste google-services.json återskapas, katalogstrukturen uppdateras och alla importer kontrolleras. Android Studio tillhandahåller verktygen Refactor -> Move för automatisering av processen.

Hur är Package Name relaterat till applikationens signatur?

Package Name tillsammans med signaturcertifikatet bildar en unik koppling som identifierar applikationen i Google Play. Även om två applikationer har olika Package Name kan de signeras med samma nyckel. Ändring av signaturcertifikat är möjlig via Key Rotation i Play Console utan förlust av identifieraren.

Sammanfattning

  • Package Name — unik identifierare för Android-applikationer i omvänd domännotationsformat
  • Namnregler — latinska bokstäver, siffror, punkt, understreck; max 150 tecken
  • Omvänd domän garanterar global unikhet: com.company.appname
  • Application ID i build.gradle motsvarar Package Name och kan ha kompileringssuffix
  • Ändring efter publicering är omöjlig — ny applikation förlorar betyg och recensioner
  • Android Studio tillhandahåller refaktoriseringsverktyg för säker ändring före publicering
  • Rekommendation — välj en meningsfull identifierare före publicering, undvik allmänna och upptagna namn

Vi utvecklar en mobil applikation nyckelfärdigt

IT Sectr skapar iOS- och Android-applikationer för startups och företag sedan 2017. Vi ger dig råd och föreslår den bästa lösningen.

Diskutera projektet

Läs också