打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Android中applicationId与package name的区别
在做项目的时候遇到了一个问题,我们打算做微信登录,我是用友盟做的,在导入友盟的sdk之后,按照文档都配置好了,结果登录完微信之后没有走相应的回调。然后我重新看了下友盟的文档,发现给微信的WXEntryActivity设置name的时候必须包名要统一,否则就不会走正常的回调,于是我定好了问题所在。那么为什么会出现这个问题呢,这就需要引出今天的话题了。我在给WXEntryActivity设置name的时候是按照清单文件里的package来弄得,(我用的ide是android studio 我的appid不是写死的 测试版和正式版的后缀不一样),而我name那却是按package写死的。
首先我们要明白applicationId的含义是什么,applicationId在Android系统中是作为应用的唯一标识,即在一个Android设备中所有的应用程序的applicationId都是唯一的。这意味着,一旦你已发布的程序使用了这个applicationId,你就无法再修改它。如果修改了,那么这个应用程序就会被系统当作是一个全新的应用程序,和你之前的应用程序是相互独立的。
我们看一下清单文件:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.test.app"
android:versionCode="1"
android:versionName="1.0" >
在这我们需要注意一下,在eclipse中是没有applicationId这个概念的,在elcipse中applicationId即等同于package name,也就是我们清单文件中声明的package,它是作为一个应用的唯一标识。而在android studio中将这两个概念进行了隔离,我们可以在gradle文件中配置applicationId作为应用的唯一标识,假如没有在gradle中进行相应配置,那么applicationId就会默认为package name,不过我们一般会进行配置。所以package name在android studio中理解为一个查询类的路径比较合理,因为我们在配置四大组件的时候,name是可以缩写的,而package name就是我们可以省略的部分。
需要注意的是,我们在进行开发的时候,用到的一些三方sdk(例如友盟,百度等等)需要我们的包名,这的包名指得是applicationId而并非package name,当然在eclipse中也就没有区分了,因为它只有package name。
在android studio中设置applicationId有两种方式,如下图:
1.在gradle中修改:
2.图形界面修改:
ok ~7
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Android Studio之package org.junit does not exist解决办法
3用Android Studio开发JAVA应用程序
Flutter常见开发问题
如何将Eclipse中的项目迁移到Android Studio 中
android studio 构建项目一直卡在gradle build running
Gradle 下载及代理设置
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服