Wo werden die App Daten gespeichert

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Wo werden die App Daten gespeichert

    Hallo zusammen,

    ich bin neu hier im Forum und auch neu in der Android/Java Programmierung, habe erst vor einigen Tagen angefangen.

    Nun zu meiner Frage. Ich habe in Andoid Studio mal eine einfache App geschrieben, die mir Daten in einer Datenbank speichern soll.

    Diese sollen erstmal auch garnicht angezeigt werden, da ich mich nach und nach genau mit den einzelnen Schritten befassen will. So also auch hier.

    Ich würde nun gerne wissen, wo überhaupt meine AppDaten also auch meine kompilierten packages und meine Datenbanken auf dem Gerät gespeichert werden.

    Gibt es auch eine Möglichkeit mir die Datenbank über das Handy direkt auszugeben? Also z.B. in einer Konsole

    >sqlite testDB.db
    >SELECT * FROM testTable

    Oder irgendwie in der Richtung? ^^

    Hier mal mein Code, den ich auch auf meinem Device ausführe.

    Java-Quellcode: MainActivity

    1. package de.moser.datenbanktest;
    2. import android.content.Intent;
    3. import android.os.Bundle;
    4. import android.support.v7.app.AppCompatActivity;
    5. import android.view.View;
    6. import android.widget.Button;
    7. import android.widget.EditText;
    8. import android.widget.Toast;
    9. import java.text.DateFormat;
    10. import java.util.Date;
    11. import java.util.Locale;
    12. public class MainActivity extends AppCompatActivity {
    13. private Button btnSubmit;
    14. private EditText editName;
    15. private EditText editNachname;
    16. private EditText editAlter;
    17. private String strNachname;
    18. private String strName;
    19. private String strAlter;
    20. @Override
    21. protected void onCreate(Bundle savedInstanceState) {
    22. super.onCreate(savedInstanceState);
    23. setContentView(R.layout.activity_main);
    24. this.btnSubmit = (Button) findViewById(R.id.btnSubmit);
    25. this.editName = (EditText) findViewById(R.id.editName);
    26. this.editNachname = (EditText) findViewById(R.id.editNachname);
    27. this.editAlter = (EditText) findViewById(R.id.editAlter);
    28. }
    29. public void ButtonKlick(View v){
    30. strName= editName.getText().toString();
    31. strNachname= editNachname.getText().toString();
    32. strAlter = editAlter.getText().toString();
    33. //Datenbank-Objekt erzeugen (Constructor legt neue Datenbank an)
    34. DatenbankErstellen neueDatenbankErstellen;
    35. neueDatenbankErstellen = new DatenbankErstellen(this);
    36. //Neuen Datensatz in die Datenbank zufügen
    37. neueDatenbankErstellen.InsertNewRecord(strName,strNachname,strAlter);
    38. }
    39. }
    Alles anzeigen



    Java-Quellcode: DatenbankErstellen

    1. package de.moser.datenbanktest;
    2. import android.content.ContentValues;
    3. import android.content.Context;
    4. import android.database.sqlite.SQLiteDatabase;
    5. import android.database.sqlite.SQLiteOpenHelper;
    6. public class DatenbankErstellen {
    7. //DB Name und Version
    8. private static final String DB_NAME = "TestDB.db";
    9. private static final int DB_VERSION = 1;
    10. //DB Splaten
    11. private static final String TABLE_NAME = "test";
    12. private static final String COLUMN_ID = "_id";
    13. private static final String COLUMN_NAME = "name";
    14. private static final String COLUMN_NACHNAME = "nachname";
    15. private static final String COLUMN_ALTER = "alter";
    16. //String für DB-Erstellung zusammenbauen
    17. private static final String CREATE_DB =
    18. "CREATE TABLE " + TABLE_NAME + " (" +
    19. COLUMN_ID + " INTEGER PRIMARY KEY, " +
    20. COLUMN_NAME + " TEXT " +
    21. COLUMN_NACHNAME + "INTEGER ," +
    22. COLUMN_ALTER + "INTEGER )";
    23. //Instanz der gekapselten Klasse
    24. InnerDatenbankErstellen innerDatenbankErstellen;
    25. private SQLiteDatabase WritableSqLiteDatabase;
    26. public DatenbankErstellen(Context context) {
    27. innerDatenbankErstellen = new InnerDatenbankErstellen(context);
    28. WritableSqLiteDatabase = innerDatenbankErstellen.getWritableDatabase();
    29. }
    30. public long InsertNewRecord(String name, String nachname, String alter) {
    31. ContentValues values = new ContentValues();
    32. values.put(COLUMN_NAME, name);
    33. values.put(COLUMN_NACHNAME, nachname);
    34. values.put(COLUMN_ALTER, alter);
    35. return WritableSqLiteDatabase.replace(TABLE_NAME, null, values);
    36. }
    37. private class InnerDatenbankErstellen extends SQLiteOpenHelper {
    38. public InnerDatenbankErstellen(Context context) {
    39. super(context, DB_NAME, null, DB_VERSION);
    40. }
    41. @Override
    42. public void onCreate(SQLiteDatabase db) {
    43. db.execSQL(CREATE_DB);
    44. }
    45. @Override
    46. public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    47. db.execSQL("DROP TABLE IF EXIST " + TABLE_NAME);
    48. onCreate(db);
    49. }
    50. }
    51. }
    Alles anzeigen



    Danke schomal :)

    übrigens, den OnClick-Handler habe ich direkt im XML defininert.

    Gruß Jonas
  • Grüß dich und willkommen :)

    also die APK werden in Systemordnern gespeichert, auf die soweit ich weiß der User keinen Zugriff hat. Die App Daten werden hingegen unter /data/appname/ gespeichert. So auch die Sqlite. Über ADB kannst du dir die SQLite auf deinen PC ziehen und in einem geeigneten Viewer anzeigen lassen. Gibt auch ein Firefox-Plugin was das kann.