20.11.2016 Views

ANDROID APP

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

เครื่องมือดีบั๊กแอพของชุดพัฒนาโปรแกรม Android SDK<br />

I/power_screen_broadcast_send( 74): 1<br />

I/screen_toggled( 74): 0<br />

I/am_pause_activity( 74): [1127710848,com.android.launcher/.Launcher]<br />

309<br />

และด้านล่างนี้คืออีกหนึ่งตัวอย่าง<br />

> adb logcat -b radio<br />

ชุดคำสั่งนี้จะแสดงข้อความที่เกี่ยวข้องกับ radio/telephony<br />

D/RILJ ( 132): [2981]< GPRS_REGISTRATION_STATE {1, null, null, 2}<br />

D/RILJ ( 132): [2982]< REGISTRATION_STATE {1, null, null, 2, null, null,<br />

null, null, null, null, null, null, null, null}<br />

D/RILJ ( 132): [2983]< QUERY_NETWORK_SELECTION_MODE {0}<br />

D/GSM ( 132): Poll ServiceState done: oldSS=[0 home T - Mobile T - Mobile<br />

31026 Unknown CSS not supported -1 -1RoamInd: -1DefRoamInd: -1]<br />

newSS=[0 home T - Mobile T - Mobile 31026 Unknown CSS not supported -1 -<br />

1RoamInd: -1DefRoamInd: -1] oldGprs=0 newGprs=0 oldType=EDGE newType=EDGE<br />

D/RILJ ( 132): [UNSL]< UNSOL_NITZ_TIME_RECEIVED 10/06/26,21:49:56-28,1<br />

I/GSM ( 132): NITZ: 10/06/26,21:49:56-28,1,237945599 start=237945602<br />

delay=3<br />

D/RILJ ( 132): [UNSL]< UNSOL_RESPONSE_NETWORK_STATE_CHANGED<br />

D/RILJ ( 132): [2984]> OPERATOR<br />

D/RILJ ( 132): [2985]> GPRS_REGISTRATION_STATE<br />

D/RILJ ( 132): [2984]< OPERATOR {T - Mobile, T - Mobile, 31026}<br />

D/RILJ ( 132): [2986]> REGISTRATION_STATE<br />

D/RILJ ( 132): [2987]> QUERY_NETWORK_SELECTION_MODE<br />

D/RILJ ( 132): [2985]< GPRS_REGISTRATION_STATE {1, null, null, 2}<br />

D/RILJ ( 132): [2986]< REGISTRATION_STATE {1, null, null, 2, null, null,<br />

null, null, null, null, null, null, null, null}<br />

D/RILJ ( 132): [2987]< QUERY_NETWORK_SELECTION_MODE {0}<br />

Logcat จะทำงานได้ดีกับแอพที่พัฒนาด้วยภาษาจาวา แต่แอพที่เขียนขึ้นนั้นจะทำงานร่วมกับ<br />

คอมโพเน็นต์ภาษา C/C++ ซึ่งอาจจะยุ่งยากในการตรวจสอบ ในกรณีนี้เราต้องตรวจสอบการทำงาน<br />

ของคอมโพเน็นต์ดังกล่าวด้วยคำสั่ง system.out หรือ system.err แทน โดยปกติแล้วระบบปฏิบัติการ<br />

แอนดรอยด์จะส่งข้อมูล stdout และ stderr ไว้ในไดเร็กทอรี /dev/null/ เราสามารถใช้คำสั่ง ADB<br />

เพื่อเข้าถึง Log ดังกล่าวได้<br />

> adb shell stop<br />

> adb shell setprop log.redirect-stdio true<br />

> adb shell start<br />

การทำงานของคำสั่งนี้จะหยุดการทำงานของระบบจำลองหรืออุปกรณ์แอนดรอยด์ เราจึงต้องใช้<br />

คำสั่ง setprop เพื่อเปิดการทำงาน และเริ่มการทำงานของระบบจำลองใหม่<br />

กรรมวิธี: การใช้งาน Hierarchy Viewer<br />

วิธีที่จะช่วยให้เข้าใจถึงขั้นตอนการดีบั๊กคำสั่งและการทำงานของ UI นั้น Hierarchy Viewer<br />

ช่วยคุณได้ เพราะจะแสดงข้อมูลในแบบเลย์เอาต์กราฟิก

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!