我在兩個不同的設備上運行我的應用程序,並從Android Studio的Memroy選項卡檢查應用程序的分配內存。當應用程序在三星設備中運行時,分配的內存大約爲60 MB。當應用程序在Motorola設備上運行時,分配的內存大約爲40 MB。應用程序內存使用情況因設備而異
什麼導致這種內存分配的差異?
設備: 三星Galaxy S4與安卓5.0.1版本
摩托羅拉摩托G2與5.0.2版本的Android
我在兩個不同的設備上運行我的應用程序,並從Android Studio的Memroy選項卡檢查應用程序的分配內存。當應用程序在三星設備中運行時,分配的內存大約爲60 MB。當應用程序在Motorola設備上運行時,分配的內存大約爲40 MB。應用程序內存使用情況因設備而異
什麼導致這種內存分配的差異?
設備: 三星Galaxy S4與安卓5.0.1版本
摩托羅拉摩托G2與5.0.2版本的Android
三星在Android上的自定義UI庫的附加層,這將最終導致該應用程序消耗更多的內存。
Moto設備有庫存/原生Android。
您的變量和對象在兩個設備中佔用x內存,但與摩托羅拉設備相比,您的UI元素在三星中佔用更多內存。如果股票android使用Button類,三星將擴展Button類以使SamsungButton類具有額外的功能(如單擊水滴聲音)。
在我的Nexus 5運行最新更新(6.0.1)的情況下,我的應用程序消耗50MB,而索尼Xperia Z5 Compact也運行6.0.1,它消耗25MB 我的情況是什麼原因? – OmarBizreh
也許你正在使用應用程序的不同功能。它也與你正在做的應用程序有關。示例簡單的io操作對於內存來說可能不太密集,但對大型結構進行排序會佔用更多內存。您確定設備上的應用程序使用情況相同嗎? – Kay
是的,他們是相同的我剛剛啓動主要活動,並等待所有內容加載和應用程序進入閒置狀態沒有執行任何內存使用情況去了我先前給出的值 – OmarBizreh
每個設備的分辨率對於一個開始來說是不同的(S4 = xxhdpi,Moto G2 xhdpi),這意味着所有的drawables/mipmap會從資產文件夾中獲得不同的分辨率版本,因此加載的圖像需要更多的內存 - 嘗試運行測試相同的屏幕密度電話。 –
這可能會給你提示http://developer.android.com/training/displaying-bitmaps/manage-memory.html – VVB