想第一時間獲取我的最新文章,請關(guān)注公眾號: 技術(shù)特工隊(duì)
在 Android Gradle Build System 之前,PackageName 就是 App 的進(jìn)程 id贝润。
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.my.app"
android:versionCode="1"
android:versionName="1.0" >
此處的 package 屬性有兩個用途:
- App 的進(jìn)程 ID
- R 的包名以及 Manifest 中 Activity 等四大組件的相對包名硅确。
但是,Android 利用 Gradle 作為 Build System 之后就“起風(fēng)了”弱左。
apply plugin: 'com.android.application'
android {
compileSdkVersion 19
buildToolsVersion "19.1"
defaultConfig {
applicationId "com.example.my.app"
minSdkVersion 15
targetSdkVersion 19
versionCode 1
versionName "1.0"
}
com.android.application
插件的 android 這個 DSL container 中定義了一個 applicationId,這個 applicationId 取代 package name 成為 App 的進(jìn)程 id炕淮。
不同的 flavor 或者 build type 可以擁有不同的 application id拆火,也就是不同的進(jìn)程 id。
productFlavors {
pro {
applicationId = "com.example.my.pkg.pro"
}
free {
applicationId = "com.example.my.pkg.free"
}
}
buildTypes {
debug {
applicationIdSuffix ".debug"
}
}
所以鳖悠,application id 與 package name 分工明確榜掌。
總結(jié):
- application id 負(fù)責(zé) App 的進(jìn)程 ID
- package name 負(fù)責(zé) R 的包名以及 Manifest 中 Activity 等四大組件的相對包名
- 如果 build.gradle 中沒有指定 applicationId,那么 application id 的默認(rèn)值就是 manifest 的 package 屬性值乘综。
想第一時間獲取我的最新文章憎账,請關(guān)注公眾號: 技術(shù)特工隊(duì)