Android App Event Monitoring
System event monitoring
You can enable / disable system event monitoring by setting GermainAPMConfiguration.setSystemEventsMonitoring()
accordingly. Currently you can either monitor all of them or none. Monitoring of the below events depends on the application's permissions (e.g. if an application doesn't allow to receive calls then Germain UX monitoring won't be able to collect events on incoming calls).
List of system events monitoring can collect:
Airplane Mode
Application Changed
Application Cleared
Application First Launch
Application Fully Removed
Application Installed
Application Removed
Application Replaced
Application Replaced
Application Restarted
Application Verified
Battery Low
Battery OK
Bluetooth ACL Connected
Bluetooth ACL Disconnected
Bluetooth Device Found
Bluetooth Device Name Changed
Bluetooth Device Picker Launched
Bluetooth Device Selected
Call Outgoing
Camera Button
Configuration Changed
Device Boot
Device Docked
Device Dreaming Started
Device Dreaming Stopped
Device Reboot
Device Shut Down
Device Sleep
Device Wake Up
GTalk Connected
GTalk Disconnected
Headset
Idle Mode Changed
Input Method Changed
Locale Changed
Media Bad Removal
Media Button
Media Ejected
Media External Present
Media Incompatible FS
Media Mounted
Media Removed
Media Shared
Media Unmountable
Media Unmounted
New Picture
New Video
Phone State
Power Connected
Power Disconnected
Power Save Mode Changed
SMS Received
SMS Rejected
Storage Low
Storage Low Package
Storage OK
Timezone Changed
User ID Removed
Voicemail Fetch
Voicemail New
Wallpaper Changed
WAP Received
Wi-Fi Changed
Application event monitoring
Germain UX collects automatically the following application events:
Application startup event
Application state event (in foreground; in background)
Application low memory event (memory moderate, memory critical, memory low, memory moderate)
Application launch duration transaction
Application closed event and Application uptime duration (total, in foreground, in background)
This monitoring gets initiated automatically by Germain UX but to collect the final data points an end event must be triggered.
We distinct the following application closure scenarios which will end this monitoring:
on application crash - automatic collection triggers if "Automatic crash detection for unhandled exceptions" is enabled
on application removal from recent application list event or calling
finishAndRemoveTask()
- automatic collection triggers if "Application removal from recent application list event" monitoring is configured and enabledon application closure done programmatically(e.g. by killing its own process or by calling
finishAffinity()
) - explicit trigger is required by calling the following code:
Java:
// ...
GermainAPM.collectApplicationExit(Boolean calledFromForeground); // calledFromForeground=true if this line is called from a foreground application otherwise set it to false
// your closure code
Kotlin:
// ...
GermainAPM.collectApplicationExit(Boolean calledFromForeground) // calledFromForeground=true if this line is called from a foreground application otherwise set it to false
// your closure code
Application removal from recent application list event
This event gets collected when you swipe out monitored application from the recent application task list. Currently this monitoring is supported on SDK 25 or lower due to the limitations imposed by Android SDK26 and above.
This monitoring requires to configure the following service inside your application's AndroidManifest.xml
:
<manifest>
//....
<application>
//....
<service
android:name="com.germainsoftware.apm.mobile.library.monitoring.RecentAppRemovalListener"
android:exported="false"
android:stopWithTask="false"
/>
</application>
</manifest>
Component: Mobile App
Feature Availability: 8.6.0 or later