ApplicationId与PackageName的区别

在android开发中,应用包名应用的唯一标示

在没有采用Gradle构建系统之前,包名是通过AndroidManifest.xml中的package属性标识的,如下所示:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.XXXX.app.XXX">
在eclipse中 包名的作用为:

包名是应用的唯一标示

包名属性同时作为项目源文件索引的R资源文件、Activity类文件的前缀(包名),通过制定包名,项目源文件可以省去输入完整路径的R文件等

Gradle构建系统允许构建不同版本的app

如“free”和“pro”版本并同时发布和安装,因此需要不同的“包名”来标示区分。这与上面的package属性唯一标识一个app产生冲突,

为了解决这个问题,Gradle引入了“applicationId”,使得package属性与applicationId解耦。

1.applicationId属性唯一标识app,包括在Google Play和设备上;

2,,package属性仍然作为项目源码引用R资源文件以及相关的Activity/Service时使用的包名前缀。

这样做的好处在于,你可以随便修改项目内部的“包名”,此时只需要修改项目源码结构以及AndroidManifest.xml文件中的package属性,

从而保证项目源码内部引用的R资源文件和Activity等源文件路径正确,而不会影响到发布到Google Play或者设备上,此时app的唯一标识只

认设备打包配置时使用的applicationId属性。

另一方面,你可以通过配置构建脚本进行多渠道多版本打包,而这个过程与以前的package属性无关

如果你没有在build.gradle中显式制定applicationId属性,该属性默认与AndroidManifest.xml中的package相同,最好是分开标识。

 defaultConfig {
        //applicationId "com.xxxxxx.app.mlc"
        applicationId "com.xxxxxx.app.uat"
        minSdkVersion 16
        targetSdkVersion 22
        versionCode 2
        versionName "1.2.1"
        multiDexEnabled true
    }





  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值