9
votes

Comment puis-je simuler la commande "queue" pour fichier sur le système de fichiers Android?

J'ai un fichier sur la carte SD et mon application en l'utilisant comme fichier journal. Est-il possible grâce à la RDA de regarder le fichier avec tous les changements en temps réel? Comme avec queue -f /sdcard/myfile.log commande.


0 commentaires

5 Réponses :


0
votes

Vous pouvez le faire avec LOGCAT. Vous pouvez ajouter une vue qui ne fera que montrer uniquement les entrées de journal à partir de votre application et il sera mis à jour en permanence.


2 commentaires

Oui, je connais des possibilités de l'enregistreur Android. Mais, j'ai besoin de connecter un format propre spécifique. C'est des exigences de mon employeur. Pour le moment, je ne vois pas d'autres occasions de regarder le journal en plus d'une installation d'enracinement et d'actionnement.


Comment connectez-vous LOGCAT pour regarder un fichier? Cela ressemble exactement à ce dont j'ai besoin.



1
votes

Vous pouvez installer Busybox et Ensuite:

adb shell
tail -f /path/of/your/file


0 commentaires

0
votes

Il y a une excellente application pour cela: ide terminal . Il contient de nombreuses commandes Linux et n'a pas besoin d'un accès root. Vous pouvez l'installer à partir de Googleplay . Est gratuit (et open source, gplv2).

Une de ses meilleures fonctionnalités est qu'elle peut être utilisée via telnet . Commencez-le sur votre téléphone et tapez Telnetd . Il démarrera un démon telnet, qui écoute sur le port 8080 par défaut. Après cela, vous pouvez le connecter à partir de votre PC, avec la commande suivante: (Utilisez Cygwin sous Windows) xxx

Vous devez utiliser l'adresse IP de votre téléphone au lieu de la ci-dessus. Après une connexion réussie, vous aurez un terminal de tailles arbitraire sur votre PC, qui est capable d'exécuter la commande queue -f sur votre téléphone. Et beaucoup d'autres, tels que bash et toutes ses commandes intégrées.


0 commentaires

8
votes

Cela semble fonctionner très bien pour moi:

adb shell "while true; do cat; sleep 1; done < /sdcard/myfile.log"


1 commentaires

Excellent! Pour les utilisateurs de Windows: substituez le nom de fichier avec '% 1' et placez-le dans un fichier de commandes (par exemple 'adbtilant.bat') dans% Windir%: "C: \ Program Files (x86) \ Android \ Android- sdk \ plates-formes-outils \ adb "shell" tandis que vrai; dort de chat; dormez 1; fait <'% 1' "



0
votes

Bâtiment sur la réponse de Jesse, à faire semblable avec un fichier dans la zone de stockage privée d'une application:

adb shell "tandis que c'est vrai; faire courir-comme com.yourdomain.votreapp chat /data/data/com.yourdomaine.votreapp/app_flutter/yourfile.txt; sommeil 5; fait" | Egrep -o 'sasext. {0,50}'

(Cet exemple est pour une application à flutter sur Android, mais est similaire moins le répertoire App_flutter.)

fonctionne-comme modifie l'utilisateur sous lequel la commande est exécutée à l'application. Par défaut, l'utilisateur d'ADB Shell ne doit avoir accès à aucun fichier dans la zone de stockage privée d'une application.

| Egrep -o 'sasext. {0,50}' La commande CAT envoie le contenu du fichier à stdout. Egrep prend le contenu et la recherche de -o (uniquement) sometext + 50 caractères "à l'aide de Regex (donc Egrep au lieu de grep ).

dernière ligne uniquement

Remplacer CAT avec Tail -N 1 .

Ajouter - Ligne-Buffered TO EGREP

joke adb "tandis que vrai; faire courir-comme com.yourdomain.votreapp queue 1 /data/data/com.yourdomain.votreappromain.votreappr.com-app_flutter/yourfile.txt; dormir 5; fait" | Egrep -line-tampered -o'o 'sasext. {0,50}'


0 commentaires