10

For example, I want to start Gmail in code/command line, but I don't know its main activity name.

am start -n com.google.android.gm/.XXXXX

It's available through decompiling the apk, but it's difficult.

CopsOnRoad
  • 175,842
  • 51
  • 533
  • 380
pengguang001
  • 3,835
  • 5
  • 26
  • 31

5 Answers5

20

This can be found in the application's manifest.

The main activity is the activity with the intent-filter whose name is android.intent.action.MAIN.

Tony the Pony
  • 38,889
  • 68
  • 181
  • 275
8

You can plug your phone into the computer and look at the DDMS log, application launches are printed there, e.g:

05-11 09:19:15.725: INFO/ActivityManager(96): Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x2000000 cmp=com.google.android.gm/.ConversationListActivity bnds=[125,410][235,540] } from pid 2457

So, com.google.android.gm/.ConversationListActivity, would seem like the right choice, at least, that's what the icon seems to launch.

dmon
  • 29,903
  • 7
  • 86
  • 95
5

Step1: Start "adb logcat" in command prompt.

Step2: Open the app (either in emulator or real device) enter image description here

Rameshwar
  • 513
  • 4
  • 20
4

You don't need to know it's name, instead you should use implicit intent and specify action along with type and some extras, for example

            final Intent intent = new Intent();
            intent.setType("message/rfc822");
            intent.setAction(Intent.ACTION_SEND);
            intent.putExtra(Intent.EXTRA_SUBJECT, "Some subject");

System will search for components available to run this intent.

ernazm
  • 9,118
  • 4
  • 42
  • 50
3

Just go to Android package n open Android Manifest File n check out this activity element

<activity>
    <intent-filter>
    <action android:name="android.intent.action.MAIN" />
</activity>
bytecode77
  • 13,209
  • 30
  • 105
  • 134
Ajit Gupta
  • 39
  • 1