Our SuccessKnowledges
NEXTZY Logo
Crews
Chat
Talk with Team
NEXTZY Logo
NEXTZY
Chat
Home>Knowledges

[Tip/Trick] Android debugging หลาย feature ที่หลายคนยังไม่รู้

Share:

[Tip/Trick] Android debugging หลาย feature ที่หลายคนยังไม่รู้

Table of contents

  • Don’t run app with “debug”
  • Hidden Breakpoint feature
  • Step debugging menu
  • Evaluate Expression
  • Layout Debugging
  • Screenshot + Video capture
  • Watches windows
  • ADB plugin
  • Debugging blog series
Nonthawit

Nonthawit

CEO | Engineer | Designer

VIEW

2,711

CATEGORY

Technical,Tutorials & Tools

LAST UPDATED

June 11, 2017

Nonthawit

Nonthawit

CEO | Engineer | Designer

VIEW

2,711

CATEGORY

Technical,Tutorials & Tools

LAST UPDATED

June 11, 2017

การกด debugging icon รันแอปใหม่รอเป็นนาทีเพื่อ print log แค่บรรทัดเดียว หรือ ค่อยๆ print log ไล่ debug แต่ต้องรันแอปทุกครั้ง ซึ่งเป็นงานซ้ำๆที่เสียเวลา และอะไรหลายๆอย่างที่ทำให้เรารู้สึกว่าการ debug มันยุ่งยากซะเหลือเกิน

เราจึงรวบรวม debug feature ใน android studio ที่ใช้บ่อยๆที่บางคนไม่เคยสังเกตหรือนำไปใช้กัน จนกลายมาเป็นมาเป็นบล็อคในวันนี้

งั้นมาลุยกันเลยดีกว่า

Don’t run app with “debug”

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

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

Attach debugger to Android process

เปิด 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

Hidden Breakpoint feature

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

ถ้ากด more เข้าไปดู เราสามารถทำอะไรได้เยอะกว่านั้นอีก

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

รวมถึงการดัก exception ต่างๆ เราสามารถก็สามารถทำได้เช่นกัน โดยกดปุ่ม “ + ”

การทำงานคือเมื่อไหร่ที่ exception ที่เราเพิ่มไว้ เกิดการพ่นออกมา cursor จะถูกย้ายไปวางบรรทัดนั้นให้เลย สะดวกดี

NOTE: ส่วนใหญ่เราจะดัก NullPointerException ไว้ตลอด cursor จะได้เลื่อนไปให้เลยซะดวกดีเราไม่ต้องมานั่งคลิ๊กผ่าน logcat

Step debugging menu

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

show execution point

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

Run to cursor

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

ส่วน menu อื่นๆลองเล่นเองดูได้ไม่ยากครับ

Evaluate Expression

ตัวอย่างการใช้ Evaluate Expression

Evaluate Expression สามารถช่วยให้เรา preview result ของ ตัวแปร/method/โค๊ดทั้งบรรทัด ในโค๊ดส่วนที่ถูกรันผ่านไปแล้วได้ อันนี้สะดวกมาก

เราไม่ต้องมานั่ง print log ให้โค๊ดรก แล้วอาจจะลืมลบโค๊ด print log ทิ้งอีก

EXTRA : [Tip/Trick] Android debugging โดยใช้ Evaluate Expression

Layout Debugging

Layout Inspector icon
หรือ Tools → Android → Layout Inspector
  • ไว้ดู margin padding เวลาเราจำไม่ได้ว่าใส่ไปเท่าไหร่
  • การวาง view แกน x / y ไว้ที่ pixel เท่าไหร่
  • ดู height / width px
  • ดูได้ทุกอย่างเกี่ยวกับการจัด layout หน้านั้นๆ

Screenshot + Video capture

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

Watches windows

อันนี้เราก็ใช้บ่อย Watches windows ทำให้เราสามารถใส่ตัวแปรที่ต้องการดูเป็นพิเศษ ว่ามีการเปลี่ยนแปลงค่ายังไงบ้าง

วิธีเพิ่มก็ง่ายมากกดปุ่ม “+” ด้านล่าง แล้วใส่ชื่อตัวแปรได้เลย

No logging no timber no every thing that you must re-run your application

ADB plugin

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

Debugging blog series

  1. [Tip/Trick] ToolNs ใน Android xml ใช้เถอะอยากบอกต่อ
[Tip/Trick] ToolNs ใน Android xml ใช้เถอะอยากบอกต่อ
xmlns:tools=”http://schemas.android.com/tools"blog.nextzy.me

2. [Tip/Trick] Android debugging หลาย feature ที่หลายคนยังไม่รู้

3. สุดยอด Stetho Debugging tools

สุดยอด Stetho Debugging tools
บนโลกการทำงานจริงๆ time to market เป็นเรื่องสำคัญมาก ซึ่งถ้าสังเกตกันจริงๆนะเราเสียเวลาไปกับการ debug code อยู่เยอะพอส…blog.nextzy.me

4. coming soon…

วันนี้พอแค่นี้เจอกันบล็อคหน้าเนาะ 😎

อย่าลืม share ให้มนุษย์ Android คนอื่นด้วยหละ 😎

Share:

KNOWLEDGE

Related Articles

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

Nonthawit

CEO | Engineer | Designer

เข้าใจการทำ Selector แบบ Ripple effect

20 สิ่ง ที่ได้หลังจากเป็น Android developer ที่ Nextzy 3 เดือน
Nonthawit

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 มันเท่มาก
Nonthawit

Nonthawit

CEO | Engineer | Designer

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

NEXTZY Logo
NEXTZY
48/27 Ratchadaphisek Rd, Samsen Nok, Huai Khwang, Bangkok 10310

Base at Thailand

Thailand

Home

Crews

Success

Download press kits

Knowledges

Chat

Talk with team

SCHEDULE