1. 程式人生 > >android怎麼獲取APP的唯一標識applicationId

android怎麼獲取APP的唯一標識applicationId

最近需要一個功能,就是獲取APP的唯一標識。這個就是applicationId了。

由於eclipse ADT中並沒有applicationId這個概念,eclipse ADT中APP的唯一標識就是AndroidManifest.xml中的包名packageName。這個壞處就是如果當初起的包名不好,要改包名,那就變成另一個APP了。

Android studio中引入了gradle.build中的applicationId這個概念,作為APP的唯一標識。這樣的好處是進行了解耦,applicationId作為APP的唯一標識,而AndroidManifest.xml中的包名package負責程式碼和資源的路徑,包名可以隨意改,可以和applicationId不一致。這樣還有一個好處,假如你想釋出一個免費版,一個收費版,你只需要在build.gradle中把applicationId後面加上免費版的字尾包名(如".free"),收費版加上收費版的字尾,你的程式碼也不需要對包名進行重構。

productFlavors {
        pro {
            applicationId = "com.example.my.pkg.pro"
        }
        free {
            applicationId = "com.example.my.pkg.free"
        }
    }

    buildTypes {
        debug {
            applicationIdSuffix ".debug"
        }
    }
獲取APP唯一標識applicationId的方法為:

getApplicationInfo().processName),或getApplication().getPackageName(),或getApplicationInfo().packageName

經測試,獲取的都是gradle.build中的applicationId,而不是AndroidManifest.xml中的包名package。