Android 清单文件包名(package)和applicationId和applicationIdSuffix区别

1、清单文件配置的包名:是代码中每个java文件上方的显示的包名
2、applicationId:表示的是应用的唯一ID标识,保证了应用的唯一性(其实就是相当于一个手机安装过含有这个ID的APP后就不能重复安装了),但是一般情况下是和清单文件中写的包名的值是一样的
3、applicationIdSuffix:修改应用唯一ID标识。其实就是在applicationId加上后缀进行区分。只有这样把应用的唯一标识改了,就可以在手机中同时安装同一一个应用的上线版本和测试版本两个app了,否则不允许安装
4、测试例子,在APP的gradle中修改

例子一:手机安装一个APP,只是BaseUrl不同,一个是发布app,一个是测试app.未修改applicationId。通过代码:this.getPackageName()得到的包名没有改变
build.gradle

android {
    defaultConfig {
    applicationId "com.test.sample"
 }
  buildTypes {
    release {
   //id 根据你自己的需要设置是否可以同时在一个手机上运行多个自己的app。
   buildConfigField "String", "API_HOST", "发布时的baseUrl"
    ....
  }
  dev{
  //测试包,设置识别码(个人理解)
      buildConfigField "String", "API_HOST", "测试时的baseUrl"
     ...
   }
  }
  productFlavors{
       flavors_release{
         resValue("string", "strKey","releaseStrValue")
   }

  flavors_dev{
       resValue("string", "strKey","devStrValue")
  }
 }
 }
 dependencies {
 }

例子二:手机可同时安装两个APP,一个是发布app,一个是测试app,修改了applicationId。通过代码:this.getPackageName()得到的包名发生了改变。
修改applicationId两种方法:
方法1:
productFlavors{
flavors_release{
applicationId "com.test.sampleRelease"
}
flavors_dev{
applicationId "com.test.sampleDev"
}
方法2:
productFlavors{
flavors_release{
applicationIdSuffix ".release"
}
flavors_dev{
applicationIdSuffix ".dev"
}

build.gradle

    android {
          defaultConfig {
             applicationId "com.test.sample"
          }
            buildTypes {
              release {
         //id 根据你自己的需要设置是否可以同时在一个手机上运行多个自己的app。
 
             ....
        }
             dev{
             //测试包,设置识别码(个人理解)
 
              ...
            }
          }
          productFlavors{
                flavors_release{
                applicationId "com.test.sampleRelease"
            }

        flavors_dev{
                applicationId "com..test.sampleDev"
       }
    }
  }
        dependencies {
       }

你可能感兴趣的:(Android 清单文件包名(package)和applicationId和applicationIdSuffix区别)