كيفية فحص SharedPreferences من بنك التنمية الاسيوى قذيفة ؟

StackOverflow https://stackoverflow.com/questions/1243079

سؤال

الآن يمكننا أن دراسة sqlite3 قواعد البيانات من جهاز التحكم عن بعد شل, هل من الممكن دراسة SharedPreferences من بنك التنمية الاسيوى قذيفة ؟ لأنه سيكون أكثر ملاءمة لدراسة ومعالجة SharedPreferences من سطر الأوامر عند التصحيح.

أو وضعها بطريقة أخرى ، في ما هي الملفات SharedPreferences يتم حفظها, و كيفية عرض و تعديل هذه الملفات ؟

هل كانت مفيدة؟

المحلول

بخير لقد وجدت الملف فقط بعد طرح السؤال أعلاه.(يبدو طرح الأسئلة علنا تحفيز لي أن البحث عن إجابات من قبل نفسي أكثر من ذلك بكثير بجد, منذ أنا لا أريد عزيزي أقرانهم إلى عرض لي كسول مبرمج.)

هو ملف XML تحت /data/data/your.app.package.name/shared_prefs, و اسم الملف your.app.package.name_preferences.xml.هو حقا من السهل تعديل تفضيلات عند معرفة أن المحتوى هو مجرد قيمة المفتاح الخريطة.

نصائح أخرى

إذا كان التطبيق هو تصحيح يمكنك القيام به:

$ 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/

أنا أستخدم هذا بطانة مريحة لسحب وتحرير في VIM، ودفع التفضيلات المشتركة للحصول على تطبيق:

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 إلى تشغيل في وضع الجذر: adb root

وظيفة مساعد باش

function adb-pull-prefs {
    # ${1} - app package
    # ${2} - prefs name
    adb exec-out run-as ${1} cat /data/data/${1}/shared_prefs/${2}.xml
}

في حالة تشغيل أي شخص آخر في أخطاء "تم رفض الإذن" باستخدام كل الاقتراحات المذكورة أعلاه كما كنت، قد تحتاج إلى استخدام exec-out مثله:

adb exec-out run-as <package.name> cat /data/data/<package.name>/shared_prefs/<package.name>_preferences.xml

أولا سحب ملف التفضيلات المشتركة من الجهاز. هذا يتطلب تصاريح الجذر.

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
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top