Lors de la décompilation d'une application, je trouve récemment que quelques manifestes d'applications ne semblent pas avoir d'activités désignées pour la vue que je veux. Par exemple, si com.example.app est sur le point de vue que je veux et j'exécutez la commande suivante:Trouver toutes les activités/fragments disponibles pour une application qui n'est pas la vôtre
dumpsys window windows | grep -E 'mCurrentFocus|mFocusedApp'
la sortie résultante sera quelque chose comme:
mCurrentFocus=Window{9280f2a u0 com.example.app/com.example.app.MainSubMenu}
mFocusedApp=AppWindowToken{da37759 token=Token{9d56fa0 ActivityRecord{5c490a3 u0 com.example.app/.MainSubMenu t98}}}
Cela est bien, mais quand l'écran sur lequel je suis est évidemment une sous-activité/sous-vue/fragment, dumpsys ni logcat me montreront le chemin complet de cette vue. Bref, j'aimerais trouver le nom du fragment/vue et le lancer directement. Cette syntaxe semble prometteur pour obtenir une vue fragment lancement (peut-être avec une certaine variation):
am start -n com.example.app/.MainSubMenu -e :android:show_fragment com.example.app.somefragmentview
mais je ne suis pas sûr de la façon de trouver tous les noms fragment pour chaque activité de l'application.
des fragments sont également répertoriés dans le manifeste. mais connaître les noms de fragments ne vous aidera pas beaucoup. La plupart du temps, les fragments nécessitent des extras de types non supportés par la commande 'am' pour être affichés correctement. –
Merci Alex P. J'ai découvert que je posais la même question ici: https://stackoverflow.com/questions/18522733/how-to-get-extras-of-currently-running-activity-through-adb – itsthegrimace
Pour être plus précis, logcat affichera quelque chose comme: I/ActivityManager (530): START u0 {cmp = com.example.app/.MainSubMenu (a des extras)} from uid 10083 sur l'affichage 0. J'ai besoin de quelque chose pour vider le ' a des informations supplémentaires. – itsthegrimace