9
votes

Monkeyrunner: Un moyen facile de déterminer les coordonnées de la commande Monkeydevice tactile?

J'ai commencé à créer un script de monkeyrunner. Cela va bien, mais chaque fois que j'ajoute un monkeydevice :: Commande tactile, je dois déterminer les coordonnées d'entrée par erreur et erreurs. Fondamentalement, je suppose que les coordonnées que je veux toucher et voir si ces coordonnées entraînent la touche Touche, j'essaie de tester. Cela fonctionne, mais c'est un processus lent. Y a-t-il de toute façon pour déterminer les coordonnées des contrôles d'interface utilisateur, peut-être des fichiers xml de mise en page?


0 commentaires

7 Réponses :


4
votes

Ce message ( Monkeyrunner: interagir avec des vues ), peut vous donner et idée de savoir comment obtenir les coordonnées de la vue en utilisant AndroidViewClient .


0 commentaires

7
votes

J'ai trouvé comment le faire. Utilisez la vue parfaite de Pixel dans Eclipse pour déterminer les coordonnées X & Y de l'élément UI. Voici un aperçu rapide: 1) Eclipse doit être en cours d'exécution 2) Votre appareil Android doit être connecté (le périphérique réel via adb ou l'émulateur). 3) Exécutez la visionneuse de la hiérarchie (dans / Outils) 4) Sélectionnez "Inspecter une capture d'écran" La vue parfaite du pixel se lancera automatiquement. Il suffit de placer les cheveux sur l'élément d'interface utilisateur. Les coordonnées X et Y, ainsi que les valeurs RVB, sont affichées ci-dessous.

Voici l'URL qui m'a créé: http://developer.android.com /guide/developing/debugging/debugging-ui.html#pixelperfect


0 commentaires

2
votes

La plupart des versions Android Vous pouvez activer l'emplacement du pointeur dans Paramètres-> Options de développeur . Une fois que vous l'activez, il est facile de trouver les coordonnées (x, y) .


1 commentaires

C'est absolument le moyen le plus simple de le faire sur toute version Android récente. Si votre version Android est trop ancienne, par exemple. Gingerbread, puis il y a une application, Dev Outils, disponible via le marché Android, AKA, Play Store, qui dispose également d'un menu Options de développeur / Paramètres avec la possibilité de montrer où le pointeur est identique à celui des développeurs intégrés avec Ics et plus tard.



2
votes

Vous pouvez également utiliser l'outil de visualiseur de hiérarchie dans votre dossier SDK Android> Outils pour prendre des captures d'écran de l'écran actuel et examiner cette image pixel par pixel pour obtenir des coordonnées exactes.


0 commentaires

0
votes

Pour les appareils plus anciens que Android 4.0, voir le paragraphe après celui-ci. Android 4.0 et ultérieure Inclure les paramètres-> Options de développeur-> Bascule d'emplacement du pointeur qui bascule un ruban transparent dans le haut de l'écran du périphérique avec des coordonnées, des vitesses et des lectures tactiles, comprenant des pistes de balayage et une réticulation X / Y pour l'emplacement tactile actuel. C'est beaucoup plus facile que d'utiliser des alternatives telles que l'enregistreur de singe et d'autres moyens. Dans Android 4.2 et version ultérieure, les options de développement sont cachées dans le menu Paramètres et doivent être activées en allant des paramètres -> À propos de la tablette et de la prise en charge du numéro de construction sept fois. On ne peut supposer que les options d'Android Hid Developer en raison des options de plus en plus d'expérience-expérience-expérience qu'il contient et du nombre d'appels de consommateurs / plaintes aux fabricants de périphériques de personnes qui ont joué avec elle ou dont les enfants ont joué avec elle.

Dans les anciennes versions, ce qui peut ne pas inclure d'emplacement de pointeur bascule, une application sur le magasin de jeu (AKA Android Market), les outils de développeurs. Voir le lien Ici: https://play.google.com/store /apps/details?id=com.ggb.développement Il apparaîtra avec une icône d'engrenages et des outils DEV de la légende sur un périphérique et fournissent des fonctionnalités similaires que Dev Outils dans un Dispositif virtuel AVD (Dispositif virtuel Android). Cela inclut Dev Outils -> Paramètres de développement> Aucun emplacement de pointeur / bouton de pointeur Bouton radio Bascule. Réglage qui bascule vers l'emplacement du pointer fournit exactement la même fonctionnalité intégrée avec Android 4.0 et ultérieure. La même application dispose également d'un paramètre de pointeur plus limité à Dev Outils-> Emplacement du pointeur qui limite l'emplacement du pointeur sur un écran vide.

profiter!


0 commentaires

0
votes

Créez un fichier xyz.py avec le code ci-dessous et connectez le périphérique et exécutez-le dans le terminal comme somekeyrunner xyz.py, alors vous obtiendrez votre appareil dans PC, puis vous cliquez sur n'importe quel bouton de l'enregistreur, il vous donnera la Coordonnées, après cela, explorez-la à n'importe quel fichier et vous pouvez utiliser les coordonnées.

from com.android.monkeyrunner import MonkeyRunner as mr
from com.android.monkeyrunner.recorder import MonkeyRecorder as recorder
device = mr.waitForConnection()
recorder.start(device)


0 commentaires

0
votes

J'ai trouvé une approche ADB. Utilisez adb shell geevent -l code> pour obtenir une liste d'événements, grep for abs_mt_position code> (obtient la ligne avec les événements tactiles en hex) et utilisez enfin AWK pour obtenir les valeurs hexagonales pertinentes , Stripez-les des zéros et convertissez HEX en décimal que le coureur de singe utilise. Tout cela se fait avec ce qui suit:

adb shell getevent -l | grep ABS_MT_POSITION --line-buffered | awk '{a = substr($0,54,8); sub(/^0+/, "", a); b = sprintf("0x%s",a); printf("%d\n",strtonum(b))}'


3 commentaires

Erreur: grep n'est pas reconnu comme une commande interne ou externe, programme actionnable ou fichier de commandes. Dans Android 10 émulateur


@ Behroz.M Grep est un programme de shell Linux et on dirait que vous devez d'abord l'installer. Si vous utilisez Mac OS, vous devez l'installer en utilisant Brew Installation Grep .


Donc, je reçois cette erreur parce que j'utilise Windows! Je pensais que cela venait de l'émulateur Android!