243 lines
3.1 KiB
Plaintext
243 lines
3.1 KiB
Plaintext
Application
|
||
Programming
|
||
Hend Alkittawi
|
||
|
||
Debugging
|
||
How To Debug Java Code and Android
|
||
Applications
|
||
|
||
DEBUGGING ANDROID APPLICATIONS
|
||
-
|
||
|
||
Some of the problems you may
|
||
encounter while building android
|
||
applications. The application may
|
||
crash at runtime or not function as
|
||
expected!
|
||
|
||
-
|
||
|
||
As an IDE, Android Studio has some
|
||
tools to help developers debug their
|
||
code. These tools are:
|
||
-
|
||
|
||
The Logcat
|
||
|
||
-
|
||
|
||
Android Lint
|
||
|
||
-
|
||
|
||
The Debugger
|
||
|
||
THE LOGCAT
|
||
-
|
||
|
||
When an application is running, the Logcat tool window
|
||
provides access to diagnostic messages.
|
||
|
||
-
|
||
|
||
The log output displays messages which are created using the
|
||
Log class
|
||
-
|
||
|
||
The syntax to create a log diagnostic message is
|
||
Log.[logLevelInitial]("TAG", "Message")
|
||
|
||
-
|
||
|
||
Some of the available log levels:
|
||
-
|
||
|
||
Information, Verbose, Debug, Error
|
||
|
||
-
|
||
|
||
the log level and the tag helps with filtering messages
|
||
|
||
-
|
||
|
||
Example: Log.d("PeekActivity", "Button Clicked!")
|
||
|
||
THE LOGCAT
|
||
|
||
ANDROID LINT
|
||
-
|
||
|
||
Android Lint is a static analyzer for Android code
|
||
-
|
||
|
||
a program that examines your code to find defects without
|
||
running it
|
||
|
||
-
|
||
|
||
Android Lint is aware of the Android framework components and
|
||
and can find problems that the compiler cannot find.
|
||
|
||
-
|
||
|
||
For example, it is good for finding issues in XML files.
|
||
|
||
-
|
||
|
||
To run Android Lint: Code > Inspect Code the click Analyze
|
||
|
||
ANDROID LINT
|
||
|
||
THE DEBUGGER
|
||
-
|
||
|
||
The debugger is a tool mainly used to run the application under
|
||
controlled conditions that permit the developer to track its
|
||
execution and monitor changes in computer resources that may
|
||
indicate malfunctioning code.
|
||
|
||
-
|
||
|
||
To control the application execution, add breakpoints to your
|
||
code lines.
|
||
|
||
-
|
||
|
||
A breakpoint next to a line of code pauses the execution before
|
||
the line executes and allows you to examine what happens next.
|
||
|
||
-
|
||
|
||
To run the application in debug-mode, add breakpoint(s) then
|
||
Run > Debug
|
||
|
||
THE DEBUGGER
|
||
-
|
||
|
||
When using the debugger, the developer can control the app execution:
|
||
-
|
||
|
||
Step Into
|
||
-
|
||
|
||
A method is about to be invoked, and you want to debug into the code of that
|
||
method, so the next step is to go into that method and continue debugging
|
||
step-by-step.
|
||
|
||
-
|
||
|
||
Step Over
|
||
-
|
||
|
||
A method is about to be invoked, but you're not interested in debugging this
|
||
particular invocation, so you want the debugger to execute that method completely
|
||
as one entire step.
|
||
|
||
-
|
||
|
||
Step Return
|
||
-
|
||
|
||
You're done debugging this method step-by-step, and you just want the debugger to
|
||
run the entire method until it returns as one entire step.
|
||
|
||
-
|
||
|
||
Resume
|
||
-
|
||
|
||
You want the debugger to resume "normal" execution instead of step-by-step
|
||
|
||
p
|
||
|
||
THE DEBUGGER
|
||
|
||
1.
|
||
|
||
k
|
||
ea
|
||
r
|
||
b
|
||
|
||
g
|
||
|
||
2.
|
||
|
||
bu
|
||
e
|
||
D
|
||
|
||
nt
|
||
|
||
i
|
||
po
|
||
|
||
3. Control execution
|
||
|
||
Tra
|
||
|
||
ck
|
||
|
||
exe
|
||
cut
|
||
|
||
ion
|
||
|
||
ap
|
||
|
||
DEBUGGING ANDROID APPLICATIONS
|
||
-
|
||
|
||
When errors persist, some things you can try
|
||
-
|
||
|
||
Recheck the xml in resource files
|
||
|
||
-
|
||
|
||
Clean the project build
|
||
|
||
-
|
||
|
||
-
|
||
|
||
Build > Clean Project
|
||
|
||
-
|
||
|
||
Android studio will rebuild the project from scratch
|
||
|
||
Clean the project
|
||
-
|
||
|
||
File > Invalidate Caches/Restart
|
||
|
||
-
|
||
|
||
Android Studio will perform some maintenance on the project
|
||
and restart itself
|
||
|
||
-
|
||
|
||
Check online :)
|
||
|
||
CODE DEMO
|
||
-
|
||
|
||
Show the different
|
||
tools in Android
|
||
Studio.
|
||
|
||
DO YOU HAVE ANY
|
||
QUESTIONS?
|
||
|
||
THANK
|
||
YOU!
|
||
|
||
@
|
||
|
||
hend.alkittawi@utsa.edu
|
||
By Appointment
|
||
Online
|
||
|
||
|