ถ้าเจ้าตัวเครื่อง Device เราไม่ได้ Root โดยปกติจะอยู่ใน
data/data/<Package name ของแอพเรา>/databases/ชื่อ database.db
แต่ถึงกระนั้น Google ก็ยังใจดีมีวิธีการให้เราเอาเจ้าก้อน DB ที่อยู่ข้างในออกมาดู วิธีการนั้นมีดังต่อไปนี้ครับ
ก่อนอื่นให้เราเปิดเจ้าตัว Android Manifest file ของ Project เราขึ้นมาก่อน จากนั้นให้ Attribute นี้เข้าไปที่ <application>
android:debuggable="true"
ใครไม่ชัวร์ดูตามรูปเลย
ก่อนอื่นให้เราเปิดเจ้าตัว Android Manifest file ของ Project เราขึ้นมาก่อน จากนั้นให้ Attribute นี้เข้าไปที่ <application>
android:debuggable="true"
ใครไม่ชัวร์ดูตามรูปเลย
จากนั้นทำการ run Application เราปกติ
เมื่อมั่นใจว่า Database มีการสร้างแล้วแน่ๆ ให้เราทำการ shell เข้าไปที่ Device โดยไปที่ Android SDK path ของเครื่องเราก่อน
จากนั้นใช้คำสั่ง
adb shell -d
เมื่อ shell เข้ามาแล้วใช้คำสั่ง
run-as <ตามด้วยชื่อ Package name ของ แอพเรา>
run-as <ตามด้วยชื่อ Package name ของ แอพเรา>
ในที่นี้ผู้เขียนของสมมติว่า Package name ของ แอพผู้เขียนเป็นตัวนี้ละกัน com.example.google.android
และชื่อ Database เป็น google.db
ก็ลองใช้คำสั่งตามเลยจะได้เป็น
run-as com.example.google.android
เท่านี้เราก็เข้ามาล้วงแคะแกะเกาในส่วนของ Internal Storage ของแอพเราได้แล้ว แต่เฉพาะแอพเรานะที่เราเข้ามาเล่นซนได้ พอเห็นภาพแล้วใช้มั๊ยครับ ถึงจุดนี้จะเอา database ออกมาก็ไม่ใช่เรื่องยาก แค่ใช้คำสั่ง
cat /data/data/com.example.google.android/databases/google.db > /mnt/sdcard/google.db
ใช่แล้วจ้าผู้เขียน Copy มันไปไว้ที่ SDCard นั่นเอง
ใช่แล้วจ้าผู้เขียน Copy มันไปไว้ที่ SDCard นั่นเอง
เท่านี้ก็เอาออกมาได้ละ
แล้ววิธีการเอาเข้าล่ะ Step ก็คล้ายๆกัน ต่างตรงที่สลับ Path กันแค่นั้น อย่าลืมเอา DB ไปวางไว้ใน SDCard ก่อนเน้อ
cat /mnt/sdcard/google.db > /data/data/com.example.google.android/databases/google.db
เอาไปลองประยุต์ใช้กันดูนะครับ
เอาไปลองประยุต์ใช้กันดูนะครับ
ไม่มีความคิดเห็น:
แสดงความคิดเห็น