Migrating from previous Android Mobile Agent versions

Changes introduced with AppMon 2017 May

The migration steps for AppMon 2017 May are based on a 6.5 setup.

Manual instrumentation

  • The com.dynatrace.android.ext.jar library has been removed. You must do your own lifecycle instrumentation for activity classes that are not part of the Android SDK. See Lifecycle instrumentation for more information.

Auto-instrumentation

  • The DTXApplicationID property is mandatory. The auto-instrumentor does not use the application name as fallback. However, you can still use your application name as application ID value, if it is unique for your environment.
  • The auto-instrumentor uses the APK Signature Scheme v2 with a debug certificate to sign your instrumented APK file
  • The auto-instrumentor contains a new preparation step for multidex applications. See multi-dex applications for more information.
  • The auto-instrumentor can monitor OkHttp 3 web requests and OkHttp 3-based frameworks like Retrofit2.
  • The Android auto-instrumentation wizard in the AppMon Client has been removed. You shouldn't use the wizard from a 6.5 AppMon client to instrument an application with an AppMon 2017 May mobile agent. This use case is not supported.

Dynatrace Gradle plugin

  • Update the gradle plugin configuration to fetch an AppMon 2017 May mobile agent (use classpath 'com.dynatrace.tools:android:7.0.+')

Changes introduced with AppMon 6.5

The migration steps for AppMon 6.5 are based on an AppMon 6.3 setup.

Replace DynatraceUEM.jar with dynatrace.jar

  1. Add the Dynatrace.jar file to your /libs folder where the DynatraceUEM.jar file currently resides.
  2. Update any classpath references from DynatraceUEM.jar to Dynatrace.jar.
  3. Remove the old DynatraceUEM.jar file from your project.
  4. Update any reference of com.dynatrace.apm.uem.mobile.android.* to com.dynatrace.android.agent.*.

Replace com.dynatrace.android.ext.jar if needed

  • Replace the old the com.dynatrace.android.ext.jar file in the /libs folder with the new one.
  • Sherlock Activity classes are no longer supported.

Search and replace

  • Change status code return value prefix of manual instrumentation methods from CPWR_ to DTX_.
  • Update CPWR_Uem/CPWR_UemOff to DTX_CaptureOn/DTX_CaptureOff.
  • Update any reference of DynatraceUEM.uemCaptureStatus() toDynatrace.getCaptureStatus().
  • Update any reference of DynatraceUEM to Dynatrace.
  • Update any reference of UEMAction to DTXAction.
  • Update any reference of UEMWebRequestTiming to DTXWebRequestTiming.

Other changes

  • The APK-Instr.properties file now only uses DTX_ keys. Migrate the settings from your previous APK-Instr.properties file.
  • Contact support for the DTX_ replacement if you use undocumented keys.
  • Update your ProGuard settings.
  • If you need additional logging, output see advanced settings on how to enable in AppMon 6.5.

JavaScript bridge

  • ReplaceCompuwareUEM.js with Dynatrace.js.

Changes introduced with AppMon 6.2

AppMon 6.2 and later includes a renaming from Compuware back to the original Dynatrace. If you are currently using a version of the Android mobile agent prior to AppMon 6.2, replace the existing Compuware-branded library files with the new Dynatrace ones (DynatraceUEM.jar and com.dynatrace.android.ext) and adapt your code accordingly.

Replace CompuwareUEM.jar

  1. Add the DynatraceUEM.jar file to your /libs folder where the CompuwareUEM.jar file currently resides.
  2. Update any classpath references from CompuwareUEM.jar to DynatraceUEM.jar.
  3. Remove the old CompuwareUEM.jar file from your project.

Replace com.compuware.android.ext.jar if needed

If using the Sherlock ext library, the upgrade process is nearly identical. This is not required if you don't use this library,.

  1. Add the com.dynatrace.android.ext.jar file to the /libs folder where the com.compuware.android.ext.jar file currently resides.
  2. Update any classpath references from com.compuware.android.ext.jar to com.dynatrace.android.ext.jar.
  3. Remove the old com.compuware.android.ext.jar file from your project.

Handling deprecated classes

File names have changed to reflect rebranding. The change has a minimum impact. You can simply replace the old file with the new. However the compiler issues notices that CompuwareUEM classes have been deprecated. Your project continues to build and run as before. It is recommended that you eventually update your code to use the new class names, since the deprecated classes are eventually removed.

  1. Update any reference of com.compuware.android.app.* to com.dynatrace.android.app.*.
  2. Update any reference of com.compuware.apm.uem.mobile.android.* to com.dynatrace.apm.uem.mobile.android.*.
  3. Update any reference of CompuwareUEM.method() to DynatraceUEM.method().

Common Build Warnings