- Il existe plusieurs façons d'exécuter des scripts sur Android, avec ou sans root.
- Google propose des solutions avancées telles que Firebase Test Lab et JavaScriptEngine.
- Les scripts Robo vous permettent d'automatiser les tests sur les applications mobiles.
- JavaScriptEngine de Jetpack vous permet d'exécuter du code JavaScript de manière efficace et sécurisée.

L'exécution de scripts sur Android est un besoin de plus en plus courant parmi les développeurs, les passionnés de technologie et les utilisateurs expérimentés qui cherchent à automatiser des tâches ou à tester des fonctionnalités spécifiques au sein de leurs applications. Cependant, tout le monde ne sait pas par où commencer, quels outils utiliser ou s'il est possible de le faire sans rooter l'appareil.
Dans cet article, nous détaillerons les différentes manières qui existent actuellement pour exécuter des scripts sur les appareils Android. Des options simples sans autorisations spéciales aux méthodes avancées prises en charge par Google et aux outils spécifiques au système. Si vous souhaitez tirer le meilleur parti de votre téléphone, continuez à lire car ce guide vous sera très utile.
Qu'est-ce que l'exécution d'un script sur Android ?
En termes simples, exécuter un script sur Android signifie lancer un ensemble d'instructions codées qui réalisent une tâche spécifique . Ces scripts peuvent être écrits dans différents langages, tels que Python, JavaScript, le shell (sh) ou encore WebAssembly (Wasm) . Ils sont couramment utilisés pour l'automatisation, les tests d'applications, la simulation d'actions utilisateur, etc. Savoir exécuter un script sur Android peut simplifier de nombreuses tâches.
Options pour exécuter des scripts sur Android sans root
L’une des préoccupations courantes lorsque l’on essaie d’exécuter des scripts sur Android est l’accès root. Tous les utilisateurs ne veulent pas ou ne peuvent pas rooter leur appareil. Heureusement, il existe des options qui ne nécessitent pas de privilèges de superutilisateur.
Applications pour exécuter des scripts depuis Android
- Exécuteur de script SH:Cette application disponible sur Google Play vous permet d'exécuter des scripts directement depuis l'application. Certains utilisateurs mentionnent que sans root, les scripts n'exécutent pas d'actions système telles que la désactivation du Wi-Fi ou l'extinction de l'écran. Cependant, pour les commandes de base ou les scripts utilisateur, cela fonctionne bien.
- Limitations sans racine:De nombreux scripts échouent avec des erreurs telles que «java.io.IOException : erreur = 2, aucun fichier ou répertoire de ce type", ce qui indique que le script tente d'accéder à des ressources protégées qui ne sont disponibles qu'avec les autorisations root.
- Fonctions avec racine:Avec les autorisations de superutilisateur, les capacités sont considérablement étendues. Par exemple, vous pouvez utiliser des commandes telles que
svc wifi disableoinput keyevent 26pour désactiver le Wi-Fi ou l'écran sans verrouiller l'appareil (ce que de nombreuses applications d'écran ne peuvent pas faire).
Exécution de scripts sur Android avec Firebase Test Lab : Robo Scripts
Google propose une solution performante via Firebase Test Lab pour automatiser les tests d'applications Android grâce à ce qu'ils appellent les scripts Robo . Ces scripts permettent de simuler les actions de l'utilisateur au sein d'une application et même d'exécuter des commandes système.
Que sont les Robo Scripts ?
Il s'agit d'enregistrements d'actions sur l'interface utilisateur d'une application , incluant les clics, la saisie de texte, la navigation à l'écran et des conditions d'exécution spécifiques. Ils fonctionnent de concert avec le moteur de test Robo de Firebase pour explorer automatiquement l'application.
Principaux avantages du Robo Scripting
- La robustesse: tolérer les changements dans la structure de l'application.
- Extrémité ouverte:Une fois le script terminé, le test automatique standard de Robo peut continuer.
- Enregistrables: peut être enregistré à partir d'Android Studio sans écrire de code.
- Flexible:Compatible même avec les applications avec des éléments d'interface non standard, tels que ceux utilisés dans les jeux.
Que vous permettent-ils de faire ?
Ces séquences peuvent être utilisées pour :
- Amenez l'application à un point précis à partir duquel démarrer un test.
- Simuler les flux d'utilisateurs pour garantir une expérience cohérente.
- Exécuter les commandes ADB directement dans le cadre du test.
Comment enregistrer un script Robo dans Android Studio
- Ouvrez Android Studio et accédez à Outils > Firebase.
- Accéder à l'option Enregistrer le script Robo et sélectionnez un appareil.
- Interagissez avec l'application pour enregistrer les actions.
- Enregistrez le fichier JSON généré.
- Téléchargez ce fichier avec l'APK sur la console Firebase pour exécuter le test.
Ce processus ne nécessite pas de connaissances avancées, il est donc idéal pour les testeurs ou même les développeurs juniors.
Exécutez des scripts JavaScript sans WebView avec JavaScriptEngine
Android propose une alternative moderne et performante, particulièrement utile pour les applications : la bibliothèque JavaScriptEngine de Jetpack . Grâce à elle, vous pouvez exécuter du code JavaScript sans utiliser WebView, ce qui le rend plus léger et plus efficace.
Avantages par rapport à WebView
- Consommation de ressources réduite.
- Permet plusieurs environnements indépendants (JavaScriptIsolate).
- une plus grande sécurité, puisque chaque script s'exécute dans un environnement isolé.
Comment fonctionne JavaScriptEngine
Vous devez créer une instance de JavaScriptSandbox et de là en dériver un (ou plusieurs) JavaScriptIsolate pour exécuter le code.
Exemple de base pour l'ajout à partir de JavaScript :
JavaScriptIsolate jsIsolate = jsSandbox.createIsolate();
String code = "function sum(a, b) { return (a + b).toString(); }; sum(3, 4)";
ListenableFuture<String> result = jsIsolate.evaluateJavaScriptAsync(code);
Le résultat arrive sous la forme d'un Chaîne. Important : vous ne pouvez pas utiliser le mot return hors fonction, car il fonctionne en mode global.
Persistance et réutilisation
Un avantage clé est que les variables et fonctions déclarées persistent au sein de l'instance . Cela vous permet d'exécuter plusieurs extraits de code tout en réutilisant des informations.
Compatibilité et configuration avancée
Tous les appareils ne prennent pas en charge toutes les fonctionnalités de la bibliothèque, il est donc conseillé de vérifier auprès de isFeatureSupported() ce qui est disponible. Les fonctionnalités avancées incluent :
- Passer de grands paramètres par
provideNamedData(). - Soutien promis pour les scripts asynchrones.
- Évaluation des fichiers JavaScript à partir du disque avec
evaluateJavaScriptAsync(AssetFileDescriptor). - Contrôle des erreurs et pannes contrôlées como
SandboxDeadException.
Exécution de code WebAssembly sur Android
Bien que moins connu, WebAssembly (Wasm) peut également fonctionner sur Android à l'aide de cette bibliothèque. Le meilleur? Cela se fait en toute sécurité dans un environnement isolé.
Le processus est similaire : Un tableau d'octets est transmis avec le code Wasm en utilisant provideNamedData() puis compile et exécute à l'intérieur d'une promesse JavaScript.
Utiliser Google Apps Script et AppSheet
Si votre objectif est l'automatisation ou l'intégration avec Google Workspace, vous pouvez utiliser Google Apps Script ou AppSheet :
- Script d'applications:Idéal pour créer des fonctions personnalisées, des automatisations, des menus dans des feuilles de calcul ou des formulaires.
- Feuille d'application: vous permet de créer des applications mobiles sans écrire de code, en utilisant des données dans Google Sheets ou d'autres sources. Parfait pour automatiser des tâches sans connaissances techniques.
Ces solutions sont plus limitées en termes de contrôle des appareils Android, mais sont utiles dans les cas d'utilisation professionnels ou éducatifs.
Puis-je exécuter des scripts Python sur Android ?
Bien que cela ne soit pas explicitement pris en charge dans les ressources disponibles, il est possible d'exécuter des scripts Python sur Android . Certaines applications comme QPython , Pydroid 3 et Termux permettent d'exécuter des fichiers .py sans problème. Il vous faudra installer l'application appropriée et y charger vos scripts, même si cette méthode est moins intégrée au système que les options mentionnées précédemment.
Si vous devez exécuter des scripts sur Android, vous disposez de nombreuses options en fonction du niveau de complexité dont vous avez besoin, des automatisations simples aux intégrations système approfondies ou aux validations d'applications.
Possibilités avancées et segmentation de l'environnement
Dans certains cas, il peut être nécessaire d’exécuter des scripts en parallèle sans partager le contexte. Cela peut être réalisé en créant plusieurs instances de JavaScriptIsolate du même bac à sable. Il est important de noter que chaque instance est indépendante et ils ne partagent pas de variables ou de fonctions.
Cette approche est recommandée lorsque vous devez exécuter du code isolé ou du code provenant de différentes sources , notamment dans les applications qui fonctionnent avec plusieurs utilisateurs ou des intégrations externes.
Prise en charge de Kotlin et des coroutines
Si vous développez en Kotlin, vous pouvez profiter des coroutines pour utiliser JavaScriptEngine de manière asynchrone avec la bibliothèque. kotlinx-coroutines-guava. Cela vous permet d'intégrer votre flux de script sans bloquer l'interface utilisateur ni utiliser de rappels complexes.
exemple:
lifecycleScope.launch {
val jsSandbox = JavaScriptSandbox.createConnectedInstanceAsync(applicationContext).await()
val jsIsolate = jsSandbox.createIsolate()
val result = jsIsolate.evaluateJavaScriptAsync("'Script ejecutado con éxito'").await()
textView.text = result
}
Cette approche est idéale pour les développeurs modernes qui souhaitent profiter des dernières technologies de Google sans les tracas des threads ou des promesses manuelles.
Lorsqu'il s'agit d'exécuter des scripts sur Android, les possibilités sont nombreuses et variées. Que ce soit via des applications dédiées, des bibliothèques officielles fournies par Google, des environnements d'exécution cloud comme Firebase ou des outils automatisés comme AppSheet, il existe une solution pour chaque besoin. L'important est de comprendre les limites de chaque méthode, surtout si vous n'êtes pas rooté, et de choisir l'approche qui convient le mieux à votre niveau de compétence et à l'objectif du script.