2012-07-22 8 views

risposta

6
  • collegare il dispositivo al pc
  • prompt dei comandi aperta in /sdk-directory/tools
  • tipo adb pull /data/data/com.example.app/databases/database.db

dove com.example.app è la vostra applicazione nome del pacchetto e database.db è il file di database

che è nel caso in cui il tuo dispositivo è rootato, se non prova a seguire

https://stackoverflow.com/a/8433520/1300995

+0

thi s ha funzionato ma il file estratto non mostra tabelle. – Andrain

1

Se si utilizza eclipse, passare alla vista DDMS. dalla scheda File Explorer -> dati-> Data-> pacchetto di applicazioni nome-> databases-> nome databse

selezionare file di database db quindi fare clic su pulsante di tiro

+0

Al dispositivo normale non è nemmeno possibile aprire la cartella dei dati. –

+0

dipende dal tuo dispositivo. –

39

È possibile utilizzare questi comandi per tirare la base di dati dal dispositivo. Digitando questi comandi tramite Android Studio è molto semplice. Assicurati di aver impostato il percorso di adb a livello globale sul tuo sistema. Quindi apri la finestra "terminale" dal basso verso Android Studio e vicino a "Monitor Android". Ora basta aggiornare i seguenti comandi con il nome effettivo del pacchetto dell'app e il nome del file del database. Otterrai il tuo file dal dispositivo.

adb shell "run-as package.name chmod 666 /data/data/package.name/databases/file" 
adb pull /data/data/package.name/databases/file . 
adb shell "run-as package.name chmod 600 /data/data/package.name/databases/file" 

il comando per Android 5.0+ /data/data/package.name/databases/file sarebbe:

adb shell "run-as package.name chmod 666 /data/data/package.name/databases/file" 
adb exec-out run-as package.name cat databases/file > newOutFileName 
adb shell "run-as package.name chmod 600 /data/data/package.name/databases/file" 
+0

Eccellente. Grazie per questa informazione. –

+1

supern .. grazie –

+0

Perfetto. Se si desidera esaminare prima la cartella dei dati, dare un'occhiata a questo post: http: // stackoverflow.it/questions/9017073/is-it-possible-to-see-application-data-from-adb-shell-the-same-way-i-see-it-moun – shadowhorst

4

Il modo migliore per visualizzare e gestire database di voi app Android è quello di utilizzare questo libreria https://github.com/sanathp/DatabaseManager_For_Android

È un singolo file di attività Java, basta aggiungere il file java alla cartella di origine, è possibile visualizzare le tabelle nel database dell'app, aggiornare, eliminare, inserire righe nella tabella. Tutto dalla propria app.

Al termine dello sviluppo, rimuovere il file java dalla cartella src.

Mi ha aiutato molto. Spero che ti aiuti anche tu.

È possibile visualizzare al 1 ° minuto demo qui: http://youtu.be/P5vpaGoBlBY

2
adb root 
adb remount 
adb pull <remote> <local> 
2

So che questa è una vecchia questione, tuttavia questo è quello che ho fatto per tirare il file SQLite database da app sul dispositivo.

  1. Salvare il file dal pacchetto di app per sdcard dispositivo

adb -d shell "run-as com.dautechnology.abdimuna.smartparking cat /data/data/<myAppPackageName>/databases/<databaseFileName> > /sdcard/<databaseFileName>"

Il comando sopra memorizza file in/sdcard È possibile verificare il file adb shell ls sdcard/ Poi l'uscita dal adb shell digitando exit

  1. Pull th e file dalla sdcard al luogo di lavoro corrente.

adb pull sdcard/<databaseFileName> 3. Spostare il file sul desktop o sul luogo desiderato.

mv <databseFileName> ~/Desktop

Spero che questo aiuta qualcuno là fuori.

0

fare programatically in applicazione

try { 
    File file = Environment.getExternalStorageDirectory(); 
    File data = Environment.getDataDirectory(); 

    if (file.canWrite()) { 
     String currentPath = "/data/data/" + getPackageName() + "/databases/yourdbname"; 
     String copyPath = "copydb_name.db"; 
     File currentDB = new File(currentPath); 
     File backupDB = new File(file, copyPath); 

     if (currentDB.exists()) { 
      FileChannel src = new FileInputStream(currentDB).getChannel(); 
      FileChannel dst = new FileOutputStream(backupDB).getChannel(); 
      dst.transferFrom(src, 0, src.size()); 
      src.close(); 
      dst.close(); 
     } 
    } 
} catch (Exception e) { 

} 

Assicurarsi dato il permesso

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 
1

È possibile saltare tutte le fasi intermedie con un solo comando.

In funzionare il tuo PC shell:

adb -d shell 'run-as <package_name> cat /data/data/<package_name>/databases/<db_name>' > <local_file_name> 
1

È possibile utilizzare Android Device Monitor per tirarlo. Vai a Strumenti -> Android -> Monitor dispositivo Android

  1. Selezionare il dispositivo dall'elenco a sinistra.
  2. Selezionare la scheda FileExplorer
  3. Expand dati-> Dati -> "yourpackageName" -> database
  4. Seleziona l'DatabaseFile e in alto a destra fare clic su questa icona save icon tirare un file formare un dispositivo.
  5. salvarlo sulla scrivania quindi utilizzare questo strumento per aprirlo: http://sqlitebrowser.org/
0

dalla versione 24 in poi ho utilizzare questi comandi per tirare banca dati

adb shell 
run-as package.name 
cat /databases/database.db > /sdcard/database.db 
exit 
exit 
adb pull /sdcard/database.db 

precedenti alla versione 24

adb pull /data/data/package name/databases/database.db 

era sufficiente

Problemi correlati