-1

Meine Anforderung ist es, Daten dauerhaft in nativen Androiden ausführbar zu speichern. Die Daten sind von primitiven Typen. Kann ich SharedPreferences in ausführbaren Dateien verwenden? Wenn ja, wie? und wenn NEIN, gibt es dann eine Alternative zum persistenten Speichern von Daten im nativen Side-android?Gibt es eine Alternative von Sharedreference in nativen Android?

Ich möchte nicht SQLite in systemeigener Seite oder irgendeine Dateioperation verwenden.

Dankbarkeitskreuzes,

Antwort

0

Edit: sorry ich lesen ursprünglich die Frage falsch

Kann ich SharedPreferences in ausführbaren Dateien verwenden?

Ja. Wenn Daten primitiver Art sind, sollten Sie das unbedingt tun.

Wie?

aus dem Android-Entwickler documentation:

public class Calc extends Activity { 
public static final String PREFS_NAME = "MyPrefsFile"; 

@Override 
protected void onCreate(Bundle state){ 
    super.onCreate(state); 
    . . . 

    // Restore preferences 
    SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0); 
    boolean silent = settings.getBoolean("silentMode", false); 
    setSilent(silent); 
} 

@Override 
protected void onStop(){ 
    super.onStop(); 

    // We need an Editor object to make preference changes. 
    // All objects are from android.context.Context 
    SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0); 
    SharedPreferences.Editor editor = settings.edit(); 
    editor.putBoolean("silentMode", mSilentMode); 

    // Commit the edits! 
    editor.commit(); 
} 

}

gab ich eine ähnliche Antwort wie SharedPrefs verwenden here einfach und beachten Sie, dass dieser Anwendungsfall von SharedPreferences Pausen die Vorteile von die HashMap, die sehr schnell ist, um einen Wert für einen Schlüssel zu finden und zu erhalten.

Eine Möglichkeit, es tun könnte, ist die folgende:

//if you are running the code inside from an Activity 
Context context = this; 
SharedPreferences userSharedPrefs = context.getSharedPreferences("USER_NAME_PREFS", MODE_PRIVATE); 
SharedPreferences pwdSharedPrefs = context.getSharedPreferences("PWD_PREFS", MODE_PRIVATE); 

Verfahren getAll() wird eine Datenstruktur zurückkehren HashMap genannt, die wie ein Wörterbuch funktioniert:

Für jeden Wert dort gespeichert ist ein eindeutiger Schlüssel.

Bemerkung am Rande: Durch sie alle bekommen, wenn Sie irgendwie sind, den Zweck dieser Datenstruktur zu brechen, aber lassen Sie uns weiter

Map<String, String> userNameHashMap = (Map<String, String>)userSharedPrefs.getAll(); 
    Map<String, String> pwdHashMap = (Map<String, String>)pwdSharedPrefs.getAll(); 

dann können Sie, was Sie mit ihnen

wollen, dass sie in einer Liste wollen tun ? (Ich gehe davon aus, dass Ihre Benutzernamen sind Zeichenfolgen übrigens)

wollen wissen, ob es ein Passwort für Benutzer John gibt?

boolean johnHasPasswd = pwdHashMap.containsKey("john"); 
    String johnsPass; 

    if(johnHasPasswd) 
     johnsPass = pwdHashMap.get("john"); 

Wenn Sie die nativen Datenspeichermechanismen verwenden möchten, Sie sind begrenzt auf die folgenden

Ihre Datenspeicheroptionen sind folgende:

  • Gemeinsam genutzte Einstellungen speichern Private primitive Daten in Schlüssel-Wert-Paaren.
  • Internal Storage Speichern Sie private Daten im Gerätespeicher.
  • External Storage Speichern Sie öffentliche Daten auf dem freigegebenen externen Speicher.
  • SQLite Datenbanken Speichern Sie strukturierte Daten in einer privaten Datenbank.
  • Network Connection Speichern von Daten, die im Internet mit Ihrem eigenen Netzwerk-Server

sollten Sie haben einen Blick auf diese official docs von der Entwickler-Website.

Hoffe, das hilft!

+0

_ „Basierend nur auf Ihre Anforderungen nicht SharedPreferences wollen“ _ Die OP _does_ verwenden möchten 'SharedPreferences', wenn möglich. – Michael

+0

Sie haben Recht, mein schlechtes – HenriqueMS

+0

Danke für Ihre Antwort. Ich muss wissen, wie Shared Preferences verwendet Speichern Sie private primitive Daten in Schlüssel-Wert-Paaren in systemeigenem C in android NDK. Es gibt keine JNI-Implementierung in der Anforderung, da ich an binaries/executable arbeite. –

0

Gemeinsame bevorzugt sind die beste Lösung premitive Daten zu speichern:

SharedPreferences sharedpreferences = getSharedPreferences(MyPREFERENCES,   Context.MODE_PRIVATE); 
    Editor editor = sharedpreferences.edit(); 
    editor.putString("key", "value"); 
    editor.commit(); 
Verwandte Themen