2013-08-22 10 views
55

मैं अपने SQLite db देखने की जरूरत है, लेकिन मैं इसे कैसे करना पता नहीं है देखने के लिए Android स्टूडियो में एडीबी का उपयोग कैसे करें। मैं http://www.sqlite.org/download.html लिए चले गए और मेरे ओएस के लिए कमांड लाइन खोल डाउनलोड किया, लेकिन मैं इस कार्यक्रम चलाने के लिए और टाइप adb ... मैं त्रुटियों मिलता है।एक SQLite DB

नोट: मैं एंड्रॉयड स्टूडियो का उपयोग कर रहा तो मैं यह सोचते हैं रहा हूँ मैं कुछ भी अतिरिक्त स्थापित करने के लिए क्योंकि मुझे याद है एंड्रॉयड स्टूडियो ने कहा कि यह सब एसडीके जरूरत उपकरण था जरूरत नहीं है।

उत्तर

98

सबसे आसान रास्ता: एडीबी शैल

मैं किसी भी तरह एंड्रॉयड स्टूडियो में ऐसा करने के लिए नहीं मिला है के माध्यम से sqlite3 से कनेक्ट करें, लेकिन मैं खींच के बजाय एक दूरस्थ शेल के साथ डाटाबेस का उपयोग फ़ाइल हर बार।

यहाँ सभी जानकारी प्राप्त करें: http://developer.android.com/tools/help/sqlite3.html

1- एक कमांड प्रॉम्प्ट

2 में अपने मंच-उपकरण फ़ोल्डर में जाएँ अपने उपकरणों की सूची प्राप्त करने आदेश adb devices दर्ज

C:\Android\adt-bundle-windows-x86_64\sdk\platform-tools>adb devices 
List of devices attached 
emulator-xxxx device 

3- अपने डिवाइस पर एक खोल कनेक्ट करें:

C:\Android\adt-bundle-windows-x86_64\sdk\platform-tools>adb -s emulator-xxxx shell 

4a- आप अपने डाटाबेस फ़ाइल युक्त

run-as <your-package-name> 

4b- नेविगेट फ़ोल्डर में जड़ें डिवाइस पर इस चरण को बायपास कर सकते हैं:

: अपने डाटाबेस से कनेक्ट करने के

cd data/data/<your-package-name>/databases/ 

5- रन sqlite3

sqlite3 <your-db-name>.db 

6- रन sqlite3 कमांड कि आप की तरह जैसे:

Select * from table1 where ...; 

Note: Find more commands to run below.

SQLite cheatsheet

वहाँ एक SQLite डेटाबेस में तालिकाओं देखने के लिए कुछ कदम हैं:

.tables 
  • सूची कैसे:

    1. सूची अपने डेटाबेस में तालिकाओं तालिका दिखती है:

      .schema tablename 
      
    2. प्रिंट पूरे तालिका:

      SELECT * FROM tablename; 
      
    3. सूची उपलब्ध SQLite शीघ्र आदेशों के सभी:

      .help 
      
  • +1

    क्या इस विधि को रूट की आवश्यकता है? – tomislav2012

    +1

    @ tomislav2012 हां, क्योंकि आप '/ data/data' निर्देशिका में जा रहे हैं –

    +0

    sqlite3 कमांड मेरे एचटीसी वन एस पर एंड्रॉइड 4.1 – Alex

    8

    आप एडीबी टाइप के रूप में यह क्या उल्लेख है?

    step1. >adb shell 
    step2. >cd data/data 
    step3. >ls -l|grep "your app package here" 
    step4. >cd "your app package here" 
    step5. >sqlite3 xx.db 
    
    +0

    अच्छा ... मुझे नहीं पता कि 'adb' कहां टाइप करें ... जब मैं इसे SQLite3 खोल में टाइप करता हूं तो यह मुझे' ...> 'देता है और यह कमांड की निरंतरता की अपेक्षा करता है। यह मूल रूप से ';' के लिए इंतजार कर रहा है। अगर मैं अर्धविराम टाइप करता हूं तो मुझे 'त्रुटि: पास "adb": वाक्यविन्यास त्रुटि' मिलती है ... कमांड प्रॉम्प्ट में 'adb shell' टाइप करना मुझे बताता है कि adb एक मान्यता प्राप्त कमांड नहीं है ... क्या मुझे अपने पथ में एडीबी जोड़ना है फ़ाइलें? –

    +0

    पहले: आपको एडीबी खोल (मैक या लिनक्स: टर्मिनल में निष्पादित करना होगा; विंडोज़: cmd पर चलाएं); फिर adb shell में sqlite3 कमांड निष्पादित करें। – log1000

    +1

    मैं एडीबी खोल से sqlite3 कमांड कैसे निष्पादित करूं? यह कहता है: '/ system/bin/sh: sqlite3: नहीं मिला '... और मैंने SQLite3 और ADB को पथ चर के रूप में पहले से जोड़ा है ... –

    14

    आपके पास जो मुद्दा है वह आम है और दस्तावेज़ीकरण में अच्छी तरह से समझाया नहीं गया है। सामान्य उपकरणों में sqlite3 डेटाबेस बाइनरी शामिल नहीं है, यही कारण है कि आपको कोई त्रुटि मिल रही है। एंड्रॉइड एमुलेटर, ओएसएक्स, लिनक्स (अगर स्थापित है) और विंडोज़ (स्थापित करने के बाद) में बाइनरी है ताकि आप अपनी मशीन पर स्थानीय रूप से डेटाबेस खोल सकें।

    वैकल्पिक हल अपने स्थानीय मशीन में अपने उपकरण से डाटाबेस कॉपी करने के लिए है। यह एडीबी के साथ पूरा किया जा सकता है लेकिन कई कदमों की आवश्यकता है।

    शुरू करने से पहले आपको कुछ जानकारी की आवश्यकता होगी: SDK के

    • पथ (यदि आपके OS परिवेश में शामिल नहीं)
    • अपने <package name>, उदाहरण के लिए, com.example.application
    • एक <local path> लगाने के लिए अपना डेटाबेस, उदाहरण के लिए। ~/Desktop या %userprofile%\Desktop

    इसके बाद आप समझने के लिए टर्मिनल हर कमांड के नीचे दिए गए उदाहरण में पहले वर्ण के लिए लिखा जाता है टाइप किया नहीं प्राप्त करता है की जरूरत है, लेकिन क्या आप जानते हैं की सुविधा देता है कि क्या खोल हम में हैं:

    • > = आप ओएस कमांड प्रॉम्प्ट
    • $ = एडीबी शेल कमांड प्रॉम्प्ट
    • ! = व्यवस्थापक कमांड प्रॉम्प्ट के रूप में एडीबी खोल
    • %

    अगला (() में पहले वर्ण या टेक्स्ट दर्ज नहीं करते)

    > adb shell 
    $ su 
    ! cp /data/data/<package name>/Databases/<database name> /sdcard 
    ! exit 
    $ exit 
    > adb pull /sdcard/<database name> <local path> 
    > sqlite3 <local db path> 
    % .dump 
    % .exit (to exit sqldb) 
    

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

    यदि आपको इंटरैक्टिव डेटाबेस तक पहुंचने की आवश्यकता है तो मैं आपके एप्यूलेटर (जो पहले से ही एसक्लाइट 3 था) या installing sqlite onto your devices /xbin path में अपना ऐप चलाने का सुझाव देगा।

    69

    मेरे लिए सबसे आसान तरीका एंड्रॉइड डिवाइस मॉनिटर का उपयोग डेटाबेस फ़ाइल और SQLite डेटाबेस ब्राउज़र को फ़ाइल देखने के लिए फ़ाइल एंड्रॉइड स्टूडियो प्रोग्राम एंड्रॉइड का उपयोग करते समय फ़ाइल देखने के लिए कर रहा है।

    1) एंड्रॉयड स्टूडियो से एंड्रॉयड एमुलेटर साथ भागो और प्रक्षेपण के डेटाबेस अनुप्रयोग।(मैंने सत्यापित करने के लिए डेटाबेस ऐप में कुछ डेटा डाला)

    2) एंड्रॉइड डिवाइस मॉनीटर चलाएं। कैसे चलाएं ?; [your_folder] > sdk >tools पर जाएं। आप उस फ़ोल्डर में monitor.bat देख सकते हैं। फ़ोल्डर के अंदर shift + right click और "Open command window here" का चयन करें। यह क्रिया कमांड प्रॉम्प्ट लॉन्च करेगी। monitor टाइप करें और एंड्रॉइड डिवाइस मॉनिटर लॉन्च किया जाएगा।

    3) वर्तमान में चल रहे एमुलेटर का चयन करें। तब data>data>[your_app_name]>databases

    4) पर जाएं आइकन (ऊपरी दाएं कोने में स्थित पर क्लिक करें) (आइकन पर होवर करें और आप "उपकरण की फ़ाइल खींच" देखेंगे) और कहीं भी आप

    5 की तरह बचाने के लिए) SQLite डेटाबेस ब्राउज़र लॉन्च करें। उस फ़ाइल को खींचें और छोड़ें जिसे आपने अभी उस ब्राउज़र में सहेजा था।

    6) Browse Data टैब पर जाएं और देखने के लिए अपनी तालिका का चयन करें।

    enter image description here enter image description here

    +7

    मुझे लगता है कि आप डिवाइस मॉनिटर से डेटा निर्देशिका नहीं खोल सकता, कम से कम मैं इसे नहीं कर सकता। – Estevex

    +6

    आप गैर-रूट डिवाइस पर डेटा निर्देशिका नहीं खोल सकते हैं, लेकिन आप इसे एमुलेटर पर कर सकते हैं। – Tad

    +3

    गैर-रूट डिवाइस पर डेटा कैसे खोलें? –

    4

    उपकरणों के आधार पर आप adb शेल में sqlite3 आदेश नहीं मिल सकता है। उस मामले में आप इस का पालन करना चाहते हो सकता है: संदर्भ के लिए https://stackoverflow.com/a/17177091/3758972 करने के लिए जाना

    adb शेल

    $ run-as package.name
    $ cd ./databases/
    $ ls -l #Find the current permissions - r=4, w=2, x=1
    $ chmod 666 ./dbname.db
    $ exit
    $ exit
    adb pull /data/data/package.name/databases/dbname.db ~/Desktop/
    adb push ~/Desktop/dbname.db /data/data/package.name/databases/dbname.db
    adb shell
    $ run-as package.name
    $ chmod 660 ./databases/dbname.db #Restore original permissions
    $ exit
    $ exit

    ऐसे मामले हो सकते हैं जब आपको उपरोक्त प्रक्रिया के बाद "दूरस्थ वस्तु नहीं मिली" हो। फिर adb shell में 755 पर अपने डेटाबेस फ़ोल्डर की अनुमति बदलें।

    $ chmod 755 databases/

    लेकिन कृपया ध्यान दें कि यह केवल एंड्रॉइड संस्करण < 21 पर काम करेगा।

    +0

    इंगित करने के लिए धन्यवाद। परिवर्तन किया है –

    4

    आप build.gradle फ़ाइल को यह जोड़कर Stetho नामक एक बहुत अच्छा उपकरण का उपयोग कर सकते हैं:

    compile 'com.facebook.stetho:stetho:1.4.1' 
    

    और अपने Application या ActivityonCreate() विधि के अंदर यह प्रारंभ:

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState); 
        Stetho.initializeWithDefaults(this); 
        setContentView(R.layout.activity_main); 
    } 
    

    तो फिर तुम देख सकते हैं पते में क्रोम में डीबी रिकॉर्ड:

    chrome://inspect/#devices 
    

    अधिक जानकारी के लिए आप अपनी पोस्ट पढ़ सकते हैं: How to view easily your db records

    5
    1. खोलें एक टर्मिनल
    2. cd platform-tools
    3. adb shell (विंडोज cd C:\Users\Willi\AppData\Local\Android\sdk पर मेरे लिए) cd <ANDROID_SDK_PATH> (यह केवल तभी जब काम करता है एक एमुलेटर चल रहा है)
    4. cd data/data
    5. su (लाभ सुपर उपयोगकर्ता विशेषाधिकार)
    6. cd <PACKAGE_NAME>/databases
    7. sqlite3 <DB_NAME>
    8. मुद्दा SQL कथन (महत्वपूर्ण:, ; के साथ उन्हें समाप्त अन्यथा बयान जारी नहीं किया गया है और यह एक नई लाइन के बजाय टूट जाता है।)

    नोट: ls (लिनक्स) या dir (विंडोज़) का उपयोग करें यदि आपको निर्देशिका सामग्री सूचीबद्ध करने की आवश्यकता है।

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