Package Name — bu nima, teskari domen notatsiyasi va talablar

Muallif: IT Sectr Nashr etilgan: 2026-04-17 O'qish vaqti: 8 daq

Package Name — bu domen nomining teskari yozuviga (reverse domain notation) asoslangan Android ilovasining noyob identifikatoridir. U tizim tomonidan foydalanuvchi qurilmasida ilovalarni farqlash, Google Play-da mahsulotni identifikatsiya qilish va Firebase xizmatlarida loyihaning barcha konfiguratsiyalarini bog'lash uchun ishlatiladi. Android Developer Documentation-ga ko'ra, Package Name nashr etilgandan so'ng ilonaning butun hayotiy sikli davomida o'zgarishsiz qoladi.

Asosiy ma'lumotlar

  • Package Name — reverse domain formatidagi Android ilovasining global identifikatori
  • Format kompaniya domenini teskari tartibda ishlatadi: com.example.app
  • Noyoblik nashr paytida Google Play tomonidan tekshiriladi — dublikatlar taqiqlangan
  • O'zgartirish Package Name nashrdan so'ng yangi ilova yaratmasdan mumkin emas
  • Application ID build.gradle da Package Name ga mos keladi va alohida sozlanadi

Android da Package Name nima

Package Name — bu Android operatsion tizim darajasida ilonani identifikatsiya qilish uchun foydalanadigan noyob qatordir. U AndroidManifest.xml faylidagi package maydoniga va ilova modulining build.gradle faylidagi applicationId maydoniga mos keladi. Noyob Package Name bo'lmasa, ilonani foydalanuvchi qurilmasiga o'rnatish mumkin emas.

Package Name ning vazifasi

Qurilmada Package Name ilovalarni boshqarish uchun kalit vazifasini bajaradi: tizim har bir ilonaning ma'lumotlari, sozlamalari va keshini /data/data/[packageName] katalogida saqlaydi. Bir xil identifikatorga ega ikkita ilova birga mavjud bo'lolmaydi — dublikatni o'rnatishga urinishda tizim mavjud ilonani o'chirishni taklif qiladi.

Package Name va Application ID

Android Gradle Plugin versiyasi 0.11+ da Package Name (manifestda) va Application ID (build.gradle da) o'rtasida bo'linish paydo bo'ldi. Application ID tizim va Google Play uchun ilonaning haqiqiy identifikatoridir. Manifestdagi Package Name resurslarni hal qilish va R sinfini yaratish uchun ishlatiladi. Oddiylik uchun ularni bir xil saqlash tavsiya etiladi.

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

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

applicationIdSuffix maydoni turli xil qurilish konfiguratsiyalari uchun Application ID ga qo'shimcha qo'shish imkonini beradi. Debug versiyasi com.example.app.debug identifikatoriga ega bo'lishi mumkin, bu esa uni parallel sinov uchun ishlab chiqarish versiyasi yoniga o'rnatish imkonini beradi.

Package Name nomlash qoidalari

Google Play nashr paytida rioya qilinishi kerak bo'lgan Package Name uchun qattiq qoidalarni belgilaydi. Identifikator butun do'kon miqyosida noyob bo'lishi, sintaktik talablarga javob berishi va savdo belgilaridan foydalanish siyosatini buzmasligi kerak.

Sintaktik talablar

Package Name faqat lotin harflari (A-Z, a-z), raqamlar (0-9), nuqta (.) va pastki chiziq (_) belgisini o'z ichiga olishi mumkin. Maksimal uzunlik — 150 belgi. Nuqtalar orasidagi har bir segment harf bilan boshlanishi kerak. Defislar, bo'shliqlar va maxsus belgilar Google Play qoidalari bilan taqiqlangan.

TalabQiymatMisol
Ruxsat etilgan belgilarLotin harflari, raqamlar, nuqta, pastki chiziqcom.example.my_app
Maksimal uzunlik150 belgicom.example.verylongappname
Segment boshlanishiFaqat harfcom — 3com emas
TaqiqlanganDefislar, bo'shliqlar, kirillcom.mening-domen — xato
NoyoblikGoogle Play da globalYaratishda tekshiriladi

Noyoblik talablari

Noyoblik Package Name — Google Play Store ning mutlaq talabidir. Agar boshqa ilova tanlangan identifikatorni allaqachon ishlatsa, nashr rad etiladi. Google o'chirilgan ilovalarning identifikatorlarini bo'shatmaydi, shuning uchun birinchi Package Name ni tanlash har bir dasturchi loyihasi uchun muhim qarordir.

Teskari domen notatsiyasi va konvensiyalar

Teskari domen notatsiyasi — bu kompaniya domen nomi teskari tartibda yoziladigan nomlash standartidir: example.com o'rniga com.example. Bunday tizim identifikatorlarning global noyobligini kafolatlaydi, chunki har bir domen nomi ta'rifiga ko'ra noyobdir.

Standart prefikslar

Dasturchilar odatda o'z domenining TLD siga mos keladigan prefiksni ishlatadilar: tijorat tashkilotlari uchun com, notijorat uchun org, texnologik loyihalar uchun io, tarmoq xizmatlari va yechimlari uchun net. Shaxsiy loyihalar uchun com.github.username yoki com.email ishlatish joizdir.

  • com.company.app — tijorat ilovalari uchun standart format
  • org.company.app — notijorat va ochiq manbali loyihalar uchun
  • io.company.app — startaplar va SaaS mahsulotlari orasida mashhur
  • com.github.username — GitHubdagi shaxsiy loyihalar uchun

Ko'p platformali loyihalar uchun konvensiyalar

iOS va Android da chiqariladigan ilovalar uchun ikkala platformada bir xil identifikatordan foydalanish tavsiya etiladi. Bu Firebase, AppsFlyer, Adjust va loyiha identifikatoriga bog'lanadigan boshqa analitik tizimlar bilan integratsiyani soddalashtiradi. Masalan, com.mycompany.myapp iOS da Bundle ID va Android da Package Name bo'ladi.

Android loyihasida Package Name sozlash

Package Name sozlash Android loyihasida build.gradle dagi applicationId ni va Java/Kotlin kodining tegishli katalog strukturasini o'zgartirishni o'z ichiga oladi. Android Studio Package Name ni refaktor qilish uchun vositalarni taqdim etadi, ammo murakkab loyihalar uchun bosqichma-bosqich migratsiya tavsiya etiladi.

Katalog strukturasi va Package Name

kotlin
// Fayl yo'li Package Name ga mos keladi
// 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)
    }
}

Kotlin va Java da manba fayllaridagi Package Name katalog strukturasiga mos kelishi kerak. build.gradle da Package Name o'zgartirilganda fayllarni tegishli kataloglarga ko'chirish va barcha package va import deklaratsiyalarini yangilash kerak. Android Studio buni Refactor -> Move orqali avtomatik bajarishi mumkin, ammo o'nlab fayllari bo'lgan katta loyihalar uchun refaktordan so'ng natijani tekshirish tavsiya etiladi.

Agar loyiha Data Binding, View Binding yoki Hilt dan foydalansa, Package Name o'zgarishi yaratilgan sinflarga ham ta'sir qiladi. Binding sinflari modulning Package Name i va layout katalogi asosida yaratiladi. Identifikator o'zgartirilgandan so'ng barcha yaratilgan havolalarni yangilash uchun loyihani qayta qurish talab qilinadi. Keshga olingan eski havolalar tufayli xatolarni bartaraf etish uchun Package Name o'zgartirilgandan so'ng clean build qilish tavsiya etiladi.

Gradle 7.0+ da build.gradle da namespace qo'llab-quvvatlanishi paydo bo'ldi, u R sinfi va resurslarni yaratish maqsadlari uchun AndroidManifest.xml dagi package o'rnini egalladi. Shu bilan birga applicationId tizim va Google Play uchun ilonaning haqiqiy identifikatori bo'lib qoladi. Bu turli xil applicationId va namespace ga ega bo'lish imkonini beradi, bu kutubxona modullari uchun foydalidir, bunda namespace qat'iy va ochiq identifikator qurilish paytida o'zgarishi mumkin.

Modulli arxitekturaga ega loyihalar uchun bitta modulning Package Name o'zgarishi boshqa modullardagi importlarga ta'sir qilishi mumkin. Agar data moduli com.example.data paketiga ega bo'lsa va domain moduli uning sinflaridan foydalansa, identifikator o'zgartirilgandan so'ng barcha bog'liq modullardagi importlarni yangilang. Android Gradle plagini versiyasi 8.0+ build.gradle dan namespace ni avtomatik yaratish hisobiga bu jarayonni soddalashtiradi.

Package Name ni kod orqali tekshirish

Joriy Application ID ni BuildConfig sinfi orqali olish mumkin: BuildConfig.APPLICATION_ID. Bu koddagi shartli mantiq, muhitga bog'lanish yoki debug ekranlarida identifikatorni ko'rsatish uchun qulaydir. BuildConfig build.gradle asosida avtomatik yaratiladi.

kotlin
// Application ID ni ish vaqtida olish
val packageName = BuildConfig.APPLICATION_ID
val packageManager = packageManager
val appInfo = packageManager.getPackageInfo(packageName, 0)

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

Nashrdan so'ng Package Name o'zgartirish

Package Name o'zgartirish ilova Google Play da nashr etilgandan so'ng — butunlay yangi mahsulot yaratishni anglatadigan operatsiyadir. Tizim boshqa Package Name bilan mavjud ilonani yangilashga ruxsat bermaydi, shuning uchun identifikatorni o'zgartirish qarori loyihani do'konda qayta ishga tushirishga tengdir.

Package Name o'zgartirishning oqibatlari

Package Name o'zgartirilganda yo'qoladi: barcha reytinglar va sharhlar, o'rnatish statistikasi, Google Services integratsiyasi (agar ko'chirilmagan bo'lsa), Firebase loyihasiga havolalar (yangi google-services.json yaratish talab qilinadi). Foydalanuvchilar avtomatik yangilanishni olmaydilar — ular do'konda yangi ilonani ko'radilar.

  • Reytinglar va sharhlar — eski ilova bilan qoladi, ko'chirilmaydi
  • O'rnatish statistikasi — yangi Package Name uchun nolga tushiriladi
  • Firebase loyihalari — yangi google-services.json konfiguratsiyasi va barcha xizmatlarni qayta sozlash talab qilinadi
  • Foydalanuvchilar — avtomatik yangilanishni olmaydi, alohida xabardor qilish kerak

Package Name o'zgartirish qachon asosli

Package Name o'zgartirish kompaniyaning rebrendingi, ilonani boshqa dasturchi hisobiga ko'chirish yoki boshqa mintaqa uchun alohida versiya yaratishda asosli bo'lishi mumkin. Har qanday holatda, o'zgartirishdan oldin foydalanuvchilarni eski ilova orqali xabardor qilish va ma'lumotlarni ko'chirish bilan migratsiya rejasini tayyorlash tavsiya etiladi. Migratsiya rejasisiz foydalanuvchilar sotib olingan tarkibga, obunalarga va saqlangan ilova ma'lumotlariga kirishni yo'qotadilar. Migratsiya SharedPreferences yoki Room orqali ma'lumotlar bazasi va fayllarni ko'chirishni o'z ichiga oladi.

Package Name o'zgartirishdan oldin yangi identifikatorning noyobligiga va nomlash qoidalariga mos kelishiga ishonch hosil qiling. Google Play da yangi Package Name bilan yangi ilova yarating va uni alohida mahsulot sifatida nashr eting. Eski ilova tavsifida yangisiga havola qo'shing. Foydalanuvchilarni yo'naltirish uchun Google Play Custom Store Listing dan foydalanishni o'ylab ko'ring.

Tez-tez beriladigan savollar

Package Name da defis yoki pastki chiziq ishlatish mumkinmi?

Package Name da pastki chiziq (_) belgisiga ruxsat beriladi, ammo defis (-) ga ruxsat berilmaydi. Pastki chiziq kamdan-kam ishlatiladi, ammo joiz: com.example.my_app. Defis Google Play qoidalari bilan taqiqlangan va nashr paytida xatoga olib keladi. Segmentlar ajratuvchisi sifatida faqat nuqtadan foydalanish tavsiya etiladi.

Package Name build.gradle dagi Application ID dan qanday farq qiladi?

Package Name — bu AndroidManifest.xml dagi identifikator bo'lib, resurslarni hal qilish va R sinfini yaratish uchun ishlatiladi. Application ID — build.gradle dagi maydon bo'lib, tizim va Google Play Store uchun ilonaning identifikatorini belgilaydi. Ularni bir xil saqlash tavsiya etiladi, ammo applicationIdSuffix ishlatganda farq joizdir.

Yangi loyiha uchun Package Name ni qanday to'g'ri tanlash mumkin?

Kompaniyangiz yoki taxallusingizning teskari domen notatsiyasidan foydalaning: com.domen.ilova_nomi. Identifikatorning Google Play da noyobligiga ishonch hosil qiling. Umumiy so'zlardan (todo, test, app) qoching va identifikator boshqa dasturchi tomonidan band emasligini Google Play da qidirish orqali tekshiring.

Google Play da nashr etishdan oldin Package Name o'zgartirish mumkinmi?

Ha, Google Play da nashr etishdan oldin Package Name oqibatlarsiz o'zgartirilishi mumkin. O'zgartirishdan so'ng google-services.json qayta yaratilishi, katalog strukturasi yangilanishi va barcha importlar tekshirilishi kerak. Android Studio jarayonni avtomatlashtirish uchun Refactor -> Move vositalarini taqdim etadi.

Package Name ilova imzosi bilan qanday bog'liq?

Package Name imzo sertifikati bilan birgalikda ilonani Google Play da identifikatsiya qiluvchi noyob bog'lanishni hosil qiladi. Hatto ikkala ilova turli xil Package Name ga ega bo'lsa ham, ular bir kalit bilan imzolanishi mumkin. Imzo sertifikatini o'zgartirish identifikatorni yo'qotmasdan Play Console da Key Rotation orqali mumkin.

Xulosa

  • Package Name — teskari domen notatsiyasi formatidagi Android ilovasining noyob identifikatori
  • Nomlash qoidalari — lotin harflari, raqamlar, nuqta, pastki chiziq; maksimum 150 belgi
  • Teskari domen global noyoblikni kafolatlaydi: com.company.appname
  • Application ID build.gradle da Package Name ga mos keladi va qurilish qo'shimchalariga ega bo'lishi mumkin
  • O'zgartirish nashrdan so'ng mumkin emas — yangi ilova reytinglar va sharhlarni yo'qotadi
  • Android Studio nashrdan oldin xavfsiz o'zgartirish uchun refaktor vositalarini taqdim etadi
  • Tavsiya — nashrdan oldin mazmunli identifikatorni tanlang, umumiy va band nomlardan qoching

Biz kalit topshirig'i bilan mobil ilovani ishlab chiqamiz

IT Sectr 2017-yildan beri startaplar va korxonalar uchun iOS va Android ilovalarini yaratadi. Biz sizga maslahat beramiz va eng yaxshi yechimni taklif qilamiz.

Loyihani muhokama qilish

Shuningdek o'qing