Allocated RAM

3

329689

Gast
Moin zusammen,,

ich habe folgendes phänomen.
Ich habe eine kleine Anwendung geschrieben die aus ein Paar Textviews und Buttons.
Desweiteren werden noch ein paar Daten aus einer Text-Datei in eine egende Datenstruktur gespeichert.
So alles kein Problem.
Laut Android Studio und Eclipse ddms sind gut 8MB des Arbeitsspeichers belegt.
Jetzt habe ich ein Sony Xperia Z und dort wird mir angezeigt da gut 60 MB belegt sind.
ich kann mir aber keinen reim draus machen wieso.
Hat einer von euch das selbe "problem" oder eine Idee wodran es liegen könnte?

Grüße
Lenny
 
Bei so wenige Informationen wird dir wohl keiner wirklich helfen können.

Der Speicher der VM wird vom System des Device zu gewiesen. Spricht die Größe des benötigten Speicher kann sich dynamisch ändern.

Insbesondere bei laden von Bilder kann der Speicher sehr schnell wachsen. Die Bilder müssen entpackt werden (png -> bitmap).

Warum der Speicher nicht wieder schrumpft, kann ich dir nicht sagen. Vermutlich kann der GC, die Objekte nicht aus dem Speicher räumen.
 
Die anwendung besteht aus einer Activity.

PHP:
package de.example;

import android.os.Bundle;
import android.app.Activity;
import android.content.Context;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.webkit.DownloadListener;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.Button;
import android.widget.Toast;

public class MainActivity extends Activity
{
  private static Button btnClose;
  private static WebView webView;
  private static Button back;
  private static Context con;
//  DownloadTask dl;
	
	@Override
	protected void onCreate(Bundle savedInstanceState)
	{
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		
		con = this;
//		dl = new DownloadTask(this);
		
		btnClose = (Button) findViewById(R.id.btnClose);
		btnClose.setOnClickListener(new OnClickListener()
		{
			@Override
			public void onClick(View v)
			{
			  System.exit(0);	
			}
		});
		
		back = (Button) findViewById(R.id.btnBack);
		back.setOnClickListener(new OnClickListener()
		{
			
			@Override
			public void onClick(View v)
			{
				webView.goBack();
			}
		});
		
		
		webView = (WebView) findViewById(R.id.webView);
		webView.getSettings().setJavaScriptEnabled(true);
		webView.setWebViewClient(new WebViewClient());
		webView.getSettings().setBuiltInZoomControls(true);
		webView.getSettings().setDisplayZoomControls(false);
		webView.loadUrl("http://google.de");
	}
}

auf dem Sony xperia werden für die kleine anwendung rund 56 mb belegt.
auf allen anderen geräten sind es rund 3 mb.

Der GC gibt automatisch allen speicher wieder frei worauf kein pointer mehr existiert.

Die frage ist nur wieso auf dem Sony die VM rund50 MB mehr belegt.
 
Das liegt wahrscheinlich an der Implementierung von Android auf den xperia.

Wenn es nur auf ein Gerät auftritt, würde ich mich keine Gedanken darüber machen. Das kann schon mal passieren.
 

Ähnliche Themen

kukuk
Antworten
7
Aufrufe
1.390
DagobertDokate
DagobertDokate
N
Antworten
3
Aufrufe
1.044
N2k1
N2k1
pootney
Antworten
3
Aufrufe
679
pootney
pootney
Zurück
Oben Unten