热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

当dev名称以数字开头时,Android工作室中的包名称?

如何解决《当dev名称以数字开头时,Android工作室中的包名称?》经验,为你挑选了1个好方法。

我想以我公司的名义创建应用程序,Android Studio建议使用您的域名,例如:

域名:example.com

应用:myApp

给出com.example.myApp的包名

这一切都很好,但我的公司名称以数字开头,Android Studio告诉我我没有数字,例如:

com.1example.myApp

现在我可以尝试"oneexample",并希望oneexample.com中没有人开始开发Android应用程序,但考虑到有多少开发人员在他们的名字开头有一个数字,可能这已经出现过了.所以,如果我可以请问:

1)我应该如何解决命名我的包裹?

2)出于好奇,为什么不能以数字开头的包名?

谢谢堆!

昆汀.



1> unrulygnu..:

1)我应该如何解决命名我的包裹?

简答: Android包/子包名称必须以ASCII拉丁字母开头.由于在域名以数字开头的情况下,Google似乎没有关于包命名的指导,因此开发人员可以自行解决此问题.

以下是一些以数字开头的域名的真实示例,以及开发人员决定用于Android的包名称:

http://www.11bitstudios.com/
https://play.google.com/store/apps/details?id=com.elevenbitstudios.AnomalyWarzoneEarthHD

http://www.23snaps.com/
https://play.google.com/store/apps/details?id=com.snaps23.android

http://www.36you.com/
https://play.google.com/store/apps/details?id=com.thirtysixyougames.google.slotanddragons

进一步背景

Java允许包名称以ASCII拉丁字母或下划线字符开头.从命名包(Java™教程>学习Java语言>包):

在某些情况下,互联网域名可能不是有效的包名.如果域名包含连字符或其他特殊字符,如果包名称以数字或其他非法用作Java名称开头的字符开头,或者包名称包含保留的Java关键字,则会发生这种情况,例如"int".在这种情况下,建议的约定是添加下划线.

还显示了以下"合法化包名称"示例:

Domain Name                         Package Name Prefix
---------------------------         ---------------------------
hyphenated-name.example.org         org.example.hyphenated_name
example.int                         int_.example
123name.example.com                 com.example._123name

但是,Android比Java更具限制性,并且包/子包名称可能不以下划线开头.从发行65570 - Android开源项目-事件跟踪-谷歌项目托管:

虽然Java允许以下划线开头的软件包名称,但Android应用程序软件包(具有其他限制)却不允许.当您尝试安装其包以_开头的应用程序时,设备PackageManager将拒绝它.出于这个原因,我们在创建应用程序时加强了Studio中的包名称验证,这样您就不会最终创建这些包,然后再受苦.

不幸的是,谷歌似乎没有任何关于合法化以Android数字开头的域名的包名称的约定.

2)出于好奇,为什么不能以数字开头的包名?

从第3章开始.词汇结构(Java®语言规范 - Java SE 7版):

标识符是无限长度的Java字母和Java数字序列,第一个必须是Java字母.

<剪断>

通过"Java字母"包括大写和小写ASCII拉丁字母 AZ(\ u0041-\u005a)和AZ(\ u0061-\u007a),并且,由于历史原因,ASCII下划线(_,或\ u005f)和美元符号($,或\ u0024).$字符只能用于机械生成的源代码,或者很少用于访问遗留系统上预先存在的名称.

同样,这在Android软件包名称中受到进一步限制.来自 | Android开发者:

package 应用程序的完整Java语言样式包名称.名称应该是唯一的.名称可能包含大写或小写字母('A'到'Z'),数字和下划线('_').但是,单个包名称部分可能只以字母开头.

感谢@Quentin,提供有关Android对Java的额外限制的信息.


推荐阅读
  • Mac OS 升级到11.2.2 Eclipse打不开了,报错Failed to create the Java Virtual Machine
    本文介绍了在Mac OS升级到11.2.2版本后,使用Eclipse打开时出现报错Failed to create the Java Virtual Machine的问题,并提供了解决方法。 ... [详细]
  • 本文介绍了如何使用PHP向系统日历中添加事件的方法,通过使用PHP技术可以实现自动添加事件的功能,从而实现全局通知系统和迅速记录工具的自动化。同时还提到了系统exchange自带的日历具有同步感的特点,以及使用web技术实现自动添加事件的优势。 ... [详细]
  • 本文介绍了解决Netty拆包粘包问题的一种方法——使用特殊结束符。在通讯过程中,客户端和服务器协商定义一个特殊的分隔符号,只要没有发送分隔符号,就代表一条数据没有结束。文章还提供了服务端的示例代码。 ... [详细]
  • Iamtryingtomakeaclassthatwillreadatextfileofnamesintoanarray,thenreturnthatarra ... [详细]
  • 安卓select模态框样式改变_微软Office风格的多端(Web、安卓、iOS)组件库——Fabric UI...
    介绍FabricUI是微软开源的一套Office风格的多端组件库,共有三套针对性的组件,分别适用于web、android以及iOS,Fab ... [详细]
  • 本文介绍了Perl的测试框架Test::Base,它是一个数据驱动的测试框架,可以自动进行单元测试,省去手工编写测试程序的麻烦。与Test::More完全兼容,使用方法简单。以plural函数为例,展示了Test::Base的使用方法。 ... [详细]
  • 解决Cydia数据库错误:could not open file /var/lib/dpkg/status 的方法
    本文介绍了解决iOS系统中Cydia数据库错误的方法。通过使用苹果电脑上的Impactor工具和NewTerm软件,以及ifunbox工具和终端命令,可以解决该问题。具体步骤包括下载所需工具、连接手机到电脑、安装NewTerm、下载ifunbox并注册Dropbox账号、下载并解压lib.zip文件、将lib文件夹拖入Books文件夹中,并将lib文件夹拷贝到/var/目录下。以上方法适用于已经越狱且出现Cydia数据库错误的iPhone手机。 ... [详细]
  • 关键词:Golang, Cookie, 跟踪位置, net/http/cookiejar, package main, golang.org/x/net/publicsuffix, io/ioutil, log, net/http, net/http/cookiejar ... [详细]
  • Android开发实现的计时器功能示例
    本文分享了Android开发实现的计时器功能示例,包括效果图、布局和按钮的使用。通过使用Chronometer控件,可以实现计时器功能。该示例适用于Android平台,供开发者参考。 ... [详细]
  • Java自带的观察者模式及实现方法详解
    本文介绍了Java自带的观察者模式,包括Observer和Observable对象的定义和使用方法。通过添加观察者和设置内部标志位,当被观察者中的事件发生变化时,通知观察者对象并执行相应的操作。实现观察者模式非常简单,只需继承Observable类和实现Observer接口即可。详情请参考Java官方api文档。 ... [详细]
  • position属性absolute与relative的区别和用法详解
    本文详细解读了CSS中的position属性absolute和relative的区别和用法。通过解释绝对定位和相对定位的含义,以及配合TOP、RIGHT、BOTTOM、LEFT进行定位的方式,说明了它们的特性和能够实现的效果。同时指出了在网页居中时使用Absolute可能会出错的原因,即以浏览器左上角为原始点进行定位,不会随着分辨率的变化而变化位置。最后总结了一些使用这两个属性的技巧。 ... [详细]
  • (三)多表代码生成的实现方法
    本文介绍了一种实现多表代码生成的方法,使用了java代码和org.jeecg框架中的相关类和接口。通过设置主表配置,可以生成父子表的数据模型。 ... [详细]
  • 本文介绍了绕过WAF的XSS检测机制的方法,包括确定payload结构、测试和混淆。同时提出了一种构建XSS payload的方法,该payload与安全机制使用的正则表达式不匹配。通过清理用户输入、转义输出、使用文档对象模型(DOM)接收器和源、实施适当的跨域资源共享(CORS)策略和其他安全策略,可以有效阻止XSS漏洞。但是,WAF或自定义过滤器仍然被广泛使用来增加安全性。本文的方法可以绕过这种安全机制,构建与正则表达式不匹配的XSS payload。 ... [详细]
  • React基础篇一 - JSX语法扩展与使用
    本文介绍了React基础篇一中的JSX语法扩展与使用。JSX是一种JavaScript的语法扩展,用于描述React中的用户界面。文章详细介绍了在JSX中使用表达式的方法,并给出了一个示例代码。最后,提到了JSX在编译后会被转化为普通的JavaScript对象。 ... [详细]
  • Android实战——jsoup实现网络爬虫,糗事百科项目的起步
    本文介绍了Android实战中使用jsoup实现网络爬虫的方法,以糗事百科项目为例。对于初学者来说,数据源的缺乏是做项目的最大烦恼之一。本文讲述了如何使用网络爬虫获取数据,并以糗事百科作为练手项目。同时,提到了使用jsoup需要结合前端基础知识,以及如果学过JS的话可以更轻松地使用该框架。 ... [详细]
author-avatar
mobiledu2502870133
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有