位置: 编程技术 - 正文
推荐整理分享ApplicationId与PackageName的区别,希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!
原文链接: 在android开发中,应用包名是APP在设备和Google Play的唯一标识,一旦app的新版本修改了包名再重新发布到Google Play,则会被处理为新的应用,app的老用户也无法接收到更新通知。
在没有采用Gradle构建系统之前,包名是通过AndroidManifest.xml中的package属性标识的,如下所示:
除此之外,包名属性同时作为项目源文件索引的R资源文件、Activity类文件的前缀(包名),通过制定包名,项目源文件可以省去输入完整路径的R文件等。
而Gradle构建系统允许构建不同版本的app,如“free”和“pro”版本并同时发布和安装,因此需要不同的“包名”来标示区分。这与上面的package属性唯一标识一个app产生冲突,为了解决这个问题,Gradle引入了“applicationId”,使得package属性与applicationId解耦。
1.applicationId属性唯一标识app,包括在Google Play和设备上;
2,,package属性仍然作为项目源码引用R资源文件以及相关的Activity/Service时使用的包名前缀。
在Gradle中配置applicationId可以通过在项目的build.gradle中做如下配置:
而上面第2点提到的package属性则仍然通过项目的AndroidManifest.xml中进行配置。
这样做的好处在于,你可以随便修改项目内部的“包名”,此时只需要修改项目源码结构以及AndroidManifest.xml文件中的package属性,从而保证项目源码内部引用的R资源文件和Activity等源文件路径正确,而不会影响到发布到Google Play或者设备上,此时app的唯一标识只认设备打包配置时使用的applicationId属性。
另一方面,你可以通过配置构建脚本进行多渠道多版本打包,而这个过程与以前的package属性无关。配置例子如下:
如果你没有在build.gradle中显式制定applicationId属性,该属性默认与AndroidManifest.xml中的package相同,最好是分开标识。
Intent和PendingIntent的区别 转自:
androidの亮屏,灭屏,解锁广播使用 androidの亮屏,灭屏,解锁广播使用1.亮屏广播的接收不需要添加权限那些,我在xml中配置action都是不生效的,没有接收到广播。//亮屏监听privateBroadcastRe
当TextView里写数字去除默认间距 最近开发的时候遇见一个很郁闷的问题当TexView中设置数字的时候数据和上下的TextView默认有个间距,检查后发现根本没有设置过间距的参数后来发现网
标签: ApplicationId与PackageName的区别
本文链接地址:https://www.jiuchutong.com/biancheng/386739.html 转载请保留说明!上一篇:Android下屏幕适配(android 屏幕适配方案)
友情链接: 武汉网站建设