圖/文 聽鬼哥說故事
有時候遇到的遊戲,不知道是遊戲公司問題,還是分發渠道後的問題,遊戲安裝後竟然會不顯示圖標。當然,這對於病毒和木馬來說是很重要的,也是很好的隱藏手段,不過對於正常應用和遊戲來說就需要處理這個問題了。
遇到這個問題,有幾種可能:
1.遊戲沒有設置icon
2.遊戲沒有設置主類
3.主類裏面有其他data或filter影響
下面來進行測試:
一個正常的AndroidManifest.xml文件是這個樣子的,如下圖:
第一鍾方式:
我們在程序開發中將icon刪除掉,程序會正常運行,而圖標變爲系統的小機器人。如下:
<application
android:allowBackup="true"
android:icon="@drawable/ggg"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
於是,把Eclipse工程中bin目錄下的apk來導出來,反編譯它,在xml文件中將icon設置的名字修改,回編譯程序會報錯如下:
說明這種方式是不可行的,也就是我們遇到的沒有圖標的遊戲或應用,用這種方式無法還原。
第二種方式:
我們先刪除掉主類的這個字段
<category android:name="android.intent.category.LAUNCHER" />
這裏還有一種情況:
<category android:name="android.intent.category.LEANBACK_LAUNCHER" />
即把LAUNCHER進行一些改動,如上面所示.
在進行安裝的時候,在控制檯會提示:
然後程序沒有啓動,無圖標。
接着,我們恢復這個字段,然後刪除Main字段:
效果同上面效果一樣,無圖標。
這種情況一般我們是會遇到的,尤其是遇到分渠道的遊戲或者應用,使用他們自己的打包工具時,可能會遇到,這裏需要注意。
第三種方式:
我們在主類的裏面添加如下代碼
<activity
android:name="com.example.testicon.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
<data android:scheme="aone" android:host="AccountManageActivity" />
</intent-filter>
</activity>
Eclipse運行程序,發現程序會啓動,而手機界面卻沒有圖標產生。
在自己開發程序,或者是反編譯程序的時候,出現的這種情況是比較多的,也是比較常見的,而且這鐘情況,不熟悉開發知識的新同學可能不會了解這個,而把問題歸結於其他情況,這點一定要注意。