applicationId和packageName,以及${applicationId}写法

亲测可用,若有疑问请私信

applicationId
理论上来讲applicationId是android设备以及google play所公认的唯一标示。
若未配置applicationId时,google play无法上线(据查)
配置applicationId可以用作同一工程发布略有差异的不同apk,比如收费版和免费版、代码相同标示不同的渠道包等
一般配置

android {
    ......
    defaultConfig {
        applicationId "sp.com.learncomposite"
        ......
    }
}
 设置不同的applicationId配置 

android {
    ......
    productFlavors {
        pro {
            applicationId = "sp.com.learncomposite.pro"
        }
        free {
            applicationId = "sp.com.learncomposite.free"
        }
    }
 
    buildTypes {
        ......
        debug {
            applicationIdSuffix ".debug"
        }
    }
}
packageName
将仅被代码(如资源文件R.java)或Manifest清单中声明(如类的包路径和packageName相同时,activity的name缩写为”.xxxActivity“)使用。
两者关系 
当applicationId不存在时,applicationId将默认为packageName。
当applicationId存在时,packageName仅有其本身的功能,而applicationId将作为唯一标示。
在Manifest中使用${applicationId}
如Provider在声明android:authorities(该值必须唯一)时,如前缀为写死的包名字符串,当出现需要同一工程分包、分渠道打包时,安装在同一android设备将导致 INSTALL FAILED CONFLICTING PROVIDER 的报错(使用adb安装会有提示),这时可以使用${applicationId},这将避免android:authorities值非唯一的问题。
也可以用在Manifest中其他需要唯一的取值情况,这种使用方式很灵活。
<provider
    android:name="xxxx.xxxx.xxx.xxxProvider"
    android:authorities="${applicationId}.xxxx"
    android:grantUriPermissions="true"
    android:exported="false"/>
${applicationId}也可以用在Manifest中其他需要唯一的取值情况,这种使用方式很灵活。
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值