Sobes.tech
Middle

Көптөгөн оперативдик эс тутум бөлүүнү кандай сурап алса болот?

sobes.tech AI

AIден жооп

Android ар бир колдонмо үчүн жеткиликтүү оперативдик эс тутумдун көлөмүн чектейт, бул системанын туруктуулугун камсыз кылуу үчүн. Бул чектөө heap size деп аталат.

Көп учурда, аны түздөн-түз өзгөртүүнүн кереги жок, анткени система эс тутумун автоматтык түрдө башкарат. Бирок, сейрек учурларда, мисалы, чоң растр сүрөттөрү же маалымат топтомдору менен иштөөдө, heap size көбөйтүлүшү керек болушу мүмкүн.

Көбүрөөк көлөм сурап, android:largeHeap="true" атрибутун AndroidManifest.xml файлынын <application> тегине кошсо болот:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="сиздин.пакет.аты">

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme"
        android:largeHeap="true"> // Көбүрөөк эс тутум сураныз

        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
</manifest>

Маанилүү:

  • android:largeHeap="true" колдонуу негизделиши керек жана ашыкча колдонулбашы керек. Бул системанын иштешине терс таасирин тийгизиши мүмкүн, эгер бир нече колдонмо чоң көлөмдөгү эс тутумду сураса.
  • android:largeHeap="true" менен да, бөлүнгөн эс тутумдун жогорку чеги бар, ал түзмөккө жана Android версиясына көз каранды.
  • Эң жакшысы, колдонмодо эс тутумду оптималдаштыруу, heap size көбөйтүүдөн алда канча жакшы.

Учурдагы heap size алуу үчүн программалык жол менен:

long heapSize = Runtime.getRuntime().maxMemory();
long freeSize = Runtime.getRuntime().freeMemory();
long allocatedSize = Runtime.getRuntime().totalMemory();

// Мегабайтка которуу үчүн
long heapSizeMB = heapSize / (1024 * 1024);
long freeSizeMB = freeSize / (1024 * 1024);
long allocatedSizeMB = allocatedSize / (1024 * 1024);

Эс тутумдун көлөмү тууралуу маалымат колдонмонун ресурстарды канчалык натыйжалуу пайдаланып жатканын түшүнүүгө жана чын эле көбүрөөк көлөм сурап жатканыбызды аныктоого жардам берет.