كيفية فحص SharedPreferences من بنك التنمية الاسيوى قذيفة ؟
-
12-09-2019 - |
سؤال
الآن يمكننا أن دراسة 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