相同英文包名研究,中文不同的包名也冲突?

avatar 2019年5月31日12:30:45 评论 1,682

加入VIP,可以享受无广告视频播放!更可享受教程提前看!详情猛戳:VIP介绍

欢迎大家又一次来到雪山凌狐教程关于火山安卓的研究小课堂,今天我们来研究一下当在火山软件平台中不同项目设定的中文包名不同,但是声母的首字母顺序组合起来相同的场景下,所生成的安卓app的包名是否会相同,以及如果同时安装到一个机器上会不会出现冲突或替换的情况。

 

首先我们建立了两个新的火山项目,他们的包名分别是:

雪山凌狐.学火山.day5.宝贝真好”和“雪山凌狐.学火山.day5.背包转换”。

很明显的我们可以看到他们转换为声母的英文包名后名字均为:xshlh.xhsh.day5.bbzhh

那么他们在实际安装的时候会不会有什么冲突呢?大家接下来就跟随我的脚步,一起来探究一下。

首先贴一下两个项目的源码内容,我设计的窗口内容不多,就一个文本框用来区分是第一个项目还是第二个项目而已。前述所说的宝贝真好为第一个项目,而背包转换为第二个项目。

相同英文包名研究,中文不同的包名也冲突?

第一个项目源码

相同英文包名研究,中文不同的包名也冲突?

第二个项目源码

同时我也将他们的项目属性设定得不一样:

相同英文包名研究,中文不同的包名也冲突?

第一个项目的项目属性

相同英文包名研究,中文不同的包名也冲突?

第二个项目的项目属性

接下来就是实际测试了。首先我们来安装一下第一个项目,安装很正常。

相同英文包名研究,中文不同的包名也冲突?

如何查看对应的包名呢?我们可以使用一款火山官方推荐的小助手——开发者助手来查看。大家可以在火山官方文档的“无障碍服务支持”的部分找到该助手的下载说明:http://doc.voldp.com/

我也在这里贴一遍(后面我也会把apk文件放在源码同一下载目录下大家可以下载使用):

下载“开发者助手”APP

① 可进入酷安网下载:https://www.coolapk.com/apk/com.toshiba_dealin.developerhelper

② 本程序的主要作用:获取APP组件ID值,通过获取的ID值可实现对该组件进行一些操作。

③ 例如:模拟点击、获取组件内容等。

④ 安装完毕后,会在手机上看到下图所示的软件图标。

⑤ 注意:手机务必ROOT后才能正常使用本软件。

打开刚才的第一个项目程序,然后使用开发者助手来分析。

可以看到编译后的包名应为xshlh.xhsh.day5.bbzhh.rg_qdl,如果对上一节课还有印象的同学应该可以记得我们的源码文件好像是存在一个叫做rg_qdl.java的文件中的。这就很有趣了。

相同英文包名研究,中文不同的包名也冲突?

好接下来我们来用动图演示安装英文会同名的包名的项目的场景。当然在此之前需要把当前活动项目替换为第二个项目,这个之前教过大家了。

相同英文包名研究,中文不同的包名也冲突?

我们发现神奇的现象诞生了!那就是还真是判定为同一个包名!包名同样还是:xshlh.xhsh.day5.bbzhh.rg_qdl。这就使得模拟器将刚才的宝贝真好项目给自动卸载了,自动安装了后面来的背包转换项目!

因此通过研究我们可以发现,目前火山平台(飞扬15正式版)还无法做到在源码中看到是不同包名安装时就一定是不同包名,因为编译时是需要翻译的,是仅取声母的,就会有这样的现象。虽然这种场景在大家编写代码的过程中可能性不算特别大,只要你写的包名有个性、有态度,应该就不太会有我们研究场景中的现象发生。但如果发生了,还真的挺让人困惑的说。

因此在这里也给火山官方提个小建议去优化这一块东西吧,我能想到的是不同的项目在编译的时候除了取声母之外还取一下一些随机字符放在包名里面吧,这样应该能解决。或者取全拼应该也可以不过会太长了这个包名。或者官方还能想到其他更好的办法我觉得也可以。

兴许大家未来在看到这篇文章的时候已经发现这个问题已经修复了呢?

 

 

最后附上咱们的源码下载地址:

内容已经隐藏,请注册为本站会员后查看
avatar

发表评论

您必须才能发表评论!