Package Name — ano ito, reverse domain notation at mga kinakailangan

May-akda: IT Sectr Nai-publish: 2026-04-17 Oras ng pagbabasa: 8 min

Package Name — ay isang natatanging identifier ng Android application, batay sa reverse na pagsulat ng domain name (reverse domain notation). Ito ay ginagamit ng system upang pag-iba-ibahin ang mga application sa device ng user, sa Google Play para sa pagkilala ng produkto, at sa mga serbisyo ng Firebase para sa pagbigkis ng lahat ng configuration ng proyekto. Ayon sa Android Developer Documentation, ang Package Name ay nananatiling hindi nagbabago sa buong siklo ng buhay ng application pagkatapos ng pag-publish.

Mga Pangunahing Punto

  • Package Name — pandaigdigang identifier ng Android application sa reverse domain format
  • Format ay gumagamit ng domain ng kumpanya sa reverse order: com.example.app
  • Pagiging natatangi ay sinusuri ng Google Play sa pag-publish — bawal ang mga duplicate
  • Pagbabago ng Package Name pagkatapos ng pag-publish ay imposible nang walang paggawa ng bagong application
  • Application ID sa build.gradle ay tumutugma sa Package Name at naka-configure nang hiwalay

Ano ang Package Name sa Android

Package Name — ay isang natatanging string na ginagamit ng Android upang kilalanin ang application sa antas ng operating system. Ito ay tumutugma sa field na package sa AndroidManifest.xml file at sa field na applicationId sa build.gradle file ng module ng application. Kung walang natatanging Package Name, ang pag-install ng application sa device ng user ay imposible.

Layunin ng Package Name

Sa device, ang Package Name ay nagsisilbing susi para sa pamamahala ng mga application: ang system ay nag-iimbak ng data, setting, at cache ng bawat application sa direktoryo na /data/data/[packageName]. Dalawang application na may parehong identifier ay hindi maaaring magkasabay — sa pagtatangkang mag-install ng duplicate, iminumungkahi ng system na tanggalin ang umiiral na.

Package Name at Application ID

Sa Android Gradle Plugin bersyon 0.11+, lumitaw ang paghihiwalay sa pagitan ng Package Name (sa manifest) at Application ID (sa build.gradle). Ang Application ID ay ang aktwal na identifier ng application para sa system at Google Play. Ang Package Name sa manifest ay ginagamit para sa paglutas ng mga resource at pagbuo ng R class. Inirerekomenda na panatilihin silang pareho para sa pagiging simple.

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

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

Ang field na applicationIdSuffix ay nagbibigay-daan sa pagdagdag ng suffix sa Application ID para sa iba't ibang configuration ng compilation. Ang debug version ay maaaring magkaroon ng identifier na com.example.app.debug, na nagpapahintulot sa pag-install nito sa tabi ng production version para sa parallel testing.

Mga patakaran sa pagpapangalan ng Package Name

Google Play ay nagtatakda ng mahigpit na mga patakaran para sa Package Name na dapat sundin sa pag-publish. Ang identifier ay dapat na natatangi sa buong tindahan, tumugon sa mga kinakailangan sa syntax, at hindi lumabag sa patakaran sa paggamit ng trademark.

Mga kinakailangan sa syntax

Package Name ay maaari lamang maglaman ng mga letrang Latin (A-Z, a-z), numero (0-9), tuldok (.), at underscore (_). Ang maximum na haba — 150 character. Bawat segment sa pagitan ng mga tuldok ay dapat magsimula sa isang letra. Ang mga gitling, puwang, at espesyal na character ay ipinagbabawal ng mga patakaran ng Google Play.

KailanganHalagaHalimbawa
Pinapayagang characterMga letrang Latin, numero, tuldok, underscorecom.example.my_app
Maximum na haba150 charactercom.example.verylongappname
Simula ng segmentLetra lamangcom — hindi 3com
IpinagbabawalMga gitling, puwang, Cyrilliccom.aking-domain — error
Pagiging natatangiPandaigdigan sa Google PlaySinusuri sa paggawa

Mga kinakailangan sa pagiging natatangi

Pagiging natatangi ng Package Name — ay isang ganap na kinakailangan ng Google Play Store. Kung ang ibang application ay gumagamit na ng napiling identifier, ang pag-publish ay tatanggihan. Hindi pinapalaya ng Google ang mga identifier ng mga tinanggal na application, kaya ang pagpili ng unang Package Name ay isang kritikal na desisyon para sa bawat proyekto ng developer.

Reverse domain notation at mga kasunduan

Reverse domain notation — ay isang pamantayan sa pagpapangalan kung saan ang domain name ng kumpanya ay isinusulat sa reverse order: com.example sa halip na example.com. Ang ganitong sistema ay ginagarantiyahan ang pandaigdigang pagiging natatangi ng mga identifier, dahil ang bawat domain name ay sa kahulugan ay natatangi.

Mga karaniwang prefix

Ang mga developer ay karaniwang gumagamit ng prefix na tumutugma sa TLD ng kanilang domain: com para sa komersyal na organisasyon, org para sa non-profit, io para sa teknolohikal na proyekto, net para sa mga serbisyo at solusyon sa network. Para sa personal na proyekto, ang paggamit ng com.github.username o com.email ay pinapayagan.

  • com.company.app — karaniwang format para sa komersyal na application
  • org.company.app — para sa non-profit at open-source na proyekto
  • io.company.app — sikat sa mga startup at produkto ng SaaS
  • com.github.username — para sa personal na proyekto sa GitHub

Mga kasunduan para sa multi-platform na proyekto

Para sa mga application na inilalabas sa iOS at Android, inirerekomenda na gamitin ang parehong identifier sa parehong platform. Pinapasimple nito ang pagsasama sa Firebase, AppsFlyer, Adjust, at iba pang analytics system na nakatali sa identifier ng proyekto. Halimbawa, ang com.mycompany.myapp ay magiging Bundle ID sa iOS at Package Name sa Android.

Pag-configure ng Package Name sa Android project

Pag-configure ng Package Name sa Android project ay kinabibilangan ng pagbabago ng applicationId sa build.gradle at ng kaukulang istraktura ng direktoryo ng Java/Kotlin code. Ang Android Studio ay nagbibigay ng mga tool para sa refactoring ng Package Name, ngunit para sa kumplikadong proyekto, inirerekomenda ang unti-unting paglipat.

Istraktura ng direktoryo at Package Name

kotlin
// Ang path ng file ay tumutugma sa 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)
    }
}

Sa Kotlin at Java, ang Package Name sa source file ay dapat tumugma sa istraktura ng direktoryo. Kapag binabago ang Package Name sa build.gradle, ang mga file ay dapat ilipat sa mga kaukulang direktoryo at lahat ng deklarasyon ng package at import ay dapat i-update. Ang Android Studio ay maaaring gawin ito nang awtomatiko sa pamamagitan ng Refactor -> Move, ngunit para sa malalaking proyekto na may dose-dosenang file, inirerekomenda na suriin ang resulta pagkatapos ng refactoring.

Kung ang proyekto ay gumagamit ng Data Binding, View Binding o Hilt, ang pagbabago ng Package Name ay makakaapekto rin sa mga nabuong klase. Ang mga Binding class ay nilikha batay sa Package Name ng module at layout directory. Pagkatapos ng pagbabago ng identifier, kakailanganing muling itayo ang proyekto upang i-update ang lahat ng nabuong reference. Inirerekomenda na magsagawa ng clean build pagkatapos baguhin ang Package Name upang alisin ang mga error dahil sa naka-cache na lumang reference.

Sa Gradle 7.0+, lumitaw ang suporta para sa namespace sa build.gradle, na pumalit sa package sa AndroidManifest.xml para sa mga layunin ng pagbuo ng R class at resources. Gayunpaman, ang applicationId ay nananatiling aktwal na identifier ng application para sa system at Google Play. Ito ay nagpapahintulot na magkaroon ng magkaibang applicationId at namespace, na kapaki-pakinabang para sa library modules, kung saan ang namespace ay naayos at ang pampublikong identifier ay maaaring magbago sa compilation.

Para sa mga proyekto na may modular na arkitektura, ang pagbabago ng Package Name ng isang module ay maaaring makaapekto sa mga import sa ibang mga module. Kung ang data module ay may package na com.example.data at ang domain module ay gumagamit ng mga klase nito, pagkatapos ng pagbabago ng identifier, i-update ang mga import sa lahat ng umaasang module. Ang Gradle plugin para sa Android bersyon 8.0+ ay pinapasimple ang prosesong ito sa pamamagitan ng awtomatikong pagbuo ng namespace mula sa build.gradle.

Pagsusuri ng Package Name sa pamamagitan ng code

Ang kasalukuyang Application ID ay maaaring makuha sa pamamagitan ng BuildConfig class: BuildConfig.APPLICATION_ID. Ito ay maginhawa para sa conditional logic sa code, pag-binding sa kapaligiran, o pagpapakita ng identifier sa debug screens. Ang BuildConfig ay awtomatikong nabuo batay sa build.gradle.

kotlin
// Pagkuha ng Application ID sa runtime
val packageName = BuildConfig.APPLICATION_ID
val packageManager = packageManager
val appInfo = packageManager.getPackageInfo(packageName, 0)

println("Bersyon ng app: ${appInfo.versionName} (${appInfo.versionCode})")
println("Package: $packageName")

Pagbabago ng Package Name pagkatapos ng pag-publish

Pagbabago ng Package Name pagkatapos ng pag-publish ng application sa Google Play — ay isang operasyon na nangangahulugang paggawa ng isang ganap na bagong produkto. Hindi pinapayagan ng system na i-update ang umiiral na application na may ibang Package Name, kaya ang desisyon na baguhin ang identifier ay katumbas ng muling pagsisimula ng proyekto sa tindahan.

Mga kahihinatnan ng pagbabago ng Package Name

Sa pagbabago ng Package Name, nawawala: lahat ng rating at review, istatistika ng pag-install, pagsasama sa Google Services (kung hindi nailipat), mga reference sa Firebase project (nangangailangan ng paggawa ng bagong google-services.json). Ang mga user ay hindi makakatanggap ng awtomatikong update — makikita nila ang bagong application sa tindahan.

  • Rating at review — nananatili sa lumang application, hindi naililipat
  • Istatistika ng pag-install — nire-reset para sa bagong Package Name
  • Firebase projects — nangangailangan ng bagong configuration ng google-services.json at muling pag-configure ng lahat ng serbisyo
  • Mga user — hindi nakakatanggap ng awtomatikong update, kailangang ipaalam nang hiwalay

Kailan makatwiran ang pagbabago ng Package Name

Pagbabago ng Package Name ay maaaring maging makatwiran sa rebranding ng kumpanya, paglipat ng application sa ibang developer account, o paggawa ng hiwalay na bersyon para sa ibang rehiyon. Sa anumang kaso, bago ang pagbabago, inirerekomenda na ipaalam sa mga user sa pamamagitan ng lumang application at maghanda ng plano sa paglipat na may paglilipat ng data. Kung walang plano sa paglipat, ang mga user ay mawawalan ng access sa biniling nilalaman, subscription, at naka-save na data ng application. Kasama sa paglipat ang paglilipat ng database at file sa pamamagitan ng SharedPreferences o Room.

Bago baguhin ang Package Name, siguraduhin na ang bagong identifier ay natatangi at sumusunod sa mga patakaran sa pagpapangalan. Gumawa ng bagong application sa Google Play na may bagong Package Name at i-publish ito bilang isang hiwalay na produkto. Sa paglalarawan ng lumang application, magdagdag ng link sa bago. Isaalang-alang ang paggamit ng Google Play Custom Store Listing para sa pag-redirect ng mga user.

Mga Madalas Itanong

Maaari ba akong gumamit ng gitling o underscore sa Package Name?

Sa Package Name, ang underscore character (_) ay pinapayagan, ngunit ang gitling (-) ay hindi. Ang underscore ay bihirang ginagamit, ngunit katanggap-tanggap: com.example.my_app. Ang gitling ay ipinagbabawal ng mga patakaran ng Google Play at magdudulot ng error sa pag-publish. Inirerekomenda na gumamit lamang ng tuldok bilang separator ng mga segment.

Ano ang pagkakaiba ng Package Name at Application ID sa build.gradle?

Package Name — ay ang identifier sa AndroidManifest.xml, ginagamit para sa paglutas ng resources at pagbuo ng R class. Application ID — field sa build.gradle na tumutukoy sa identifier ng application para sa system at Google Play Store. Inirerekomenda na panatilihin silang pareho, ngunit ang pagkakaiba ay katanggap-tanggap kapag gumagamit ng applicationIdSuffix.

Paano pumili ng tamang Package Name para sa bagong proyekto?

Gamitin ang reverse domain notation ng iyong kumpanya o username: com.domain.pangalanapp. Siguraduhin na ang identifier ay natatangi sa Google Play. Iwasan ang mga karaniwang salita (todo, test, app) at suriin kung ang identifier ay hindi ginagamit ng ibang developer sa pamamagitan ng paghahanap sa Google Play.

Maaari ko bang baguhin ang Package Name bago mag-publish sa Google Play?

Oo, bago mag-publish sa Google Play, ang Package Name ay maaaring baguhin nang walang kahihinatnan. Pagkatapos ng pagbabago, kakailanganing muling buuin ang google-services.json, i-update ang istraktura ng direktoryo, at suriin ang lahat ng import. Ang Android Studio ay nagbibigay ng mga tool na Refactor -> Move para sa pag-automate ng proseso.

Paano nauugnay ang Package Name sa lagda ng application?

Package Name kasama ang sertipiko ng lagda ay bumubuo ng isang natatanging ugnayan na kumikilala sa application sa Google Play. Kahit na ang dalawang application ay may magkaibang Package Name, maaari silang lagdaan ng parehong susi. Ang pagbabago ng sertipiko ng lagda ay posible sa pamamagitan ng Key Rotation sa Play Console nang walang pagkawala ng identifier.

Buod

  • Package Name — natatanging identifier ng Android application sa reverse domain notation format
  • Mga patakaran sa pagpapangalan — mga letrang Latin, numero, tuldok, underscore; maximum na 150 character
  • Reverse domain ay ginagarantiyahan ang pandaigdigang pagiging natatangi: com.company.appname
  • Application ID sa build.gradle ay tumutugma sa Package Name at maaaring may compilation suffix
  • Pagbabago pagkatapos ng pag-publish ay imposible — bagong application nawawalan ng rating at review
  • Android Studio ay nagbibigay ng refactoring tools para sa ligtas na pagbabago bago mag-publish
  • Rekomendasyon — pumili ng makabuluhang identifier bago mag-publish, iwasan ang karaniwan at ginagamit na pangalan

Gagawa kami ng mobile application na turnkey

Gumagawa ang IT Sectr ng mga iOS at Android application para sa mga startup at negosyo mula noong 2017. Magpapayo kami sa iyo at magmumungkahi ng pinakamahusay na solusyon.

Pag-usapan ang proyekto

Basahin din