The Android Debugger

If you are developing Java applications running on Android devices or emulators, you can also debug them. The Local and Remote machines can be on either a 32-bit platform or a 64-bit platform.

 

Android

 

System Requirements

On the Remote machine, this software is required:

Android SDK, which includes the android debug ridge, ADB (you need to be familiar with the SDK and its tools)
Java JDK (32 and 64 bit support)
Port Forwarding software (3rd party)
 

On the Local machine, this software is required:

Enterprise Architect Version 10
 

Analyzer Script Settings

Field/Button

Action

See also

Debugger

Click on the drop-down arrow and select Java (JDWP).

 

 

Run

Click on this radio button.

 

 

Default Directory

 

 

 

 

 

 

 

Not applicable - leave blank.

 

 

Application path

 

Command Line Arguments

 

Build first

 

Show console

 

Show diagnostic messages

 

Connection

 

Port

This is the application port forward-assigned using adb or other means, that connects to the Virtual Machine (VM) process on Android.

 

Port Forwarding

Host

Host computer (defaults to localhost )

If Android is running on an emulator on a device attached to a networked computer, enter the network name here.

By default, debugging will attempt to connect to the port you specify on the local machine.

 

 

Source

This is the source equivalent of the classpath setting in Java.

The root to each source tree should be listed. If more than one is specified, they should be separated by a semi-colon; that is:

 

c:\myapp\src;c:\myserver\src

 

You must specify at least one root source path.

When a breakpoint occurs the debugger searches for the java source in each of the source trees listed here.

 

 

Logging

Enables logging additional information from debugger

possible values: true,false,1,0,yes,no

 

 

Output

Specifies the full name of the local log file to be written.

The folder must exist or no log will be created.

The log file typically contains a dump of bytes sent between debugger and VM.

 

 

Platform

If you are debugging Java running under any android scenario, select Android.

For all other scenarios, select Java.

 

 

Configure Ports for Debugging - Port Forwarding (Local)

The debugger can only debug one VM at a time; it uses a single port for communication with the VM. The port for the application to be debugged can be assigned using ADB.

Before debugging, start the application once in the device. When the app starts, perform the following to discover its process id:

 

adb jdwp

 

The last number listed is the process identifier (pid) of the last application launched; note the pid and use it as follows to allow the debugger to connect to the VM:

adb forward tcp:port jdwp:pid
port = port number listed in analyzer script
pid = process id of the application on the device
 

Configure Ports for Debugging - Port Forwarding (Remote)

To debug remotely the same procedure should be followed as for the local machine, but the communication requires additional forwarding as the socket created using the abd forward command above will only listen on the local adpater. The socket is bound to the localhost and attempts to connect to this port will be met with connection refused messages.

In order to achieve remote debugging it it necessary to have a proxy running on the remote machine that listens to all incoming connections and forwards all traffic to the adb port.; there are numerous software product available to do this.

Remote debugging with Enterprise Architect will not work unless a proxy port forwarder has been configured by the user.