android怎麼獲取APP的唯一標識applicationId
阿新 • • 發佈:2019-01-06
最近需要一個功能,就是獲取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。