2012-07-22 8 views

उत्तर

6
  • में /sdk-directory/tools
  • प्रकार
  • खुला कमांड प्रॉम्प्ट पीसी के लिए अपनी डिवाइस कनेक्ट adb pull /data/data/com.example.app/databases/database.db

जहां com.example.app आपके आवेदन पैकेज का नाम और database.db है डेटाबेस फ़ाइल

मामले में है वह यह है कि यदि आपका डिवाइस

01 का पालन करने का प्रयास नहीं करता है, तो आपका डिवाइस रूट है

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

+0

थाई एस काम किया लेकिन खींच लिया फ़ाइल किसी भी टेबल नहीं दिखाता है। – Andrain

1

यदि आप ग्रहण का उपयोग करते हैं तो डीडीएमएस दृश्य पर जाएं। फ़ाइल एक्सप्लोरर टैब से -> डेटा-> डेटा-> आवेदन पैकेज नाम-> databases-> databse नाम

चयन डेटाबेस डाटाबेस फ़ाइल उसके बाद पुल बटन

+0

सामान्य डिवाइस पर आप डेटा फ़ोल्डर भी नहीं खोल सकते हैं। –

+0

यह आपके डिवाइस पर निर्भर करता है। –

39

आप से डेटा बेस खींचने के लिए इन आदेशों का उपयोग कर सकते हैं अपने डिवाइस। एंड्रॉइड स्टूडियो के माध्यम से इन आदेशों को टाइप करना बहुत आसान है। कृपया सुनिश्चित करें कि आपने अपने सिस्टम में विश्व स्तर पर एडीबी का मार्ग निर्धारित किया है। फिर "टर्मिनल" विंडो को नीचे से एंड्रॉइड स्टूडियो और "एंड्रॉइड मॉनिटर" के नजदीक खोलें। अब आप अपने ऐप और डेटाबेस फ़ाइल नाम के वास्तविक पैकेज नाम के साथ निम्न आदेशों को अपडेट करें। आपको डिवाइस से आपकी फाइल मिल जाएगी।

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" 

Android 5.0+ /data/data/package.name/databases/file के लिए कमांड यह होगी:

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

उत्कृष्ट। इस जानकारी के लिए धन्यवाद। –

+1

supern .. धन्यवाद यू –

+0

बिल्कुल सही। यदि आप पहले डेटा फ़ोल्डर का निरीक्षण करना चाहते हैं, तो इस पोस्ट पर एक नज़र डालें: http: // stackoverflow।कॉम/प्रश्न/9017073/यह-संभव-से-देखने-एप्लिकेशन-डेटा-से-adb-shell-the-same-way-i-see-it-moun – shadowhorst

4

देख सकते हैं और आप Android एप्लिकेशन डेटाबेस का प्रबंधन करने के लिए सबसे अच्छा तरीका यह उपयोग करने के लिए है पुस्तकालय https://github.com/sanathp/DatabaseManager_For_Android

इसका एक भी जावा गतिविधि फ़ाइल, केवल आपके टेबल अपने अनुप्रयोग डेटाबेस में, अद्यतन,, देखने नष्ट कर सकते हैं आप तालिका द्वारा आपके एप्लिकेशन से .Everything को पंक्तियां सम्मिलित अपने स्रोत फ़ोल्डर में जावा फ़ाइल जोड़ें।

जब विकास किया जाता है तो जावा फ़ाइल को आपके src फ़ोल्डर से हटा दें।

इससे मुझे बहुत मदद मिली। यह आपकी मदद भी करता है।

आप 1 मिनट डेमो यहाँ देख सकते हैं: http://youtu.be/P5vpaGoBlBY

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

मैं जानता हूँ कि यह एक पुराने सवाल यह है, लेकिन यह है कि मैं क्या उपकरण पर ऐप्लिकेशन से SQLite डेटाबेस फ़ाइल को खींचने के लिए किया था।

  1. डिवाइस sdcard एप्लिकेशन को पैकेज से फ़ाइल सहेज रहा

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

उपरोक्त आदेश फ़ाइल की दुकान/sdcard आप adb shell ls sdcard/ फिर adb शेल से बाहर निकलने से फ़ाइल सत्यापित कर सकते हैं करने के लिए होगा टाइप करके exit

  1. वें खींचें एसडीकार्ड से अपने वर्तमान कामकाजी स्थान पर ई फ़ाइल।

adb pull sdcard/<databaseFileName> 3. फ़ाइल को डेस्कटॉप या अपनी इच्छा के स्थान पर ले जाएं।

mv <databseFileName> ~/Desktop

मुझे आशा है कि यह किसी को वहाँ मदद करता है।

0

यह प्रोग्राम के क्या आवेदन

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) { 

} 

में यकीन है कि यह देखते हुए अनुमति

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

आप एक आदेश के साथ उन सभी मध्य चरणों को छोड़ सकते हैं सुनिश्चित करें।

अपने पीसी खोल समय में:

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

आप इसे खींचने के लिए Android डिवाइस मॉनिटर का उपयोग कर सकते हैं। टूल्स पर जाएं -> एंड्रॉइड -> एंड्रॉइड डिवाइस मॉनिटर

  1. बाएं सूची से अपना डिवाइस चुनें।
  2. करें FileExplorer टैब
  3. डेटा-> डेटा का विस्तार करें -> "yourpackageName" -> डेटाबेस
  4. अपने databaseFile का चयन करें और इस आइकन save icon पर शीर्ष राइट क्लिक पर एक फ़ाइल के लिए एक उपकरण के रूप में खींच।
  5. अपने डेस्क पर इसे सहेजें तो इसे खोलने के लिए इस उपकरण का उपयोग: http://sqlitebrowser.org/
0
संस्करण 24 से

के बाद मैं इन आदेशों का उपयोग डेटाबेस खींचने के लिए

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

पिछले संस्करण से 24

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

पर्याप्त

संबंधित मुद्दे