2011-01-31 24 views
11

Cihazdaki sqlite veritabanı dosyasına erişmeye çalışıyorum. Yani, uygulamayı cihazda adb ile başlattım. Ve şimdi bu dosyayı DDMS ile daha önce emülatörde yaptığım gibi indirdim. Ancak aygıtı DDMS'de seçip klasör verilerini açtığımda boş.Android cihazda sqlite veritabanına erişim

Bu doğru yol mu? Ya da bu db dosyasını indirmenin başka bir yolu var.

Teşekkürler.

+0

[Android Studio'daki cihazdaki SQLite veritabanını görüntüle] (http://stackoverflow.com/questions/28220636/view-sqlite-database-on-device-in-android-studio) Bu benim için en kolay yoldur. Bunu yapın.Böylece kontrol edin –

cevap

3

Doğrudan adb'u denediniz mi?

adb pull /data/data/the.package.of.the.app/databases/the_name_of_the_database.db 
+2

Bu muhtemelen root olmayan cihazlarda çalışmayacaktır – Damp

+0

evet. ancak veri klasörü boş. Ben tıklarım ve hiyerarşi üç açılmaz. sadece veri klasörünü gösterir, nedenini bilmiyorum. =/ – rogcg

+0

@Damp sen doğru değil ... benim için köklü olmayan bir telefon ile bir android geliştirici düşünmek için hala zor. – Cristian

36

Sen uygulama

<application 
... 
     android:debuggable="true" 
... 

baz dizini listelemek için debuggable olması koşuluyla, root olmadan veri klasörüne erişebilir:

adb shell "run-as com.your.package ls -l" 

bir dosyayı kopyalamak için:

adb shell "run-as com.your.package cat relative/path > /sdcard/some_name" 
adb pull /sdcard/some_name 

Maalesef ICS'ye göre run-as oldukça yorucudur. Her zamanki semptom, bir

mesajdır.

+0

Teşekkürler, Çok yararlı – Benjamin

+0

Sonra sadece http://sourceforge.net/projects/sqlitebrowser/ dosya. sudo aptitude sqlitebrowser'ı kurar – redochka

+1

Android'i ayarlamanıza gerek yok: debuggable = "true" hata ayıklama sertifikasındaki bir projeyi derlerken otomatik olarak ayarlanacak. – Ankit

İlgili konular