2015-09-16 120 views
6

當我在我的主/新手機中安裝我的應用程序,安裝的大小約爲18.5MB ,當我在一箇舊的三星Galaxy ACE(MK1),對於一些安裝我的應用程序因此,用幾乎相同的大小安裝,因爲你在這裏看到:應用安裝尺寸相同的不同的設備類型

enter image description here

它完美地運行,我主要的手機上,但顯然,老銀河王牌真的與它鬥爭。

現在,我從Play商店下載一個隨機的遊戲,並與一個你可以看到結果這裏:

enter image description here

好多了,它佔用更少的空間能力較弱的手機上比它在更強大的手機上做的。

但是,我的問題是,我可以從哪裏開始嘗試弄清楚爲什麼我的應用程序沒有展現出這種所需的行爲?

我的項目信息

我已經提供了4組顯卡我的項目中,他們是:

圖形

  • XHDPI:的3.73MB
  • 總華電國際:中2.87MB
  • MDPI總:託塔1.33MB
  • LDPI的L:的1.03MB

總聲

  • OGG聲音文件:202KB
  • MP3原聲:5.6MB

的(無符號並簽署)APK文件大小約爲16.02MB

除此之外,APK中有一個classes.dex文件,大約3.5MB。

在Eclipse中,我鏈接BaseGameUtils和谷歌播放服務-lib的jar文件。

我知道我的遊戲比我下載的其他遊戲的資源要多一點 - 但這不是這個問題的要點。我需要確保安裝的應用程序的尺寸在功能較差的手機上小於「較好」的手機,但您可以看到,我的正好與完全相同。

任何幫助,將不勝感激。

編輯

其他信息,如果有幫助:

三星Galaxy王牌運行的是Android 2.3.4 薑餅

其他手機運行的是Android 4.4.2 奇巧

+0

是否啓用ProGuard的在你的應用程序? – George

+1

是@georgerappell Proguard已啓用並正在運行。問題不在於導出/簽名APK的尺寸沒有縮小 - 因爲問題是這兩個設備的安裝路徑是相同的,而我安裝的其他每個應用程序的安裝路徑都顯着減少在銀河王牌 - 謝謝! – Zippy

回答

6

答案是圖片..你看到Android應用程序可以指定應用程序都應該是安裝的位置,你無論是內部還是外部 - 能做到這一點在你的Android清單文件

android:installLocation="auto" 

在找你從設置屏幕截圖中應用你沒有在清單中指定該元素,因此「move_to_sdCard按鈕」處於非活動狀態。 Ÿ我們的應用程序安裝在內部存儲器

來到其他應用程序,看截圖,你會看到,因爲他們指定的特徵中的「move_to_phone按鈕」是活動的,因此由於沒有足夠的空間您的設備會自動將您的應用程序安裝在內部外部存儲器或嚴格的外部存儲器中。但是當設置了該功能時,並非所有資源或文件都安裝在共享的內部 - 外部存儲器上,因此尺寸被修剪因此輸出的過程。

說到你的應用程序的滯後性,你需要非常深入地研究你的代碼。還較新的API均包含舊的沒有,因此你需要重新評估各種選擇的代碼..

希望我是清醒的足夠

+1

輝煌 - 這是正確的答案! - 我將它放入我的清單中現在我的應用程序只註冊爲6.87MB而不是18.49,如上面的截圖所示。乾杯! – Zippy

1

可能是「其他應用程序」使用Multiple APK技術在Play商店發佈應用程序。使用此功能,您可以構建和部署多個apk,每個apk都針對特定的設備密度屏幕。通過這種方式,您可以減少apk維度,因爲每個apk都只有他的目標資源,Play Store會自動提供正確的資源。

+0

我不認爲這就是@Pollizzio,當我在Play商店中查看這個其他應用的APK大小時,它會在兩個設備上報告相同的大小,而且這可能更具說服力,我下載了APK我用來測試這個應用程序,並手動安裝它在我的2個設備,相同的APK,完全不同的安裝腳印,所以我猜我有一些步驟我錯過了某處 – Zippy

+0

也許? http://developer.android.com/google/play/expansion-files.html – Pollizzio

+0

不幸的是,我懷疑它是@Polizzio,擴展文件是針對大於50MB的.APK文件,據我所知。我們所採用的APK遠遠沒有這麼做,所以沒有理由使用擴展文件,並且在運行它們後不會下載任何內容,它仍然無法解釋爲什麼最初的安裝腳印不同。無論如何感謝:-) – Zippy

相關問題