[Gradle for Android 笔记系列]二 、PackageName 与 ApplicationId

本文内容主要来源:Gradle for Android (中文版)、CSDN博客

Gradle 被用作默认的 Android 构建系统之前,PackageName 的主要作用有两个:



  • 作为应用的唯一标志和进程ID
  • R 资源及四大组件中被用作包名

Gradle 被用作默认的 Android构建系统之后,一些就发生了改变:

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"
    }

AppliactionIdPackageName的分工:

  • applicationId负责 App 的唯一标示进程 ID
  • package name 负责 R 的包名以及 Manifest 中 Activity 等四大组件的相对包名

当我们在同一设备安装同一 App 的不同版本时,ApplicationId 可以很好的实现这一需求:

不同的 flavor 或者 build type 可以拥有不同的 application id,也就是不同的进程 id。

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

buildTypes {
    debug {
        applicationIdSuffix ".debug"
    }
}

如果 build.gradle 中没有指定 applicationId,那么 applicationId 的默认值就是 manifestpackage 属性值

你可能感兴趣的:([Gradle for Android 笔记系列]二 、PackageName 与 ApplicationId)