android - how to find the name of the main activity of an application?
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.g开发者_如何学运维m/.XXXXX
It's available through decompiling the apk, but it's difficult.
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
.
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.
Step1: Start "adb logcat" in command prompt.
Step2: Open the app (either in emulator or real device)
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.
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>
精彩评论