ApplicationId 与 PackageName

本文详细解释了在Android Studio中应用的包名(package)与Application ID之间的区别。在构建不同版本的应用时,如何确保R类引用不变,以及在代码重构过程中保持应用唯一标识的稳定性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

android studio中 applicationid和package的区别


在新的 Android Gradle 构建系统中,你可以轻松地构建多个不同版本的应用。例如,你可以同时构建免费版和专业版的应用(使用 flavor),并且它们在 Google Play 上也应该要有不同的包名,这样它们就能够在同一设备上安装并且能够单独购买使用等等。同样的,你也可以构建 “debug”、“alpha”、“beta” 版的应用(使用 build type),它们也同样可以有唯一的包名。

同时,代码中引用的 R 类要保持不变;在构建不同版本的应用时,对应的(引用了 R 的) .java 源文件也不能改动。

因此,我们将包名的两种作用解耦

  • application id” 对应 apk 中 manifest 定义的应用包名,同时用于设备以及 Google Play 的应用唯一标识
  • “package” 用于在源码中引用 R 类以及解析注册相关的 activity/service,对应 Java 的包名概念。

你能够完全自由地重构你的代码,改变用于 Activity 和 Service 的内部包,改变 Manifest 的 package,重构导入语句。这都不会影响到 app 的最终 id,app 的 id 对应 Gradle 文件中 applicationId 的值。

这里说的很清楚了androidstudio中确认唯一app的是applicationid ,而在eclipse中确认唯一app的是包名


附上两张我测试的图片:



但是删除androidmanifest中的包名会报错:





参考链接 : https://chaosleong.gitbooks.io/gradle-for-android/content/appendix/applicationid_versus_packagename.html


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值