วันนี้พอแค่นี้เจอกันบล็อคหน้าเนาะ 😎
อย่าลืม share ให้มนุษย์ Android คนอื่นด้วยหละ 😎
![[Tip/Trick] Android debugging หลาย feature ที่หลายคนยังไม่รู้](/_next/image?url=https%3A%2F%2Fimage.nextzy.tech%2F1_h9_En_Vvj80p0zod5_Af9_R_Io_Q_22b6e8d679.png&w=3840&q=75)
Table of contents

Nonthawit
CEO | Engineer | Designer
VIEW
2,711
CATEGORY
LAST UPDATED
June 11, 2017

Nonthawit
CEO | Engineer | Designer
VIEW
2,711
CATEGORY
LAST UPDATED
June 11, 2017
การกด debugging icon รันแอปใหม่รอเป็นนาทีเพื่อ print log แค่บรรทัดเดียว หรือ ค่อยๆ print log ไล่ debug แต่ต้องรันแอปทุกครั้ง ซึ่งเป็นงานซ้ำๆที่เสียเวลา และอะไรหลายๆอย่างที่ทำให้เรารู้สึกว่าการ debug มันยุ่งยากซะเหลือเกิน
เราจึงรวบรวม debug feature ใน android studio ที่ใช้บ่อยๆที่บางคนไม่เคยสังเกตหรือนำไปใช้กัน จนกลายมาเป็นมาเป็นบล็อคในวันนี้
งั้นมาลุยกันเลยดีกว่า

ถ้าต้องการจะ debug เราไม่จำเป็นต้องกด debug icon ทุกครั้งแล้วต้องมานั่งรอ build gradle เป็นนาทีๆนะ เราสามารถกด

ตอน runtime ได้เลย หรือ

เปิด find action แล้วพิมพ์ “ attach ” + enter ก็สามารถเข้า debugging mode ได้โดยไม่ต้องรันแอปใหม่ครับสะดวกมากๆ
No logging no timber no every thing that you must re-run your application
EXTRA: แนะนำให้ map “attach debugger to Android process” เป็น shortcut นะ จะสะดวกกว่ามาก โดยไปที่ preference → keymap → search “attach debugger” แล้วก็ map กันตามสะดวกเลย
NOTE: Find action → Window: Control + Shift + A / Mac: Command + Shift + A

คลิ๊กขวาที่ break point เราสามารถใส่ condition if/else ได้ด้วยนะ เพราะบางกรณีเราต้องการ debug การวน loop บางอย่างที่วนกันเป็น 1000 รอบมานั่งกด resume ทุกครั้งตายแน่ๆ

ถ้ากด more เข้าไปดู เราสามารถทำอะไรได้เยอะกว่านั้นอีก
เราจะเห็น break point ทั้งหมดใน project เราทุกตัวที่เคยปักไว้สามารถ คลิ๊กเข้าไปดูได้เลย หรือจะ unbreakpoint ออกให้หมดก็ทำได้

รวมถึงการดัก exception ต่างๆ เราสามารถก็สามารถทำได้เช่นกัน โดยกดปุ่ม “ + ”
การทำงานคือเมื่อไหร่ที่ exception ที่เราเพิ่มไว้ เกิดการพ่นออกมา cursor จะถูกย้ายไปวางบรรทัดนั้นให้เลย สะดวกดี
NOTE: ส่วนใหญ่เราจะดัก NullPointerException ไว้ตลอด cursor จะได้เลื่อนไปให้เลยซะดวกดีเราไม่ต้องมานั่งคลิ๊กผ่าน logcat

หลักๆที่เราใช้อยู่มีแค่ 2 ตัวเท่านั้นคือ

คือให้เรากลับไปที่โค๊ดส่วนที่ถูก breakpoint ล่าสุด ใช้สำหรับเวลาเราหา cursor ไม่เจอ

ให้ breakpoint ไปอยู่ cursor ที่เราเอาเมาส์ไปวางสะดวกมาก เราไม่ต้องไปกด breakpoint หน้าบรรทัดให้เสียเวลา
ส่วน menu อื่นๆลองเล่นเองดูได้ไม่ยากครับ

Evaluate Expression สามารถช่วยให้เรา preview result ของ ตัวแปร/method/โค๊ดทั้งบรรทัด ในโค๊ดส่วนที่ถูกรันผ่านไปแล้วได้ อันนี้สะดวกมาก
เราไม่ต้องมานั่ง print log ให้โค๊ดรก แล้วอาจจะลืมลบโค๊ด print log ทิ้งอีก
EXTRA : [Tip/Trick] Android debugging โดยใช้ Evaluate Expression


หรือ Tools → Android → Layout Inspector

Android Studio สามารถทำได้ทั้ง Screenshot และ Video capture นะไม่จำเป็นต้องไปโหลดแอปอื่นให้วุ่นวาย

อันนี้เราก็ใช้บ่อย Watches windows ทำให้เราสามารถใส่ตัวแปรที่ต้องการดูเป็นพิเศษ ว่ามีการเปลี่ยนแปลงค่ายังไงบ้าง
วิธีเพิ่มก็ง่ายมากกดปุ่ม “+” ด้านล่าง แล้วใส่ชื่อตัวแปรได้เลย
No logging no timber no every thing that you must re-run your application

ADB plugin เป็น plugin ที่แนะนำให้ลงไว้ มันจะมีประโยชน์ในกรณีที่
ปกถ้าเราต้องการ clear data ทั้งหมดของแอป จะต้องลบแอปลงใหม่ในเครื่องเรา
ปลดล็อคหน้าจอ → หาแอปที่ต้องการจะลบ → กดค้าง → ลากลงถังขยะ

แต่ถ้าเป็น ADB plugin ทำให้ง่ายกว่านั้นแค่สั่ง ADB Clear App Data and Restart เป็นอันจบเลย
และสั่งอย่างอื่นได้ด้วย Kill/Start/Restart App
วิธีใช้งาน
Tools → Android → ADB Idea → ADB Operation Popup
หรือ
กด Find action แล้ว พิมพ์ ADB
EXTRA: แนะนำให้ map ADB Operation Popup เป็น shortcut นะมันจะสะดวกเวลาใช้งาน
NOTE: Find action → Window: Control + Shift + A / Mac: Command + Shift + A
2. [Tip/Trick] Android debugging หลาย feature ที่หลายคนยังไม่รู้
3. สุดยอด Stetho Debugging tools
4. coming soon…

วันนี้พอแค่นี้เจอกันบล็อคหน้าเนาะ 😎
อย่าลืม share ให้มนุษย์ Android คนอื่นด้วยหละ 😎
KNOWLEDGE


Nonthawit
CEO | Engineer | Designer
เข้าใจการทำ Selector แบบ Ripple effect


Nonthawit
CEO | Engineer | Designer
20 สิ่ง ที่ได้หลังจากเป็น Android developer ที่ Nextzy 3 เดือน
บทความนี้แชร์ประสบการณ์ 3 เดือนแรกของการทำงานเป็น Android Developer ที่ Nextzy ครอบคลุมทั้งด้าน technical เช่น MVP architecture, Android Lifecycle, ProGuard, Git workflow และการเขียน Unit Test รวมถึงด้าน soft skill อย่างการสื่อสารกับทีม, การแชร์ความรู้, และการเขียนโค้ดให้ readable และยืดหยุ่น นอกจากนี้ยังสะท้อนวัฒนธรรมองค์กรที่เน้นทีมเวิร์ค การ review โค้ด และบรรยากาศการทำงานที่สนุกสนาน ซึ่งล้วนช่วยลด learning curve และพัฒนาทักษะได้เร็วกว่าการเรียนรู้คนเดียว
![[Tip/Trick] วิธีติดต่อกับ WebView ผ่าน JavascriptInterface มันเท่มาก](https://image.nextzy.tech/1_Aleix_TFC_7yz_Qh_Q_Sx_GV_Rqxw_a29e28219a.png)

Nonthawit
CEO | Engineer | Designer
[Tip/Trick] วิธีติดต่อกับ WebView ผ่าน JavascriptInterface มันเท่มาก