Работает ли опция большой кучи в Android для старых телефонов, обновленных до ICS?

У меня у самого Galaxy Nexus, и я знаю, что опция манифеста android:largeHeap="true" работает на этом телефоне, но мне интересно, работает ли она на старых телефонах, которые обновляются до Ice Cream Sandwich, то есть на Samsung Nexus S.

Причина моего вопроса в том, что я создал приложение, которое активно использует большие растровые изображения, и приложение изначально было разработано для планшетов с 48 МБ размера кучи. Galaxy Nexus также имеет 48 МБ доступного размера кучи для каждого приложения, поэтому мое приложение прекрасно работает на этом телефоне, несмотря на то, что он не является планшетом.

Проблема в том, что на Nexus S доступно только 32 МБ кучи, поэтому мне очень нужна опция большой кучи, чтобы приложение работало на этих старых телефонах с ICS.

Мой вопрос: Увеличивает ли опция android:bigHeap доступную память кучи? То есть, если Nexus S по умолчанию имеет 32 МБ, смогу ли я получить доступ, возможно, к 64 МБ?

Для тех из вас, кто не знаком с этой опцией, она увеличивает объем доступной памяти кучи для вашего приложения ценой снижения производительности. Его следует использовать только тогда, когда нет другой альтернативы.

Обновление

Вот пакет приложения, показывающий доступный размер кучи: http://michellbak.dk/TestHeapSize.apk

Исходный код ниже, чтобы показать, что нет ничего вредного:

package com.miz.heapsize;

import android.app.Activity;
import android.app.ActivityManager;
import android.os.Bundle;
import android.widget.TextView;

public class MainActivity extends Activity {

    private TextView text;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        ActivityManager am = ((ActivityManager)getSystemService(Activity.ACTIVITY_SERVICE));
        int memory = am.getMemoryClass();
        int largeMemory = am.getLargeMemoryClass();

        text = (TextView) findViewById(R.id.textView1);
        text.setText("Normal heap size: " + memory + "\nLarge heap size: " + largeMemory);

    }
}

Manifest file:




    

    
        
            
                

                
            
        
    


14
задан Michell Bak 11 March 2013 в 23:10
поделиться