Friday, January 4, 2013

[android-developers] Re: eclipse run configuration to launch various activities with extras (or android app run arguments)

(excuse me) bump!

On Saturday, December 8, 2012 12:11:28 PM UTC, Mihai Badea wrote:
Dear friends,

I would like to create a launch configuration, to run any activity with arguments, for quick manually interactive testing.

I have one Android Application with many activities. Some of them are chained in a wizard, each activity is a step, so they are launched from one another, with put extras in the intent as arguments for the next step. I would like to quickly reach the read marked step marked in the flow below, in other words I would like to launch directly an activity towards the end of my wizard, without having to go through all the previous wizard steps.

           [extras]              [...] [...]              [extras]               [...] [...]            
Activity_1 --------> Activity_2 --> [...] --> Activity_6 ----------> Activity_7 --> [...] --> Activity_9

I managed to create a run configuration that launches the activity I want. But I can't find how to define the extras in the run config, and without arguments running that activity doesn't make sense.

To create a run configuration for a different activity I added a LAUNCHER intent-filter in AndroidManifert.xml:
        <activity
            android:name=".Activity_7"
            android:label="@string/label_activity_7" >
            <meta-data
                android:name="android.support.PARENT_ACTIVITY"
                android:value="com.example.hello.activity_6"
            />
            <intent-filter>
                <action android:name="android.intent.action.WHATEVER_ELSE_THAN_MAIN_TO_AVOID_ICON_IN_LAUNCHER" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

I am following two paths that I think might achieve what I want - but so far to no avail:

1. Trying to use ActivityManager in the ADB shell to launch the activity, then try to fit these parameters in the launch configuration file:

~ $ adb shell
am start -a android.intent.action.MAIN -c android.intent.category.LAUNCHER -n com.example.hello/Activity_7 -e "param_1" "foo" -e  "param_2" "boo"

Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.example.hello/.Activity_7 (has extras) }

OK this worked fine in ADB Shell. I launched directly the 7th step in my wizard, with params: param_1=foo, param_2=boo and I can now manually test directly the activity I am working on. I didn't have to go jumping hoops through all previous 6 steps of the wizard so I can reach where I want and have a play at the UI.

Now I need to enter this params somehow in "Eclipse->Run->Run Configurations...->Android Application". Seems there's no means to to that.
Trying to edit directly the launch file from "workspace\.metadata\.plugins\org.eclipse.debug.core\.launches\Activity_2.launch" xml file:

[...]
<launchConfiguration type="com.android.ide.eclipse.adt.debug.LaunchConfigType">
<intAttribute key="com.android.ide.eclipse.adt.action" value="1"/>
<stringAttribute key="com.android.ide.eclipse.adt.activity" value="com.example.hello.Activity_2"/>
<stringAttribute key="com.android.ide.eclipse.adt.commandline" value=""/>
[...]

No matter what I wrote in the value of "com.android.ide.eclipse.adt.commandline" or whatever other "com.android.ide.eclipse.adt.*" attributes I added, I could not manage a proper activity launch with extras.

I have no idea why I don't find this feature, it seems quite basic in an IDE, that when you have run configurations for software with various entry points, you should have a means to pass arguments to them too?

2. Android JUnit Test

I need interactive testing. I want to play myself with the UI and see how the user experience feels like. JUnit tests can do UI automation, monkey and other UI stuff, but what I want from it is to start the activity I want and then give me the control for a while.
So far I didn't find interactive support in Android Unit Test. Does such a feature exist?

Many thanks for your reading this and any helpful thoughts you might have.
Mihai

--
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscribe@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

No comments:

Post a Comment