2009-08-07 12 views
31

अब हम Examining sqlite3 Databases from a Remote Shell कर सकते हैं, क्या एडीबी शैल से साझा किए गए संदर्भों की जांच करना संभव है? चूंकि डीबगिंग करते समय कमांड लाइन से साझा किए गए संदर्भों की जांच और कुशलतापूर्वक उपयोग करना अधिक सुविधाजनक होगा।एडीबी शैल से साझा किए गए संदर्भों की जांच कैसे करें?

या किसी अन्य तरीके से, साझा फ़ाइलों को सहेजने वाली फ़ाइलों में, और इन फ़ाइलों को कैसे देखें और संशोधित करें?

उत्तर

42

ठीक है, मैंने उपरोक्त प्रश्न उठाए जाने के बाद ही फ़ाइल पाई। (ऐसा लगता है कि प्रश्न पूछने के लिए सार्वजनिक रूप से मुझे प्रोत्साहित करते हैं कि मैं अपने आप को जवाब से अधिक परिश्रमपूर्वक खोजूं, क्योंकि मैं नहीं चाहता कि मेरे प्रिय साथी मुझे आलसी प्रोग्रामर के रूप में देखें।)

यह /data/data/your.app.package.name/shared_prefs के तहत एक एक्सएमएल फ़ाइल है, और फ़ाइल नाम your.app.package.name_preferences.xml है। वरीयताओं को संशोधित करना वास्तव में आसान है जब आप यह समझते हैं कि सामग्री केवल एक महत्वपूर्ण मूल्य मानचित्र है।

+1

सत्यापित करें करने के लिए मैं एडीबी का उपयोग कर कि एक्सएमएल फ़ाइल संपादन कैसे करूँ? – Fred

+1

जैसा कि पूछा गया, आप इसे कैसे संपादित कर सकते हैं ?! छठी और नैनो संपादक स्थापित नहीं हैं। आप इसे कैसे संपादित करते हैं ??? – susparsy

+1

adb pull , संपादित अपने डिवाइस पर, एशियाई विकास बैंक धक्का joecks

24

एप्लिकेशन debugable तुम कर सकते हो तो:

$ adb shell 
$ run-as <app-package-id> 
$ cat /data/data/<app-package-id>/shared_prefs/prefs.xml 

ध्यान दें कि वरीयता अन्य फ़ाइल इसलिए बेहतर जांच निर्देशिका यह खोजने के लिए भंडारित किया जा सकता है:

$ ls /data/data/<app-package-id>/shared_prefs/ 
6

मैं इस सुविधाजनक एक-लाइनर को खींचने, संपादित करने के लिए, और ऐप के लिए साझा वरीयताओं को पुश करने के लिए उपयोग कर रहा हूं:

APP_ID=com.myapp; adb pull /data/data/${APP_ID}/shared_prefs/${APP_ID}_preferences.xml /tmp/${APP_ID}_preferences.xml && vim /tmp/${APP_ID}_preferences.xml && adb push /tmp/${APP_ID}_preferences.xml /data/data/${APP_ID}/shared_prefs/ 

बस अपने आवेदन आईडी में APP_ID सेट करें।

ध्यान दें कि यह मानता है कि आप PreferenceManager.getDefaultSharedPreferences(context) से प्राप्त साझा प्राथमिकताओं के लिए डिफ़ॉल्ट फ़ाइल नाम का उपयोग कर रहे हैं। इसके अलावा, एडीबी रूट मोड में चलने की जरूरत है: adb root

0

पहले डिवाइस से साझा प्राथमिकता फ़ाइल खींचें। इसके लिए रूट अनुमति की आवश्यकता है।

adb pull /data/data/org.test/shared_prefs/MyKeys.xml MyKeys.xml 

अब MyKeys.xml आपके सिस्टम की वर्तमान निर्देशिका में संग्रहीत है।

द्वारा

vim MyKeys.xml 

संशोधित मूल्यों संपादन फ़ाइल परिवर्तनों को सहेजने और डिवाइस के लिए धक्का के बाद।

adb push MyKeys.xml /data/data/org.test/shared_prefs/MyKeys.xml 

अपने परिवर्तनों

adb shell 
cat /data/data/org.test/shared_prefs/MyKeys.xml 
संबंधित मुद्दे