原由:android
自打愚安我開始使用android設備以來,一直以爲google還算厚道,應用列表裏的順序一直都是依據APP的名稱,按照先中文(拼音字母表順序),後英文(字母表順序)的原則進行排序的,並無說Google自家的應用就排在前面,相反因爲google的app大都是沒有中文名的,通常都排的比較靠後。app
就拿愚安個人Nexus 7來講,順序爲:艾諾迪亞4(ainuodiya4),百度魔圖(baidumotu),保衛蘿蔔(baoweiluobo),布卡漫畫(bukamanhua)。。。。。找你妹(zhaonimei),Air hockey,Angry Birds。。。。YouTube。測試
一切都看上去這麼和諧,愚安還時常默唸這些App的拼音來證明下本身小學老師死的不早。但是有一天,這貨出現了,三觀被毀了…google
愚安個人Nexus上裝的是中文版的美團(懶得截屏,在pc上的模擬器上給你們作的測試),app名稱爲美團HD,這貨當時出如今了第一的位置,我瞬間以爲呼吸急促!!什麼狀況?我嘗試着拼M-EI-MEI,沒錯啊,是M啊,怎麼會這樣!我當時本身給本身的解釋是在google的漢字<=>拼音 映射表中,這個「美」字,要麼沒有收錄,要麼收錄錯了,成了A(啊音),就沒當一回事。spa
但是,今天Nexus的空間有點吃緊,我仍是刪除一些不用的App。事實證實,有些事情就像街上的姑娘同樣,換個角度看,就能發現美。當這些APP名稱成豎排列表顯示時,這個美團HD依然排在最上面,可是惟一不一樣的是,它的名稱好像比下面的應用都稍稍向右偏移了一些角度,難道前面還有別的字符沒有顯示出來????3d
下了班後,我開始了本身的測試:xml
步驟1:猜想前面是一個不可見字符blog
隨便在Eclipse裏建了個Android項目,名稱前面留了個空格,發現沒有任何做用,app仍是排在比較靠後的位置;排序
而後我又把空格換成了下劃線,以下圖,順序是到了最前面了,但美團的開發人員顯然不會無視你們的視力來這麼作的。ip
算了,在虛擬機上裝一個美團HD看看吧,以下圖
擦,顯示成拼音仍是這麼牛氣的排在最前面,不能忍,要看你代碼了。
步驟2:查看美團apk文件
咱們知道,android應用的名稱在一個叫AndroidManifest.xml,查看之
阿偶,亂碼了。沒辦法,反編譯吧
利用APK Multi(如上)將美團的apk文件反編譯了,再來查看,以下:
懂android開發的同窗,應該知道,上面的xml說明其名稱爲資源string裏的app_name,查看以下:
果真,在「美團HD」的先後各出現了一個佔位符,但具體是什麼呢?我打開了,全字符查看模式,以下:
其中的…即爲空格,CRLF爲換行符,咱們發現,那兩個空白的地方仍然是什麼都沒有顯示。怎麼辦呢?
好辦,既然它出如今這裏,仍是能夠被選中的,我拖動鼠標選中了它,而後打開度娘,粘貼,搜索,獲得以下結果:
出現的搜索結果中出現的最多的是「02」(上圖中,最後一個搜索結果你們無視掉),soga,果斷打開ASCII表,查看,這個02究竟是什麼呢:
哦,原來是標誌正文開始的符號啊!接着我把剛剛那個_QQ的應用的名稱改爲包含上述符號的 HD ,果斷出如今了第一的位置。
至此,美團應用爲何會排在這麼前面的緣由,已基本清楚,細節部分,我也懶得去深究。但出現這種狀況,究竟是由於google的疏漏,仍是開發者的小聰明,仍是管理者的無賴呢?反正,愚安我是以爲,挺賤的,拿出來跟你們分享一下,只作交流,仍是但願你們之後在開發的時候,儘可能有點節操,不要使用這種手段。
試想一下,一款好的應用,用戶是不會由於它的位置靠後就不去使用它了,再說了,用戶還會在桌面上根據本身的使用習慣來設置快捷方式,這個是你左右不了的。爲了用戶多看到你一點,而使用這種方法,反而讓像我這樣的無聊用戶感到反感。