Android中applicationId与package name的区别
2016-04-08 10:47
357 查看
今天在做项目的时候遇到了一个问题,我们打算做微信登录,我是用友盟做的,在导入友盟的sdk之后,按照文档都配置好了,结果登录完微信之后没有走相应的回调。然后我重新看了下友盟的文档,发现给微信的WXEntryActivity设置name的时候必须包名要统一,否则就不会走正常的回调,于是我定好了问题所在。那么为什么会出现这个问题呢,这就需要引出今天的话题了。我在给WXEntryActivity设置name的时候是按照清单文件里的package来弄得,(我用的ide是android studio 我的appid不是写死的
测试版和正式版的后缀不一样),而我name那却是按package写死的。
首先我们要明白applicationId的含义是什么,applicationId在Android系统中是作为应用的唯一标识,即在一个Android设备中所有的应用程序的applicationId都是唯一的。这意味着,一旦你已发布的程序使用了这个applicationId,你就无法再修改它。如果修改了,那么这个应用程序就会被系统当作是一个全新的应用程序,和你之前的应用程序是相互独立的。
我们看一下清单文件:
在这我们需要注意一下,在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中修改:
![](http://img.blog.csdn.net/20160408104449702?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
2.图形界面修改:
![](http://img.blog.csdn.net/20160408104507155?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
ok ~
测试版和正式版的后缀不一样),而我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 ~
相关文章推荐
- IOS自动布局中的浮动布局(6)----MyFloatLayout横空出世
- iOS 数组去重, 数组倒叙排列
- Unity3D手游开发日记(8) - 运动残影效果
- Android -- Looper.prepare()和Looper.loop() —深入版
- ios企业版证书怎样配置plist文件里边的url
- Android 程序框架设计
- iOS WKWebView高度自适应以及截获页面点击的url
- appium环境搭建
- 苹果企业账号打包发布APP流程详解
- iOS学习笔记(十七)——文件操作(NSFileManager)
- Kotlin学习之object表达式和声明
- iOS开发的交互界面的搭建选择
- android学习-----自定义View 加载动画
- Android日历选择控件DatePickerDialog只显示年月
- TextView 实现跑马灯效果
- iOS开发~iOS9状态栏颜色设置
- applePay 项目的配置和集成
- Android 跨进程通信之:AIDL
- 在AndroidStudio中导入第三方类库
- ImageLoader的基本使用