`
498320858
  • 浏览: 394487 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

android apk 安装路径 包名解析 覆盖安装等问题

阅读更多

 

Android package name

16thDec. × ’09

There are two independent notions of “package” in Android. One is the usual Java package, which is how the Java classes are organized inside your project. The other is the Application package, which is an unique application identifier used by Android to manage the installed applications. The two package names are completely independent and serve different purposes.

Java package

The Java package organizes the classes inside the application. Usually you have multiple Java packages in an application. You may put your own classes in a package that’s specific to your app (e.g. “com.domain.myapp”) and you keep the library classes that your project uses in their predefined Java package (e.g. “org.apache.lucene”). The Java packages in your app are mostly the internal business of your app and have little visibility outside of the application — they are visible only for the classes that are exposed to the system such as Activities, Views, Services etc you implement and specify in your app’s AndroidManifest.

What’s more, the Java packages of an application are local to that app. There can be multiple independent applications that implement the same class in the same package, and there is no conflict whatsoever.

The Java package is always scoped inside the application. Two Java packages with the same name (e.g. “org.apache.lucene”) located in different apps are in fact different packages and there is no identity or relation between them. This allows applications to use well-known libraries (such as our lucene example) without any possible interference with other apps that may use the same package/classes (or different versions of). The drawback is that there is duplicated code if many apps use the same classes over again (there is no reuse in-between the apps based on the Java package name).

The observation that on Android the Java package is local to the application means that we don’t have to worry about package name conflicts with other applications. Avoiding package name conflicts with unforeseen third-party apps was the main reason for the Java package name format “com.mydomain.myapp”, i.e. prefixing with your domain name avoids conflict — but there’s no possible conflict on Android to avoid.

This leads to the possibility of using liberal Java package names that violate the well-established Java convention. For example if your app is called “Calculator”, you may place classes in the Java package “calculator” instead of “com.mydomain.calculator” — how cool is that? Of course, that fact that you can does not mean that you should, and respecting the established convention is a good thing even though it’s not required on Android.

Application package

The Application package declared in the AndroidManifest.xml is specific to Android and is an identifier of the application. This identifier is unique among all the apps installed on the phone at a given moment — there can’t be two apps with the same Application package installed at the same time.

The Application package is also unique on the Android Market — there can’t be two apps with the same Application package on the Market.

On the other hand it is possible for two independent developers to create two different apps with the same Application package. Of course not both apps can be hosted on the Market — the Market would reject the second one due to the “unique App package name across Market” rule.

So conflict over the Application package with unforeseen third-party apps is possible, and that’s why it is recommended to use the Java package name convention (“com.mydomain.myapp”) for the Application package name as it avoids conflict.

Some developers chose to disregard the guideline “com.mydomain.myapp” and use fancy Application package names, e.g. “marcone.toddlerlock” for the ToddlerLock application — this liberal use is likely not recommended but certainly possible.

If you use unorthodox Application package names please be sure to make them very specific in order to minimize the chance of conflict (in the previous example, the “marcone.” prefix is specific to the developer and has little chance of conflict (hint: it’s derived from the developer’s name)).

Identifying Java classes across an Android system

To identify a Java class across an Android system (a class that can be part of any application) you have to specify both the Application package and the Java package and class name. It’s like you first specify the application with the App package, and then you specify the class inside the application with the Java package and class name. This is used for example when constructing an Intent to a specific class.

Because often the Application package is the same as the Java package (i.e. the same string), it appears as if you have to specify the package name twice! This can be a bit confusing in the beginning, but it becomes clear why both package names are needed as soon as you understand the difference between the Application package and Java package.

When specifying activity names in the AndroidManifest.xml you need to indicate the Java package and class name (e.g. “com.mydomain.myapp.MyActivity”). Android also allows the short-hand form “.MyActivity”, which indicates that the Java package for the given activity class is the same as the Application package, which is often the case. Of course if your app uses different Application package and Java package, you can’t use the short-hand form and need to always use the full Java package in the manifest.

This entry was posted in Uncategorized. Bookmark the permalink. Post a comment or leave a trackback: Trackback URL.

<!-- .entry-utility --><!-- .post -->

6 Comments

  1. Pierre
    Posted 2010-02-05 at 09:04 | Permalink

    That is clearly and simply explained. Thank you very much for this useful entry !

  2. Posted 2010-08-07 at 13:14 | Permalink

    This is a clearly articulated description of the Android package names. I appreciate the post and it clears up a lot of questions that I had.

  3. Posted 2010-08-12 at 23:58 | Permalink

    So, that’s it, very well explained. The two packages has a huge difference, and nothing to compare with them since they manifest in a different way as well. Hands down on you, i have nothing to ask anymore.

  4. Posted 2010-08-23 at 18:54 | Permalink

    Thank you. Nice explanation, very useful !

  5. Diaz
    Posted 2010-10-06 at 13:07 | Permalink

    I’m just starting android development and when I started my new android project , stopped after seeing the “package name” to google what should I worry about when naming my packages and what not. At first, I thought it was the same as Java packages. phew, good thing I’ve found this post. Saved me alot of headach. Thank you so much Mihai

  6. Posted 2010-10-13 at 13:25 | Permalink

    There is some overlap between the two types of packages. The generated R.java is created in a Java package that has the same name as the Android package. This causes problems when trying to use Android maven tools to generate two separate Android packages from a common base.

<!-- #comments-list .comments -->

One Trackback

  1. [...] Next up is to create and configure an Android project.  The application name is very important in creating an Android application.  The application name must be unique across the entire Google market as explained here. [...]

 

 

 

 

转载自:http://blog.javia.org/android-package-name/

分享到:
评论

相关推荐

    最新更新!!!上市公司-动态能力数据(2012-2023年)

    ## 01、数据介绍 动态能力理论最早由提斯(Teece)与皮萨洛(Pisano)于1994年正式提出,他们将动态能力定义为“能够创造新产品和新过程,以及对变化的市场环境做出响应的一系列能力”。 动态能力具体体现在吸收能力、创新能力和适应能力三个方面。这些能力使公司能够快速适应市场变化,抓住新的商业机会,从而保持或提升竞争优势。 数据名称:上市公司-动态能力数据 数据年份:2012-2023年 ## 02、相关数据及指标 证券代码 证券名称 年份 Symbol RD IA ACV DC

    使用JavaWeb技术实现文件的上传、下载.zip(毕设&课设&实训&大作业&竞赛&项目)

    项目工程资源经过严格测试运行并且功能上ok,可实现复现复刻,拿到资料包后可实现复现出一样的项目,本人系统开发经验充足(全栈全领域),有任何使用问题欢迎随时与我联系,我会抽时间努力为您解惑,提供帮助 【资源内容】:包含源码+工程文件+说明等。答辩评审平均分达到96分,放心下载使用!可实现复现;设计报告也可借鉴此项目;该资源内项目代码都经过测试运行,功能ok 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 【提供帮助】:有任何使用上的问题欢迎随时与我联系,抽时间努力解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 下载后请首先打开说明文件(如有);整理时不同项目所包含资源内容不同;项目工程可实现复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用,资源为网络商品(电子资料类)基于网络商品和电子资料商品的性质和特征不支持退款,质量优质,放心下载使用

    基于百度EasyDL训练的模型,并可以部署在前端、PC,移动端和微信小程序端,视频流推断.zip(毕设&课设&实训&大作业&竞赛&项目)

    项目工程资源经过严格测试运行并且功能上ok,可实现复现复刻,拿到资料包后可实现复现出一样的项目,本人系统开发经验充足(全栈全领域),有任何使用问题欢迎随时与我联系,我会抽时间努力为您解惑,提供帮助 【资源内容】:包含源码+工程文件+说明等。答辩评审平均分达到96分,放心下载使用!可实现复现;设计报告也可借鉴此项目;该资源内项目代码都经过测试运行,功能ok 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 【提供帮助】:有任何使用上的问题欢迎随时与我联系,抽时间努力解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 下载后请首先打开说明文件(如有);整理时不同项目所包含资源内容不同;项目工程可实现复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用,资源为网络商品(电子资料类)基于网络商品和电子资料商品的性质和特征不支持退款,质量优质,放心下载使用

    随机配置网络模型SCN多输入单输出拟合预测建模与效果评估图集展示,随机配置网络模型SCN多输入单输出拟合预测建模工具-直观输出预测图与评价报告,随机配置网络模型SCN做多输入单输出的拟合预测建模

    随机配置网络模型SCN多输入单输出拟合预测建模与效果评估图集展示,随机配置网络模型SCN多输入单输出拟合预测建模工具——直观输出预测图与评价报告,随机配置网络模型SCN做多输入单输出的拟合预测建模。 程序内注释详细直接替数据就可以使用。 程序语言为matlab。 程序直接运行可以出拟合预测图,迭代优化图,线性拟合预测图,多个预测评价指标。 PS:以下效果图为测试数据的效果图,主要目的是为了显示程序运行可以出的结果图,具体预测效果以个人的具体数据为准。 2.由于每个人的数据都是独一无二的,因此无法做到可以任何人的数据直接替就可以得到自己满意的效果。 ,核心关键词: 随机配置网络模型SCN; 多输入单输出拟合预测建模; 程序内注释; MATLAB程序; 拟合预测图; 迭代优化图; 线性拟合预测图; 预测评价指标。,Matlab下的多输入单输出网络模型预测建模及评价指标体系构建

    主应力方向破坏:深入解析comsol水力压裂的力学机制,comsol技术解析:水力压裂主应力方向与岩层破坏之探究,comsol水力压裂,主应力方向的破坏 ,comsol水力压裂; 主应力方向; 破坏

    主应力方向破坏:深入解析comsol水力压裂的力学机制,comsol技术解析:水力压裂主应力方向与岩层破坏之探究,comsol水力压裂,主应力方向的破坏 ,comsol水力压裂; 主应力方向; 破坏; 裂缝扩展。,水力压裂主应力破坏研究

    基于碳捕集电厂低碳特性的多时间尺度综合能源系统调度模型与优化算法研究,基于碳捕集电厂低碳特性与综合能源系统的多时间尺度电热调度模型 ,计及碳捕集电厂低碳特性 需求响应 综合能源系统 多时

    基于碳捕集电厂低碳特性的多时间尺度综合能源系统调度模型与优化算法研究,基于碳捕集电厂低碳特性与综合能源系统的多时间尺度电热调度模型。,计及碳捕集电厂低碳特性 需求响应 综合能源系统 多时间尺度调度模型 MATLAB代码: 关键词:碳捕集电厂 综合灵活运行方式 需求响应 日前调度 实时调度 参考文档:《计及碳捕集电厂低碳特性的含风电电力系统源-荷多时间尺度调度方法》非完全复现,只做了日前日内部分,并在上述基础上改进升级为电热综合电源系统 仿真平台:MATLAB yalmip+cplex 主要内容:代码主要做的是一个电厂 微网多时间尺度电热综合能源系统低碳经济调度模型,源侧在碳捕集电厂中装设烟气旁路系统与溶液存储器,形成碳捕集电厂综合灵活运行方式进而与风电协调配合;荷侧调用不同响应速度的价格型、激励型需求响应资源克服多时间尺度下碳捕集电厂综合灵活运行方式的局限,通过源荷资源协调优化,从而提高系统的低碳性能。 其次,构建源荷协调的日前-日内两阶段低碳经济调度模型,优化系统的负荷及分配计划。 ,关键词:碳捕集电厂; 综合灵活运行方式; 需求响应; 日前调度; 实时调

    chromedriver-mac-arm64-135.0.7031.0(Canary).zip

    chromedriver-mac-arm64-135.0.7031.0(Canary).zip

    基于百度语音和图灵机器人实现的智能在线语音聊天 ,web端视音频录制.zip(毕设&课设&实训&大作业&竞赛&项目)

    项目工程资源经过严格测试运行并且功能上ok,可实现复现复刻,拿到资料包后可实现复现出一样的项目,本人系统开发经验充足(全栈全领域),有任何使用问题欢迎随时与我联系,我会抽时间努力为您解惑,提供帮助 【资源内容】:包含源码+工程文件+说明等。答辩评审平均分达到96分,放心下载使用!可实现复现;设计报告也可借鉴此项目;该资源内项目代码都经过测试运行,功能ok 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 【提供帮助】:有任何使用上的问题欢迎随时与我联系,抽时间努力解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 下载后请首先打开说明文件(如有);整理时不同项目所包含资源内容不同;项目工程可实现复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用,资源为网络商品(电子资料类)基于网络商品和电子资料商品的性质和特征不支持退款,质量优质,放心下载使用

    基于python+vue开发的网上商城系统

    1. 网上商城系统 这是一个基于python+vue开发的商城网站,平台采用B/S结构,后端采用主流的Python语言进行开发,前端采用主流的Vue.js进行开发。 整个平台包括前台和后台两个部分。 前台功能包括:首页、商品详情页、用户中心模块。 后台功能包括:总览、订单管理、商品管理、分类管理、标签管理、评论管理、用户管理、运营管理、日志管理、系统信息模块。

    MATLAB环境下基于振动信号的旋转机械状态监测与预测算法研究与应用拓展,MATLAB环境下基于振动信号的旋转机械状态监测与预测算法研究与应用拓展,MATLAB环境下使用振动信号对旋转机械进行状态监测

    MATLAB环境下基于振动信号的旋转机械状态监测与预测算法研究与应用拓展,MATLAB环境下基于振动信号的旋转机械状态监测与预测算法研究与应用拓展,MATLAB环境下使用振动信号对旋转机械进行状态监测和预测。 算法运行环境为MATLAB r2021b,从滚动轴承的振动信号中提取特征、进行状态监测和预测。 算法可迁移至金融时间序列,地震 微震信号,机械振动信号,声发射信号,电压 电流信号,语音信号,声信号,生理信号(ECG,EEG,EMG)等一维时间序列信号。 ,MATLAB环境; 振动信号; 旋转机械状态监测与预测; 滚动轴承; 特征提取; 一维时间序列信号。,MATLAB算法:一维时间序列振动信号的旋转机械状态监测与预测

    玩转 Python @property:让属性和方法毫不费力地融合

    @property 是 Python 中的装饰器,用于将方法转换为属性,使得访问属性时无需调用方法。它让代码更加简洁、优雅,同时保持封装性,提升代码的可读性和维护性。

    springboot企业数据管理平台类社会服务平台源码+论文+视频1.zip

    springboot企业数据管理平台类社会服务平台源码+论文+视频1

    5G智慧社区项目智能化解决方案PPT(28页).pptx

    智慧社区,作为智慧城市的重要组成部分,正逐步改变着我们的生活方式。近年来,随着国家政策的不断推动,智慧社区建设进入了快速发展阶段。2014年,国务院发布的《关于促进智慧城市健康发展的指导意见》为智慧城市建设指明了方向,而随后的《关于加强和完善城乡社区治理的意见》及《绿色社区创建行动方案》等文件,进一步加速了智慧社区的建设步伐。据预测,2020年智慧社区市场规模已突破6000亿元,展现出巨大的市场潜力和发展空间。 智慧社区的建设,主要依赖于物联网、云计算、大数据等先进技术的融合应用。这些技术不仅提升了社区的安全保障、应急响应和设备监管能力,还实现了社区管理的智能化和高效化。通过物联网技术,智慧社区能够实时监测社区内的各项设施,如智慧照明、水泵房监测、配电监测等,确保社区运行的安全和稳定。同时,借助云计算和大数据技术,智慧社区可以整合各类传感器资源,为社区提供统一的云计算和大数据服务,构建“云+端”的立体化服务体系。这种服务模式不仅提高了社区管理的效率,还为居民带来了更加便捷、舒适的生活体验。 在智慧社区中,各种创新应用层出不穷。例如,智慧安防系统可以实时监测井盖异动、应急通道违停等情况,确保社区的安全;智慧环境监测系统则能够实时监测垃圾桶满溢、天气情况等信息,为社区的环保和卫生工作提供有力支持。此外,智慧社区还通过数据分析与挖掘技术,针对不同人、物、事、场景进行深层次分析,助力全面管控与优化系统与监管机制。这些创新应用不仅提升了社区的管理水平,还为居民创造了一个更加绿色、健康、安全、舒适、低碳、便捷的生活环境。随着技术的不断进步和应用场景的不断拓展,智慧社区的未来将更加美好,为城市居民带来更加智能、便捷的生活方式。

    从 ID3 到 CART:一文看懂决策树核心原理,实战 Titanic 乘客生存预测

    cart,cd3, c4.5 决策树代码和可视化,数据,完整资源

    双有源桥扩展技术:100kHz高频率、最小电流应力优化的3kw功率开关控制系统,双有源桥扩展技术:100kHz高频率、375-48V宽电压范围下的3kw功率控制与优化,双有源桥扩展移相控制 开关频率

    双有源桥扩展技术:100kHz高频率、最小电流应力优化的3kw功率开关控制系统,双有源桥扩展技术:100kHz高频率、375-48V宽电压范围下的3kw功率控制与优化,双有源桥扩展移相控制 开关频率100k,375-48V,功率3kw 控制方式为最小电流应力优化控制 参数可定制 ,双有源桥;扩展移相控制;开关频率100k;功率3kw;最小电流应力优化控制;参数可定制,双桥移相控制,最小电流应力优化——100k开关频率功率控制技术

    最新更新!!!2024年HS编码出口退税率数据(2004-2024年)

    ## 01、数据简介 出口退税率是针对出口产品在国内已缴纳的税款,在货物报关出口后退还给出口企业时,按照一定比例计算的退税金额与计税价格之间的比率。 出口退税率是出口退税制度中的一个重要参数,它体现了国家对出口企业的税收优惠政策,有助于降低企业的出口成本,提升其在国际市场上的竞争力。同时,国家也会根据经济形势和国际贸易的变化,适时调整出口退税率,以更好地服务于国家的经济发展战略。 数据名称:2024年HS编码出口退税率数据 数据年份:2004-2024年 ## 02、相关数据 CODE、ST_DATE、END_DATE、ZHCMCODE、NAME、DWCODE、UNIT、BCFLAG、STDFLAG、DWFLAG、SZ、ZSSL_SET、CLDE、CJDL、TSL、SPLB、TSFLAG、NOTE。 ## 03、数据截图

    最近比较火的虎年西游记金钱豹头像制作小程序源码.zip

    最近比较火的虎年西游记金钱豹头像制作小程序源码 今天为大家分享一下最近抖音和朋友圈比较火的云开发虎年西游记金钱豹头像制作小程序源码和西游记南山大王金钱豹的趣味头像素材包,年少不知豹哥好,错把樵哥当成宝,金钱豹头像最近也是由于谐音梗金钱暴富为大家所知晓,加上短视频和朋友圈的推波助澜下,成功让这个人物火出了圈,由此也诞生了金钱豹头像制作小程序和网站,今天先给大家分享一下小程序的源码,还是虎年风格的金钱豹头像制作小程序源码,加上浓浓的新年氛围,金钱豹头像喜庆边框,简约可爱,内置十八个金钱豹头像素材,选中金钱豹头像和边框点击保存就可以去换头像啦。

    PNP发射极接地开关仿真原理图

    PNP发射极接地开关仿真原理图

    风电-光热-生物质混合电站鲁棒优化调度模型:最大化利润与应对不确定性的策略,风电-光热-生物质混合电站的鲁棒优化调度模型:最大化利润并平衡不确定性风险,风电-光热-生物质混合电站鲁棒优化调度模型 摘要

    风电-光热-生物质混合电站鲁棒优化调度模型:最大化利润与应对不确定性的策略,风电-光热-生物质混合电站的鲁棒优化调度模型:最大化利润并平衡不确定性风险,风电-光热-生物质混合电站鲁棒优化调度模型 摘要:为解决混合电站参与电力市场运行问题,从混合电站的结构及运行机理出发,提出了电力市场下风电-光热-生物质混合电站鲁棒优化调度模型。 该模型以最大化运行利润为目标函数,考虑了混合电站参与电力市场所获收益、并网运行环境效益、弃风弃光惩罚成本、各组成部分运行维护成本、系统运行约束等因素。 针对混合电站运行面临的不确定性和由此带来的风险问题,采用鲁棒优化方法处理风电功率、光热功率、负荷及电力市场价格的不确定性,并建立风险量化指标,平衡系统的鲁棒性与经济性,为混合电站运营商提供决策依据。 本代码为参考文献而原创代码 ,核心关键词:混合电站; 鲁棒优化; 调度模型; 电力市场; 运行利润; 不确定性; 风险量化; 风电-光热-生物质,电力市场下混合能源电站鲁棒优化调度模型研究

    springboot在线知识管理平台类智慧交通调度平台源码+论文+视频1.zip

    springboot在线知识管理平台类智慧交通调度平台源码+论文+视频1

Global site tag (gtag.js) - Google Analytics