94
TOOLS OF THE TRADE

TRADE TOOLS OF THE - YOW! Conferences...DEBUG TOOL WINDOW DEBUG TOOL WINDOW FRAMES VARIABLES VARIABLES EVALUATING EXPRESSIONS WATCHES WATCHES Add variables and expressions Resolved

  • Upload
    others

  • View
    8

  • Download
    0

Embed Size (px)

Citation preview

Page 1: TRADE TOOLS OF THE - YOW! Conferences...DEBUG TOOL WINDOW DEBUG TOOL WINDOW FRAMES VARIABLES VARIABLES EVALUATING EXPRESSIONS WATCHES WATCHES Add variables and expressions Resolved

TOOLS OF THE TRADE

Page 2: TRADE TOOLS OF THE - YOW! Conferences...DEBUG TOOL WINDOW DEBUG TOOL WINDOW FRAMES VARIABLES VARIABLES EVALUATING EXPRESSIONS WATCHES WATCHES Add variables and expressions Resolved

Hello!

I AM ZARAHI am an Android developer for

Domain.com.au

Page 3: TRADE TOOLS OF THE - YOW! Conferences...DEBUG TOOL WINDOW DEBUG TOOL WINDOW FRAMES VARIABLES VARIABLES EVALUATING EXPRESSIONS WATCHES WATCHES Add variables and expressions Resolved

THE KEY

Know available tools

Page 4: TRADE TOOLS OF THE - YOW! Conferences...DEBUG TOOL WINDOW DEBUG TOOL WINDOW FRAMES VARIABLES VARIABLES EVALUATING EXPRESSIONS WATCHES WATCHES Add variables and expressions Resolved

THE KEY

Know available toolsThere is no “correct” setup

Page 5: TRADE TOOLS OF THE - YOW! Conferences...DEBUG TOOL WINDOW DEBUG TOOL WINDOW FRAMES VARIABLES VARIABLES EVALUATING EXPRESSIONS WATCHES WATCHES Add variables and expressions Resolved

CODE

Page 6: TRADE TOOLS OF THE - YOW! Conferences...DEBUG TOOL WINDOW DEBUG TOOL WINDOW FRAMES VARIABLES VARIABLES EVALUATING EXPRESSIONS WATCHES WATCHES Add variables and expressions Resolved

FRAGMENTS

Page 7: TRADE TOOLS OF THE - YOW! Conferences...DEBUG TOOL WINDOW DEBUG TOOL WINDOW FRAMES VARIABLES VARIABLES EVALUATING EXPRESSIONS WATCHES WATCHES Add variables and expressions Resolved

FRAGMENT LIFECYCLE

FragmentManager.enableDebugLogging(true);

Page 8: TRADE TOOLS OF THE - YOW! Conferences...DEBUG TOOL WINDOW DEBUG TOOL WINDOW FRAMES VARIABLES VARIABLES EVALUATING EXPRESSIONS WATCHES WATCHES Add variables and expressions Resolved

SERVICES

Page 9: TRADE TOOLS OF THE - YOW! Conferences...DEBUG TOOL WINDOW DEBUG TOOL WINDOW FRAMES VARIABLES VARIABLES EVALUATING EXPRESSIONS WATCHES WATCHES Add variables and expressions Resolved

SERVICES

@Override

public void onCreate() {

super.onCreate();

android.os.Debug.waitForDebugger();

// Do stuff in your service

Log.d("MyService", "I am inside the service!");

}

Page 10: TRADE TOOLS OF THE - YOW! Conferences...DEBUG TOOL WINDOW DEBUG TOOL WINDOW FRAMES VARIABLES VARIABLES EVALUATING EXPRESSIONS WATCHES WATCHES Add variables and expressions Resolved

SERVICES

@Override

public void onCreate() {

super.onCreate();

android.os.Debug.waitForDebugger();

// Do stuff in your service

Log.d("MyService", "I am inside the service!");

}

Page 11: TRADE TOOLS OF THE - YOW! Conferences...DEBUG TOOL WINDOW DEBUG TOOL WINDOW FRAMES VARIABLES VARIABLES EVALUATING EXPRESSIONS WATCHES WATCHES Add variables and expressions Resolved

SERVICES

◦ Put a breakpoint AFTER the call to wait

Page 12: TRADE TOOLS OF THE - YOW! Conferences...DEBUG TOOL WINDOW DEBUG TOOL WINDOW FRAMES VARIABLES VARIABLES EVALUATING EXPRESSIONS WATCHES WATCHES Add variables and expressions Resolved

SERVICES

◦ Put a breakpoint AFTER the call to wait◦ Edit your Run Configurations

Page 13: TRADE TOOLS OF THE - YOW! Conferences...DEBUG TOOL WINDOW DEBUG TOOL WINDOW FRAMES VARIABLES VARIABLES EVALUATING EXPRESSIONS WATCHES WATCHES Add variables and expressions Resolved

SERVICES

◦ Trigger service

Page 14: TRADE TOOLS OF THE - YOW! Conferences...DEBUG TOOL WINDOW DEBUG TOOL WINDOW FRAMES VARIABLES VARIABLES EVALUATING EXPRESSIONS WATCHES WATCHES Add variables and expressions Resolved

SERVICES

◦ Trigger service◦ Attach debugger

<service

android:name="com.myapp.MySyncService"

android:exported="true"

android:process=":sync" >

Page 15: TRADE TOOLS OF THE - YOW! Conferences...DEBUG TOOL WINDOW DEBUG TOOL WINDOW FRAMES VARIABLES VARIABLES EVALUATING EXPRESSIONS WATCHES WATCHES Add variables and expressions Resolved

BUILT-IN TOOLS

Page 16: TRADE TOOLS OF THE - YOW! Conferences...DEBUG TOOL WINDOW DEBUG TOOL WINDOW FRAMES VARIABLES VARIABLES EVALUATING EXPRESSIONS WATCHES WATCHES Add variables and expressions Resolved

DEBUGGER

Page 17: TRADE TOOLS OF THE - YOW! Conferences...DEBUG TOOL WINDOW DEBUG TOOL WINDOW FRAMES VARIABLES VARIABLES EVALUATING EXPRESSIONS WATCHES WATCHES Add variables and expressions Resolved

DEBUGGER

Say NO! to the green bug

Page 18: TRADE TOOLS OF THE - YOW! Conferences...DEBUG TOOL WINDOW DEBUG TOOL WINDOW FRAMES VARIABLES VARIABLES EVALUATING EXPRESSIONS WATCHES WATCHES Add variables and expressions Resolved

DEBUGGER

Create a new keyboard shortcut for Attach Debugger to Android Process

Say NO! to the green bug

Page 19: TRADE TOOLS OF THE - YOW! Conferences...DEBUG TOOL WINDOW DEBUG TOOL WINDOW FRAMES VARIABLES VARIABLES EVALUATING EXPRESSIONS WATCHES WATCHES Add variables and expressions Resolved

DEBUGGER

Create a new keyboard shortcut for Attach Debugger to Android Process

Say NO! to the green bug

Preferences > Keymap > Main Menu > Run > Attach Debugger to Android Process > Right Click > Add Keyboard Shortcut

Page 20: TRADE TOOLS OF THE - YOW! Conferences...DEBUG TOOL WINDOW DEBUG TOOL WINDOW FRAMES VARIABLES VARIABLES EVALUATING EXPRESSIONS WATCHES WATCHES Add variables and expressions Resolved

DEBUGGER

Create a new keyboard shortcut for Attach Debugger to Android Process

Say NO! to the green bug

Preferences > Keymap > Main Menu > Run > Attach Debugger to Android Process > Right Click > Add Keyboard Shortcut AIN’T NOBODY GOT TIME FOR

THAT!

Page 21: TRADE TOOLS OF THE - YOW! Conferences...DEBUG TOOL WINDOW DEBUG TOOL WINDOW FRAMES VARIABLES VARIABLES EVALUATING EXPRESSIONS WATCHES WATCHES Add variables and expressions Resolved

DEBUGGER

Page 22: TRADE TOOLS OF THE - YOW! Conferences...DEBUG TOOL WINDOW DEBUG TOOL WINDOW FRAMES VARIABLES VARIABLES EVALUATING EXPRESSIONS WATCHES WATCHES Add variables and expressions Resolved

DEBUGGER

Run then Attach

Page 23: TRADE TOOLS OF THE - YOW! Conferences...DEBUG TOOL WINDOW DEBUG TOOL WINDOW FRAMES VARIABLES VARIABLES EVALUATING EXPRESSIONS WATCHES WATCHES Add variables and expressions Resolved

BREAKPOINTS

Page 24: TRADE TOOLS OF THE - YOW! Conferences...DEBUG TOOL WINDOW DEBUG TOOL WINDOW FRAMES VARIABLES VARIABLES EVALUATING EXPRESSIONS WATCHES WATCHES Add variables and expressions Resolved

BREAKPOINTS

Page 25: TRADE TOOLS OF THE - YOW! Conferences...DEBUG TOOL WINDOW DEBUG TOOL WINDOW FRAMES VARIABLES VARIABLES EVALUATING EXPRESSIONS WATCHES WATCHES Add variables and expressions Resolved

BREAKPOINTS (AN ASIDE)

Page 26: TRADE TOOLS OF THE - YOW! Conferences...DEBUG TOOL WINDOW DEBUG TOOL WINDOW FRAMES VARIABLES VARIABLES EVALUATING EXPRESSIONS WATCHES WATCHES Add variables and expressions Resolved

BREAKPOINTS

Page 27: TRADE TOOLS OF THE - YOW! Conferences...DEBUG TOOL WINDOW DEBUG TOOL WINDOW FRAMES VARIABLES VARIABLES EVALUATING EXPRESSIONS WATCHES WATCHES Add variables and expressions Resolved

BREAKPOINTS

Stop during interesting iterations

Page 28: TRADE TOOLS OF THE - YOW! Conferences...DEBUG TOOL WINDOW DEBUG TOOL WINDOW FRAMES VARIABLES VARIABLES EVALUATING EXPRESSIONS WATCHES WATCHES Add variables and expressions Resolved

BREAKPOINTS

Suspend on exceptions

Page 29: TRADE TOOLS OF THE - YOW! Conferences...DEBUG TOOL WINDOW DEBUG TOOL WINDOW FRAMES VARIABLES VARIABLES EVALUATING EXPRESSIONS WATCHES WATCHES Add variables and expressions Resolved

BREAKPOINTS

If you have a bunch of breakpoints related to a particular bug, GROUP THEM

Page 30: TRADE TOOLS OF THE - YOW! Conferences...DEBUG TOOL WINDOW DEBUG TOOL WINDOW FRAMES VARIABLES VARIABLES EVALUATING EXPRESSIONS WATCHES WATCHES Add variables and expressions Resolved

DEBUG TOOL WINDOW

Page 31: TRADE TOOLS OF THE - YOW! Conferences...DEBUG TOOL WINDOW DEBUG TOOL WINDOW FRAMES VARIABLES VARIABLES EVALUATING EXPRESSIONS WATCHES WATCHES Add variables and expressions Resolved

DEBUG TOOL WINDOW

Page 32: TRADE TOOLS OF THE - YOW! Conferences...DEBUG TOOL WINDOW DEBUG TOOL WINDOW FRAMES VARIABLES VARIABLES EVALUATING EXPRESSIONS WATCHES WATCHES Add variables and expressions Resolved

FRAMES

Page 33: TRADE TOOLS OF THE - YOW! Conferences...DEBUG TOOL WINDOW DEBUG TOOL WINDOW FRAMES VARIABLES VARIABLES EVALUATING EXPRESSIONS WATCHES WATCHES Add variables and expressions Resolved

VARIABLES

Page 34: TRADE TOOLS OF THE - YOW! Conferences...DEBUG TOOL WINDOW DEBUG TOOL WINDOW FRAMES VARIABLES VARIABLES EVALUATING EXPRESSIONS WATCHES WATCHES Add variables and expressions Resolved

VARIABLES

Page 35: TRADE TOOLS OF THE - YOW! Conferences...DEBUG TOOL WINDOW DEBUG TOOL WINDOW FRAMES VARIABLES VARIABLES EVALUATING EXPRESSIONS WATCHES WATCHES Add variables and expressions Resolved

EVALUATING EXPRESSIONS

Page 36: TRADE TOOLS OF THE - YOW! Conferences...DEBUG TOOL WINDOW DEBUG TOOL WINDOW FRAMES VARIABLES VARIABLES EVALUATING EXPRESSIONS WATCHES WATCHES Add variables and expressions Resolved

WATCHES

Page 37: TRADE TOOLS OF THE - YOW! Conferences...DEBUG TOOL WINDOW DEBUG TOOL WINDOW FRAMES VARIABLES VARIABLES EVALUATING EXPRESSIONS WATCHES WATCHES Add variables and expressions Resolved

WATCHES

◦ Add variables and expressions◦ Resolved in the context of the

current frame

Page 38: TRADE TOOLS OF THE - YOW! Conferences...DEBUG TOOL WINDOW DEBUG TOOL WINDOW FRAMES VARIABLES VARIABLES EVALUATING EXPRESSIONS WATCHES WATCHES Add variables and expressions Resolved

WATCHES

◦ Add variables and expressions◦ Resolved in the context of the

current frame

Page 39: TRADE TOOLS OF THE - YOW! Conferences...DEBUG TOOL WINDOW DEBUG TOOL WINDOW FRAMES VARIABLES VARIABLES EVALUATING EXPRESSIONS WATCHES WATCHES Add variables and expressions Resolved

WATCHES

Page 40: TRADE TOOLS OF THE - YOW! Conferences...DEBUG TOOL WINDOW DEBUG TOOL WINDOW FRAMES VARIABLES VARIABLES EVALUATING EXPRESSIONS WATCHES WATCHES Add variables and expressions Resolved

WATCHES

Page 41: TRADE TOOLS OF THE - YOW! Conferences...DEBUG TOOL WINDOW DEBUG TOOL WINDOW FRAMES VARIABLES VARIABLES EVALUATING EXPRESSIONS WATCHES WATCHES Add variables and expressions Resolved

WATCHES

Page 42: TRADE TOOLS OF THE - YOW! Conferences...DEBUG TOOL WINDOW DEBUG TOOL WINDOW FRAMES VARIABLES VARIABLES EVALUATING EXPRESSIONS WATCHES WATCHES Add variables and expressions Resolved

WATCHES

◦ No need to Timber/Toast/Log

Page 43: TRADE TOOLS OF THE - YOW! Conferences...DEBUG TOOL WINDOW DEBUG TOOL WINDOW FRAMES VARIABLES VARIABLES EVALUATING EXPRESSIONS WATCHES WATCHES Add variables and expressions Resolved

WATCHES

◦ No need to Timber/Toast/Log◦ Like evaluated expressions, but

lots of them

Page 44: TRADE TOOLS OF THE - YOW! Conferences...DEBUG TOOL WINDOW DEBUG TOOL WINDOW FRAMES VARIABLES VARIABLES EVALUATING EXPRESSIONS WATCHES WATCHES Add variables and expressions Resolved

WATCHES

◦ No need to Timber/Toast/Log◦ Like evaluated expressions, but

lots of them◦ Persistent across sessions

Page 45: TRADE TOOLS OF THE - YOW! Conferences...DEBUG TOOL WINDOW DEBUG TOOL WINDOW FRAMES VARIABLES VARIABLES EVALUATING EXPRESSIONS WATCHES WATCHES Add variables and expressions Resolved

WATCHES

◦ No need to Timber/Toast/Log◦ Like evaluated expressions, but

lots of them◦ Persistent across sessions◦ Change expressions on the fly

Do even more: IntelliJ blog

Page 46: TRADE TOOLS OF THE - YOW! Conferences...DEBUG TOOL WINDOW DEBUG TOOL WINDOW FRAMES VARIABLES VARIABLES EVALUATING EXPRESSIONS WATCHES WATCHES Add variables and expressions Resolved

SYSTEM INFORMATION

Page 47: TRADE TOOLS OF THE - YOW! Conferences...DEBUG TOOL WINDOW DEBUG TOOL WINDOW FRAMES VARIABLES VARIABLES EVALUATING EXPRESSIONS WATCHES WATCHES Add variables and expressions Resolved

SYSTEM INFORMATION

Info dump of system state

Page 48: TRADE TOOLS OF THE - YOW! Conferences...DEBUG TOOL WINDOW DEBUG TOOL WINDOW FRAMES VARIABLES VARIABLES EVALUATING EXPRESSIONS WATCHES WATCHES Add variables and expressions Resolved

SYSTEM INFORMATION

Page 49: TRADE TOOLS OF THE - YOW! Conferences...DEBUG TOOL WINDOW DEBUG TOOL WINDOW FRAMES VARIABLES VARIABLES EVALUATING EXPRESSIONS WATCHES WATCHES Add variables and expressions Resolved

SYSTEM INFORMATION

Activity Manager StateActivity lifecycle state

Config values

Fragments and their states

View hierarchy

Choreography state

Looper state

Page 50: TRADE TOOLS OF THE - YOW! Conferences...DEBUG TOOL WINDOW DEBUG TOOL WINDOW FRAMES VARIABLES VARIABLES EVALUATING EXPRESSIONS WATCHES WATCHES Add variables and expressions Resolved

SYSTEM INFORMATION

Activity Manager StateActivity lifecycle state

Config values

Fragments and their states

View hierarchy

Choreography state

Looper state

Package Info

Manifest information

APK info

User install info

Page 51: TRADE TOOLS OF THE - YOW! Conferences...DEBUG TOOL WINDOW DEBUG TOOL WINDOW FRAMES VARIABLES VARIABLES EVALUATING EXPRESSIONS WATCHES WATCHES Add variables and expressions Resolved

SYSTEM INFORMATION

Activity Manager StateActivity lifecycle state

Config values

Fragments and their states

View hierarchy

Choreography state

Looper state

Package Info

Manifest information

APK info

User install info

Memory Usage

Memory allocations

Asset allocations

Page 52: TRADE TOOLS OF THE - YOW! Conferences...DEBUG TOOL WINDOW DEBUG TOOL WINDOW FRAMES VARIABLES VARIABLES EVALUATING EXPRESSIONS WATCHES WATCHES Add variables and expressions Resolved

SYSTEM INFORMATION

Memory Usage over TimeRuntime stats

Memory usages

Low level info

Page 53: TRADE TOOLS OF THE - YOW! Conferences...DEBUG TOOL WINDOW DEBUG TOOL WINDOW FRAMES VARIABLES VARIABLES EVALUATING EXPRESSIONS WATCHES WATCHES Add variables and expressions Resolved

SYSTEM INFORMATION

Memory Usage over TimeRuntime stats

Memory usages

Low level info

Graphics State

How well animations are doing

Cache info

View hierarchy

Page 54: TRADE TOOLS OF THE - YOW! Conferences...DEBUG TOOL WINDOW DEBUG TOOL WINDOW FRAMES VARIABLES VARIABLES EVALUATING EXPRESSIONS WATCHES WATCHES Add variables and expressions Resolved

LAYOUT INSPECTOR

Page 55: TRADE TOOLS OF THE - YOW! Conferences...DEBUG TOOL WINDOW DEBUG TOOL WINDOW FRAMES VARIABLES VARIABLES EVALUATING EXPRESSIONS WATCHES WATCHES Add variables and expressions Resolved

LAYOUT INSPECTOR

Page 56: TRADE TOOLS OF THE - YOW! Conferences...DEBUG TOOL WINDOW DEBUG TOOL WINDOW FRAMES VARIABLES VARIABLES EVALUATING EXPRESSIONS WATCHES WATCHES Add variables and expressions Resolved

THIRD PARTY TOOLS

Page 57: TRADE TOOLS OF THE - YOW! Conferences...DEBUG TOOL WINDOW DEBUG TOOL WINDOW FRAMES VARIABLES VARIABLES EVALUATING EXPRESSIONS WATCHES WATCHES Add variables and expressions Resolved

HUGO

Annotation-based = EASY

Page 58: TRADE TOOLS OF THE - YOW! Conferences...DEBUG TOOL WINDOW DEBUG TOOL WINDOW FRAMES VARIABLES VARIABLES EVALUATING EXPRESSIONS WATCHES WATCHES Add variables and expressions Resolved

HUGO

Annotation-based = EASYShows method calls++

https://github.com/JakeWharton/hugo

9477-9477/io.plaidapp V/DataManager: ⇢ sourceLoaded(data=[Redraw Keyboard, Saas 01, Air Traveller App, Become a driver], page=2, key="DRIBBBLE_QUERY_Material Design")9477-9477/io.plaidapp V/DataManager: ⇠ sourceLoaded [0ms] = true

Page 59: TRADE TOOLS OF THE - YOW! Conferences...DEBUG TOOL WINDOW DEBUG TOOL WINDOW FRAMES VARIABLES VARIABLES EVALUATING EXPRESSIONS WATCHES WATCHES Add variables and expressions Resolved

HUGO (AN ASIDE)

logm live template

Page 60: TRADE TOOLS OF THE - YOW! Conferences...DEBUG TOOL WINDOW DEBUG TOOL WINDOW FRAMES VARIABLES VARIABLES EVALUATING EXPRESSIONS WATCHES WATCHES Add variables and expressions Resolved

ADB PLUGIN

App actions from within Studio

Page 61: TRADE TOOLS OF THE - YOW! Conferences...DEBUG TOOL WINDOW DEBUG TOOL WINDOW FRAMES VARIABLES VARIABLES EVALUATING EXPRESSIONS WATCHES WATCHES Add variables and expressions Resolved

ADB PLUGIN

No fussing with Settings

https://github.com/pbreault/adb-idea

Page 62: TRADE TOOLS OF THE - YOW! Conferences...DEBUG TOOL WINDOW DEBUG TOOL WINDOW FRAMES VARIABLES VARIABLES EVALUATING EXPRESSIONS WATCHES WATCHES Add variables and expressions Resolved

STETHO

Wealth of options

Page 63: TRADE TOOLS OF THE - YOW! Conferences...DEBUG TOOL WINDOW DEBUG TOOL WINDOW FRAMES VARIABLES VARIABLES EVALUATING EXPRESSIONS WATCHES WATCHES Add variables and expressions Resolved

STETHO

Wealth of options◦ DB inspection

Page 64: TRADE TOOLS OF THE - YOW! Conferences...DEBUG TOOL WINDOW DEBUG TOOL WINDOW FRAMES VARIABLES VARIABLES EVALUATING EXPRESSIONS WATCHES WATCHES Add variables and expressions Resolved

STETHO

Wealth of options◦ DB inspection◦ SharedPreferences

Page 65: TRADE TOOLS OF THE - YOW! Conferences...DEBUG TOOL WINDOW DEBUG TOOL WINDOW FRAMES VARIABLES VARIABLES EVALUATING EXPRESSIONS WATCHES WATCHES Add variables and expressions Resolved

STETHO

Wealth of options◦ DB inspection◦ SharedPreferences◦ Network inspection

Page 66: TRADE TOOLS OF THE - YOW! Conferences...DEBUG TOOL WINDOW DEBUG TOOL WINDOW FRAMES VARIABLES VARIABLES EVALUATING EXPRESSIONS WATCHES WATCHES Add variables and expressions Resolved

STETHO

Wealth of options◦ DB inspection◦ SharedPreferences◦ Network inspection◦ View hierarchy

Page 67: TRADE TOOLS OF THE - YOW! Conferences...DEBUG TOOL WINDOW DEBUG TOOL WINDOW FRAMES VARIABLES VARIABLES EVALUATING EXPRESSIONS WATCHES WATCHES Add variables and expressions Resolved

STETHO

Wealth of options◦ DB inspection◦ SharedPreferences◦ Network inspection◦ View hierarchy◦ dumpapp

Page 68: TRADE TOOLS OF THE - YOW! Conferences...DEBUG TOOL WINDOW DEBUG TOOL WINDOW FRAMES VARIABLES VARIABLES EVALUATING EXPRESSIONS WATCHES WATCHES Add variables and expressions Resolved

STETHO

http://facebook.github.io/stetho/

Source: Facebook

Page 69: TRADE TOOLS OF THE - YOW! Conferences...DEBUG TOOL WINDOW DEBUG TOOL WINDOW FRAMES VARIABLES VARIABLES EVALUATING EXPRESSIONS WATCHES WATCHES Add variables and expressions Resolved

PIDCAT

Logcat with less pain

Page 70: TRADE TOOLS OF THE - YOW! Conferences...DEBUG TOOL WINDOW DEBUG TOOL WINDOW FRAMES VARIABLES VARIABLES EVALUATING EXPRESSIONS WATCHES WATCHES Add variables and expressions Resolved

PIDCAT

Logcat with less pain

https://github.com/JakeWharton/pidcat

Page 71: TRADE TOOLS OF THE - YOW! Conferences...DEBUG TOOL WINDOW DEBUG TOOL WINDOW FRAMES VARIABLES VARIABLES EVALUATING EXPRESSIONS WATCHES WATCHES Add variables and expressions Resolved

LEAK CANARY

Page 72: TRADE TOOLS OF THE - YOW! Conferences...DEBUG TOOL WINDOW DEBUG TOOL WINDOW FRAMES VARIABLES VARIABLES EVALUATING EXPRESSIONS WATCHES WATCHES Add variables and expressions Resolved

LEAK CANARY

https://github.com/square/leakcanary

Source: Square

Page 73: TRADE TOOLS OF THE - YOW! Conferences...DEBUG TOOL WINDOW DEBUG TOOL WINDOW FRAMES VARIABLES VARIABLES EVALUATING EXPRESSIONS WATCHES WATCHES Add variables and expressions Resolved

Some practical stuff

Page 74: TRADE TOOLS OF THE - YOW! Conferences...DEBUG TOOL WINDOW DEBUG TOOL WINDOW FRAMES VARIABLES VARIABLES EVALUATING EXPRESSIONS WATCHES WATCHES Add variables and expressions Resolved

STUDIO IS BEING WEIRD

Cannot add breakpoint

Page 75: TRADE TOOLS OF THE - YOW! Conferences...DEBUG TOOL WINDOW DEBUG TOOL WINDOW FRAMES VARIABLES VARIABLES EVALUATING EXPRESSIONS WATCHES WATCHES Add variables and expressions Resolved

STUDIO IS BEING WEIRD

Cannot add breakpointADB cannot see devices

Page 76: TRADE TOOLS OF THE - YOW! Conferences...DEBUG TOOL WINDOW DEBUG TOOL WINDOW FRAMES VARIABLES VARIABLES EVALUATING EXPRESSIONS WATCHES WATCHES Add variables and expressions Resolved

STUDIO IS BEING WEIRD

First aid

Page 77: TRADE TOOLS OF THE - YOW! Conferences...DEBUG TOOL WINDOW DEBUG TOOL WINDOW FRAMES VARIABLES VARIABLES EVALUATING EXPRESSIONS WATCHES WATCHES Add variables and expressions Resolved

STUDIO IS BEING WEIRD

First aid◦ Unplug then re-plug device

Page 78: TRADE TOOLS OF THE - YOW! Conferences...DEBUG TOOL WINDOW DEBUG TOOL WINDOW FRAMES VARIABLES VARIABLES EVALUATING EXPRESSIONS WATCHES WATCHES Add variables and expressions Resolved

STUDIO IS BEING WEIRD

First aid◦ Unplug then re-plug device◦ Disable then re-enable ADB

integration

Page 79: TRADE TOOLS OF THE - YOW! Conferences...DEBUG TOOL WINDOW DEBUG TOOL WINDOW FRAMES VARIABLES VARIABLES EVALUATING EXPRESSIONS WATCHES WATCHES Add variables and expressions Resolved

STUDIO IS BEING WEIRD

First aid◦ Unplug then re-plug device◦ Disable then re-enable ADB

integration◦ Invalidate caches and restart

Page 80: TRADE TOOLS OF THE - YOW! Conferences...DEBUG TOOL WINDOW DEBUG TOOL WINDOW FRAMES VARIABLES VARIABLES EVALUATING EXPRESSIONS WATCHES WATCHES Add variables and expressions Resolved

STUDIO IS BEING WEIRD

First aid◦ Unplug then re-plug device◦ Disable then re-enable ADB

integration◦ Invalidate caches and restart◦ Disable the re-enable USB

debugging on device

Page 81: TRADE TOOLS OF THE - YOW! Conferences...DEBUG TOOL WINDOW DEBUG TOOL WINDOW FRAMES VARIABLES VARIABLES EVALUATING EXPRESSIONS WATCHES WATCHES Add variables and expressions Resolved

But I really don’t want to do all that...

Page 82: TRADE TOOLS OF THE - YOW! Conferences...DEBUG TOOL WINDOW DEBUG TOOL WINDOW FRAMES VARIABLES VARIABLES EVALUATING EXPRESSIONS WATCHES WATCHES Add variables and expressions Resolved

BETTER CODING, (HOPEFULLY) LESS DEBUGGING

Use support annotations

Page 83: TRADE TOOLS OF THE - YOW! Conferences...DEBUG TOOL WINDOW DEBUG TOOL WINDOW FRAMES VARIABLES VARIABLES EVALUATING EXPRESSIONS WATCHES WATCHES Add variables and expressions Resolved

BETTER CODING, (HOPEFULLY) LESS DEBUGGING

Use support annotationsListen to Lint

Page 84: TRADE TOOLS OF THE - YOW! Conferences...DEBUG TOOL WINDOW DEBUG TOOL WINDOW FRAMES VARIABLES VARIABLES EVALUATING EXPRESSIONS WATCHES WATCHES Add variables and expressions Resolved

BETTER CODING, (HOPEFULLY) LESS DEBUGGING

Use support annotationsListen to LintUse AppCompat methods

Page 85: TRADE TOOLS OF THE - YOW! Conferences...DEBUG TOOL WINDOW DEBUG TOOL WINDOW FRAMES VARIABLES VARIABLES EVALUATING EXPRESSIONS WATCHES WATCHES Add variables and expressions Resolved

ADDITIONAL RESOURCES

Philippe Breault [Twitter]Jake Wharton [Github]Square [Github]

Page 86: TRADE TOOLS OF THE - YOW! Conferences...DEBUG TOOL WINDOW DEBUG TOOL WINDOW FRAMES VARIABLES VARIABLES EVALUATING EXPRESSIONS WATCHES WATCHES Add variables and expressions Resolved

THANK YOU!

www.zdominguez.com+ZarahDominguez@zarahjutz

Thank you!

ANY QUESTIONS?

Page 87: TRADE TOOLS OF THE - YOW! Conferences...DEBUG TOOL WINDOW DEBUG TOOL WINDOW FRAMES VARIABLES VARIABLES EVALUATING EXPRESSIONS WATCHES WATCHES Add variables and expressions Resolved

APPENDIX

Page 88: TRADE TOOLS OF THE - YOW! Conferences...DEBUG TOOL WINDOW DEBUG TOOL WINDOW FRAMES VARIABLES VARIABLES EVALUATING EXPRESSIONS WATCHES WATCHES Add variables and expressions Resolved

SUPPORT ANNOTATIONS

Add the dependency**dependencies { compile 'com.android.support:support-annotations:24.2.0'}

Page 89: TRADE TOOLS OF THE - YOW! Conferences...DEBUG TOOL WINDOW DEBUG TOOL WINDOW FRAMES VARIABLES VARIABLES EVALUATING EXPRESSIONS WATCHES WATCHES Add variables and expressions Resolved

SUPPORT ANNOTATIONS

Profitprivate void setThingsToTextView(int res1, int res2, int res3, int res4) { // do stuff}

private void setThingsToTextView(@IdRes int textView, @StringRes int introText, @DrawableRes int heroImage, @ColorRes int backgroundColour) { // do stuff}

Page 90: TRADE TOOLS OF THE - YOW! Conferences...DEBUG TOOL WINDOW DEBUG TOOL WINDOW FRAMES VARIABLES VARIABLES EVALUATING EXPRESSIONS WATCHES WATCHES Add variables and expressions Resolved

SYSTEM INFORMATION

Activity Manager State

Page 91: TRADE TOOLS OF THE - YOW! Conferences...DEBUG TOOL WINDOW DEBUG TOOL WINDOW FRAMES VARIABLES VARIABLES EVALUATING EXPRESSIONS WATCHES WATCHES Add variables and expressions Resolved

SYSTEM INFORMATION

Package Information

Page 92: TRADE TOOLS OF THE - YOW! Conferences...DEBUG TOOL WINDOW DEBUG TOOL WINDOW FRAMES VARIABLES VARIABLES EVALUATING EXPRESSIONS WATCHES WATCHES Add variables and expressions Resolved

SYSTEM INFORMATION

Memory Usage

Page 93: TRADE TOOLS OF THE - YOW! Conferences...DEBUG TOOL WINDOW DEBUG TOOL WINDOW FRAMES VARIABLES VARIABLES EVALUATING EXPRESSIONS WATCHES WATCHES Add variables and expressions Resolved

SYSTEM INFORMATION

Memory Usage over time

Page 94: TRADE TOOLS OF THE - YOW! Conferences...DEBUG TOOL WINDOW DEBUG TOOL WINDOW FRAMES VARIABLES VARIABLES EVALUATING EXPRESSIONS WATCHES WATCHES Add variables and expressions Resolved

SYSTEM INFORMATION

Graphics state