comment trouver l'activité principale de fichier apk pour robotium tests
J'ai beaucoup de fichiers apk et je veux écrire des tests simples avec robotium pour eux. J'ai quelques problèmes, quand j'ai essayé de trouver la main Activitys pour eux, en application Dropbox comme exemple.
Dans AndroidManifest.xml j'ai trouvé ceci:
</activity>
<provider android:name=".provider.ZipperedMediaProvider" android:exported="false" android:authorities="com.dropbox.android.ZipperedMediaProvider"></provider>
<provider android:name=".provider.CameraUploadsProvider" android:exported="false" android:authorities="com.dropbox.android.CameraUploadsProvider"></provider>
<activity android:theme="@android:01030055" android:name=".activity.DropboxBrowser">
<intent-filter >
<action android:name="android.intent.action.MAIN"></action>
<category android:name="android.intent.category.LAUNCHER"></category>
</intent-filter>
<intent-filter android:label="Dropbox File Browser">
<action android:name="com.dropbox.BROWSE"></action>
<action android:name="android.intent.action.VIEW"></action>
<action android:name="android.intent.action.EDIT"></action>
<category android:name="android.intent.category.DEFAULT"></category>
<data android:mimeType="vnd.android.cursor.dir/vnd.dropbox.entry"></data>
<data android:mimeType="vnd.android.cursor.item/vnd.dropbox.entry"></data>
</intent-filter>
</activity>
De comprendre comment l'activité principale est appelée? Je suis a ApkAnalyser et j'ai essayé différents noms de classe et d'autres chaînes, mais robotium test ne peut pas lancer l'application et d'écrire qu'il n'existe pas de tests dans mon projet:/(apk est re-signé dans mon PC) je veux comprendre, comment les identifier MainActivity de th fichiers apk? thx
OriginalL'auteur user1835337 | 2013-03-19
Vous devez vous connecter pour publier un commentaire.
Je sais c'est vieux mais il m'est arrivé de tomber sur elle.
La question était: "je veux comprendre, comment les identifier MainActivity de l'apk fichiers?" Que vous devriez avoir le SDK et de créer des fichiers sur votre boîte. Procédez de la manière suivante:
Ouvrez une fenêtre de commande/terminal
cd <SDK PATH>/build-tools/<BUILD TOOLS #>/
MAC/LINUX
./aapt dump badging <path to the APK file>
Windows
aapt.exe dump badging <path to the APK file>
De Commande Réf.:
délivrance des badges d'Impression de l'étiquette et l'icône de l'application déclaré dans APK.
L'Android de l'Actif de l'Emballage de l'Outil (aapt) prend vos fichiers de ressources d'application, tels que la AndroidManifest.xml de fichiers et les fichiers XML pour vos Activités, et les compile.
http://developer.android.com/tools/building/index.html
La sortie sera comme ceci:
Ce que vous voulez examiner est la suivante: "projetables-activité"
FAIT!
J'espère que cela aide quelqu'un.
J
aapt dump badging /path/to/apk/ApkName.apk | grep launchable-activity | sed -r "s/launchable-activity: name='([a-z0-9.]*)'.*/\1/i"
OriginalL'auteur JamesDeHart
Dans une application android il y a toujours une activité principale, mais pas seulement, cette activité peut être lancé. Dans une application, il peut y avoir plusieurs activités, que vous pouvez lancer séparément. L'activité principale doit avoir android:name="android.l'intention.de la catégorie.LANCEUR." Dans votre exemple, la seule et unique activité principale est: .de l'activité.DropboxBrowser
Plus d'informations ici (en particulier les modes de lancement): http://developer.android.com/guide/topics/manifest/activity-element.html
OriginalL'auteur maszter
Ce lien nous donne le moyen idéal de le faire
http://code.google.com/p/robotium/wiki/RobotiumForAPKFiles
Et dans cette quand vous vous re-signe l'apk avec votre re-sign.jar de fichier, il vous indique le nom et l'activité de votre fichier apk.
OriginalL'auteur Hawk_85
Découvrez ce code python pour se faire une idée sur la façon d'obtenir package/nom de l'activité:
http://voyager.wordpress.com/
Ce site web fournissent un script python pour analyser la sortie de "aapt".
OriginalL'auteur mohsen damshenas
Décompiler le fichier apk. Recherchez le
AndroidManifest.xml
fichier...ouvrir le fichier et de trouver la première ligne de départ avec une activité qui constitué de intent-filter....cette activité contient les principaux nom de l'activité normale...dans ce code, l'activité principale nom estMainActivity
OriginalL'auteur Mohammed Javad
L'activité principale est définie dans le fichier XMl que vous avez ci-dessus, il sera associé à un filtre d'intention pour principal.
dans le cas du code ci-dessus, il sera contenu dans le texte suivant:
qui me dit que l'activité est ".de l'activité.DropboxBrowser".
le "." au début de l'signifie que vous devez ajouter quel que soit le nom du package de l'application est avant, donc ce sera quelque chose comme "xxx.xxx.de l'activité.DropboxBrowser" où xxx.xxx est le packagename définies dans la partie supérieure de l'manifeste android (ou vous pouvez le regarder avec pacakagemanager)
Il a notamment mentionné le MainActivity je suppose qu'il voulait dire l'activité avec l'action principale. Action principale est un cas particulier, même plus que le Lanceur de l'activité car il ne nécessite pas l'intention d'informations afin de lancer l'application normalement (en tout état de propreté). Vrai qu'il pourrait lancer d'autres activités qui ne sont pas principale et à seulement Lanceur, mais qui pourraient ne pas fonctionner correctement comme il pense qu'il peut faire et dépend du développeur. Il a également des utilisations spéciales avec le google play store. developer.android.com/guide/components/intents-filters.html
OriginalL'auteur Paul Harris
De gagner un temps (si vous voulez tester plus de 100 apk), vous devez automatiser cette identification étapes.
Pour cela, vous pouvez analyser Manifestfile et seulement choisir l'Activité qui gèrent les intentions composé avec android.l'intention.d'action.Action PRINCIPALE, la catégorie android.l'intention.de la catégorie.LANCEUR.
inspiration de l'analyse : com.android.l'ide.commun.xml.AndroidManifestParser
OriginalL'auteur xena