Files
MosisService/docs/ANDROID-TESTING.md

2.8 KiB

Android Device Testing

Prerequisites

# Check connected device
adb devices -l

# Verify Mosis app is installed
adb shell pm list packages | grep mosis

Build and Install

# Build debug APK
./gradlew assembleDebug

# Install on device
adb install -r build/outputs/apk/debug/MosisService-debug.apk

# Launch the app
adb shell am start -n com.omixlab.mosis/.MainActivity

Run Gradle Connected Tests

# Run all connected Android tests
./gradlew connectedAndroidTest

Event Injection via ADB

Inject touch events for automated testing:

# Click at normalized coordinates (0.0-1.0)
adb shell am broadcast -a com.omixlab.mosis.INJECT_TOUCH \
    --es touch_type "click" --ef x 0.5 --ef y 0.5

# Touch down
adb shell am broadcast -a com.omixlab.mosis.INJECT_TOUCH \
    --es touch_type "down" --ef x 0.2 --ef y 0.9

# Touch up
adb shell am broadcast -a com.omixlab.mosis.INJECT_TOUCH \
    --es touch_type "up" --ef x 0.2 --ef y 0.9

Dock Element Coordinates (Normalized)

Element X Y
dock-phone 0.16 0.97
dock-messages 0.39 0.97
dock-contacts 0.61 0.97
dock-browser 0.84 0.97
back-button 0.10 0.05

Full Navigation Test Sequence

# Clear logs and run navigation test sequence
adb logcat -c

# Click Phone dock icon
adb shell am broadcast -a com.omixlab.mosis.INJECT_TOUCH \
    --es touch_type "click" --ef x 0.16 --ef y 0.97
sleep 2

# Click back to return home
adb shell am broadcast -a com.omixlab.mosis.INJECT_TOUCH \
    --es touch_type "click" --ef x 0.1 --ef y 0.05
sleep 2

# Click Messages dock icon
adb shell am broadcast -a com.omixlab.mosis.INJECT_TOUCH \
    --es touch_type "click" --ef x 0.39 --ef y 0.97
sleep 2

# Click back to return home
adb shell am broadcast -a com.omixlab.mosis.INJECT_TOUCH \
    --es touch_type "click" --ef x 0.1 --ef y 0.05
sleep 2

# Click Contacts dock icon
adb shell am broadcast -a com.omixlab.mosis.INJECT_TOUCH \
    --es touch_type "click" --ef x 0.61 --ef y 0.97
sleep 2

# Click back to return home
adb shell am broadcast -a com.omixlab.mosis.INJECT_TOUCH \
    --es touch_type "click" --ef x 0.1 --ef y 0.05
sleep 2

# Click Browser dock icon
adb shell am broadcast -a com.omixlab.mosis.INJECT_TOUCH \
    --es touch_type "click" --ef x 0.84 --ef y 0.97

Reading Logs

# Filter for Mosis logs
adb logcat -s MosisTest ServiceTester RMLUI

# Filter for navigation events
adb logcat -d | grep -iE "navigat|loaded|goBack|rml"

# Save to file
adb logcat -s MosisTest > mosis-log.txt

# Clear logs
adb logcat -c

Expected Log Output

Successful navigation shows these log patterns:

RMLUI: navigateTo called with: dialer
Loading screen: apps/dialer/dialer.rml
RMLUI: Navigated to: dialer (history depth: 1)

RMLUI: goBack called (history depth: 1)
Loading screen: apps/home/home.rml
RMLUI: Back to: home