Hogyan kérhetünk több RAM-ot az alkalmazásnak?
sobes.tech MI
Válasz az MI-től
Az Android korlátozza az egyes alkalmazások számára rendelkezésre álló RAM mennyiségét, hogy biztosítsa az egész rendszer stabilitását. Ezt a limitenek nevezik a heap méretét.
Általában nem szükséges közvetlenül módosítani, mivel a rendszer automatikusan kezeli a memóriát. Ritka esetekben, például nagy raszterképek vagy adathalmazok esetén, szükség lehet a heap méretének növelésére.
Nagyobb mennyiség kéréséhez adj hozzá az android:largeHeap="true" attribútumot az <application> címkéhez az AndroidManifest.xml fájlban:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="a.te.csomag.neve">
<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"> // Kérelem nagyobb memóriára
<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>
Fontos:
- Az
android:largeHeap="true"használata indokoltnak kell lennie, és nem szabad visszaélni vele. Ez negatívan befolyásolhatja a rendszer teljesítményét, ha több alkalmazás kér nagy mennyiségű memóriát. - Még az
android:largeHeap="true"mellett is létezik felső határ a kiosztott memóriára, amely a készüléktől és az Android verziójától függ. - Jobb optimalizálni az alkalmazás memóriahasználatát, mint a heap méretének növelésére támaszkodni.
A programozott módon lekérhető aktuális heap méret:
long heapSize = Runtime.getRuntime().maxMemory();
long freeSize = Runtime.getRuntime().freeMemory();
long allocatedSize = Runtime.getRuntime().totalMemory();
// Átalakítás megkönnyítésért megabájtokra
long heapSizeMB = heapSize / (1024 * 1024);
long freeSizeMB = freeSize / (1024 * 1024);
long allocatedSizeMB = allocatedSize / (1024 * 1024);
Az említett memória méretek segítenek megérteni, hogy az alkalmazás mennyire hatékonyan használja az erőforrásokat, és valóban szükség van-e nagyobb mennyiség kérésére.