首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >清单包和applicationID可以与应用程序的真正java包不同吗?

清单包和applicationID可以与应用程序的真正java包不同吗?
EN

Stack Overflow用户
提问于 2017-11-15 16:46:12
回答 1查看 441关注 0票数 0

让我们分析一下这种情况:

gradle文件上的清单包和应用程序ID:com.myweb.mysuperapppackagenamewithaso

我的应用程序源码中的真正的java包:

代码语言:javascript
复制
com.mysourcecode.package1
com.mysourcecode.package2

这里有MainActivity:

代码语言:javascript
复制
com.mysourcecode.package1.MainActivity.java

这是可能的和安全的吗?清单包和applicationID可以与应用程序的真正java包不同吗?

EN

回答 1

Stack Overflow用户

发布于 2017-11-15 16:58:14

下面是我们需要考虑的三件事,

代码语言:javascript
复制
   applicationId: BuildConfig.APPLICATION_ID
   packageName: getApplicationContext().getPackageName()
   Java package: BuildConfig.class.getPackage().toString()

getPackageName给出了在最后时刻从gradle文件创建的相同的applicationId,它overrides AndroidManifest包。最终的AndroidManifest包含相同的applicationId.The getPackageName与applicationId相同,因为applicationId在最后时刻覆盖AndroidManifest中的packageName。

但对于Java代码,包与项目结构相同。源代码中用来引用R class并解析任何相关活动、服务注册的包仍然被称为清单中定义的包。因此,AndroidManifest应该有与Java包相同的包来解析相关的活动、服务。

因此,使用相同的java包,我们可以使用所有唯一的applicationId创建任意数量的APK。

示例:application flavors

参考:Android Package Name Vs Application ID

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47302910

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档