ID的作用
- 可以用ID在設(shè)備上和Google Play中對(duì)應(yīng)用進(jìn)行唯一標(biāo)識(shí)。如果上傳新的版本,id必須一樣,否則 Google play會(huì)將APK視為完全不同的應(yīng)用。
具體設(shè)置
- 在build.gradle中設(shè)置applicationId屬性
android {
defaultConfig {
applicationId "com.example.myapp"
minSdkVersion 15
targetSdkVersion 24
versionCode 1
versionName "1.0"
}
...
}
命名規(guī)則
- 必須只好包含兩端(一個(gè)或者多個(gè)圓點(diǎn))
- 每段必須以字母開頭
- 所以有字符必須為數(shù)字或者下滑線【a-z A-Z 0-9】
ID 與軟件包名稱的關(guān)系
- 當(dāng)在Android studio中新建項(xiàng)目的時(shí)候,applicationId會(huì)和Java軟件包名稱相同,除此之外,兩者之間并沒(méi)有什么關(guān)系。
- 可以更改代碼的軟件包名稱,不會(huì)影響Id。 但是會(huì)有其他影響 TODO 看官網(wǎng) 修改修改軟件包的影響。
- 注意:在某些方法中會(huì)使用“軟件包名稱”的術(shù)語(yǔ)。比如Context.getPackageName()但是其實(shí)返回的是應(yīng)用ID。
- 在更改軟件包名稱的時(shí)候,應(yīng)該始終匹配AndroidManifest.xml文件中的package屬性 這是因?yàn)?/li>
- 構(gòu)建工具以此為名稱用作應(yīng)用給的R.java的命名空間。
- 使用此名稱解析清單文件中聲明的任何類的名稱。比如activity的類。
: 代碼如下
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.myapp"
android:versionCode="1"
android:versionName="1.0" >
構(gòu)建不同編譯環(huán)境的應(yīng)用ID
-代碼如下所示。通過(guò)appliIdSuffix追加后綴的名字。
-當(dāng)編譯環(huán)境為 freeDebug的時(shí)候 應(yīng)用的Id就是 “com.example.myapp.free.debug”.其他類似
- 一個(gè)應(yīng)用可以有不同的應(yīng)用ID。 TODO參靠官網(wǎng)的”多APK支持“
android {
defaultConfig {
applicationId "com.example.myapp"
}
productFlavors {
free {
applicationIdSuffix ".free"
}
pro {
applicationIdSuffix ".pro"
}
}
buildTypes {
debug {
applicationIdSuffix ".debug"
}
}
}
測(cè)試對(duì)于ID的影響
- 默認(rèn)情況下 測(cè)試APK的后悔名字是追加”.test“。 比如這里的測(cè)試名字就是
com.example.myapp.free.test。 - 也可以在
defaultConfig或者productFlavors中使用testApplicationId來(lái)更改應(yīng)用id。