applicationId与packageName的比较与使用

一:概念

<1>applicationId:

      Android应用的唯一标识,在Android设备和应用市场中中所有的应用程序的applicationId都是唯一的,要对一个应用进行更新,必须保证applicationId的值相同,否则就认为是不同的应用。

<2>packageName:

      Android应用包名。

二:比较

<1>在eclipse中:

   applicationId等同于包名。

<2>在AndroidStudio中:

a.在创建新项目时applilcationId和packageName是默认相同的,即与项目结构中的包名相同,在项目创建完毕后两者的修改互不影响,但要保证在AndroidManifest.xml中的package与项目结构路径的包名相同,否则会运行报错;

b.如果没有在gradle中设置applicationId的值,则项目默认读取packageName作为applicationId的值;

c.packageName可理解为项目代码和资源的路径;

<3>补充

a.在使用三方sdk时,要求填写的包名为项目唯一标识,及applicationId;

b.虽然applicationId和gradle中的applicationId的值可能会不同,但是再build之后,AndroidManifest.xml中的package会自动复制applicationId的值,但是activity的name值仍为编译前packageName的值(体现了packageName为寻找代码和资源的路径);

编译前文件
编译后文件

三.使用

<1>可以根据设置不同的applicationId值来实现在同一个手机里同时安装测试和正式包的功能;

使用步骤:

a.在app的build文件中添加debug包用到的applicationId;

b.直接运行项目或者打debug包;

tips:在直接运行项目,或者打debug包的时候会自动引用debug的applicationIdSuffix的值,“.”之前的部分自动补全为applicationId的值,在debug的applicationIdSuffix也可以覆盖定义名称,如   “com.test.app”,则不再补全;

生成不同applicationId的debug包设置

<2>可以根据打包时设置不同渠道不同的applicationId值来打出不同的应用;

a.在app的build文件中添加productFlavors中的渠道,并设置相应applicationId的名称;

b.在打包时直接选择相应渠道进行打包,如图;

tips:在多渠道打包设置applicationId时,最好采用覆盖方式进行命名(即不以“.”开头),否则会引起报错;

采用不同的applicationId多渠道打包

<3>在使用一些三方sdk时,可以根据不同的applicationId值来生命测试和正式的应用账号,方便测试(例如极光推送,要根据不同的applicationId值来产生不同的APPKey,并识别进行推送)。

<4>可在AndroidManifest.xml中使用${applicationId}引用applicationId。



ps:第一次写文章,有些的不正确的地方请留言提出,多多指教,多谢!

同时借鉴了一些大牛的文章,在此表示感谢,附带链接:

https://blog.csdn.net/u011105728/article/details/53197783

https://zhidao.baidu.com/question/620123351579513012.html

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 179,323评论 25 708
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,695评论 19 139
  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 47,286评论 6 342
  • 低智学习,简单来说就是“复制粘贴”别人的成功经验。 高智学习,简单说来就是深挖经验,加以润色回炉,成就自己的经验。...
    开心小媛阅读 357评论 2 3
  • 偷闲浏览了下朋友圈,成功的被朋友发的一个标题吸引了: “趁年轻,多谈几场轰轰烈烈的“恋爱”|新青年.尼格买提”,里...
    吴金兰阅读 658评论 4 0

友情链接更多精彩内容