60 KiB
Outil d'automatisation JavaScript prenant en charge les services d'accessibilité sur la plateforme Android
Langues
Le fichier README.md prend actuellement en charge les langues suivantes:
- 简体中文 [zh-Hans]
- 繁體中文 (香港) [zh-Hant-HK]
- 繁體中文 (台灣) [zh-Hant-TW]
- English [en]
- Français [fr] # actuel
- Español [es]
- 日本語 [ja]
- 한국어 [ko]
- Русский [ru]
- العربية [ar]
Introduction
Auto.js est un outil de développement d'automatisation JavaScript pour la plateforme Android prenant en charge les services d'accessibilité.
Auto.js a été initialement publié par hyb1996 le 27/01/2017, la maintenance a été arrêtée le 13/03/2020, la version finale étant 4.1.1 Alpha2, numéro de construction 461.
AutoJs6 est basé sur le projet final Auto.js et a été développé le 01/12/2021 en maintenant sa gratuité et son open-source.
Le tableau suivant énumère certains projets liés à Auto.js (classés par date de développement):
| Projet | Nom de l'application | Développeur | Date de début de développement | Date de fin de développement |
|---|---|---|---|---|
| Auto.js | Auto.js | hyb1996 | 2017/01/27 |
2020/03/13 |
| Auto.js Pro 7 | Auto.js | hyb1996 | 2019/03/13 |
2019/07/08 |
| Auto.js Pro 8 | AutoJsPro | hyb1996 | 2019/10/13 |
2021/07/24 |
| Auto.js | Auto.js M | TonyJiangWJ | 2019/11/21 |
- |
| AutoX | Autox.js | kkevsekk1 | 2020/07/24 |
- |
| Auto.js Pro 9 | AutoJsPro | hyb1996 | 2021/03/28 |
2023/02/09 |
| AutoJs6 | AutoJs6 | SuperMonster003 | 2021/12/01 |
- |
| AutoX | Autox.js v6 | wilinz | 2022/05/26 |
- |
| AutoX | Autox.js v7 | aiselp | 2024/04/21 |
- |
Les dates dans le tableau sont des estimations et peuvent différer des dates réelles.
Dans le tableau, Auto.js Pro 7/8/9 sont des versions payantes, les autres sont des versions gratuites et open source.
Fonctions
- Peut être utilisé comme un IDE JavaScript (complétion de code / renommage de variables / formattage de code)
- Soutien aux opérations d'automatisation basées sur le service d'accessibilité
- Prise en charge des actions rapides du bouton flottant (enregistrement et exécution de scripts / visualisation du nom du package et de l'activité / analyse de la disposition)
- Prise en charge de l'API sélecteur et traversée/obtention des informations/manipulation des contrôles (similaire à UiAutomator)
- Prise en charge de l'analyse de l'interface de disposition (similaire à l'outil LayoutInspector d'Android Studio)
- Prise en charge des fonctions d'enregistrement et de lecture de l'enregistrement
- Prise en charge des captures d'écran / enregistrement des captures d'écran / détection des couleurs d'image / correspondance d'images
- Prise en charge de E4X (ECMAScript pour XML) pour écrire des interfaces
- Prise en charge de l'emballage des fichiers ou projets de scripts en fichier APK
- Prise en charge des fonctions étendues utilisant les privilèges root (clic d'écran / glissement / enregistrement / Shell)
- Prise en charge en tant que plugin Tasker
- Prise en charge de l'intégration avec VSCode pour le développement de bureau (nécessite l'extension AutoJs6-VSCode-Extension)
Environnement
Manuel
- Documentation de l'application
- Manuel d'utilisation (à rédiger)
- Dépannage
- Compilation et construction du projet
- Assistance au développement de scripts
Modifications majeures
Par rapport à la version finale open source de Auto.js 4.1.1 Alpha2, AutoJs6 a principalement effectué les mises à jour ou modifications suivantes:
- Prise en charge des privilèges ADB via Shizuku pour utiliser les API système
- Prise en charge de la construction d'instances WebSocket pour effectuer des requêtes réseau basées sur le protocole WebSocket
- Nouveaux modules ajoutés [ base64 / crypto / sqlite / i18n / notice / ocr / opencc / qrcode / shizuku / ... ]
- Adaptation multilingue [ Espagnol / Français / Russe / Arabe / Japonais / Coréen / Anglais / Chinois Simplifié / Chinois Traditionnel / ... ]
- Adaptación del color del tema [ Agrupación / Ubicación / Búsqueda / Historial / Adaptación automática de brillo y contraste / ... ]
- Adaptation du mode nuit [ Paramètres / Documentation / Analyse de la disposition / Fenêtre flottante / ... ]
- Prise en charge de l'extension VSCode pour la connexion client (LAN) et serveur (LAN/ADB)
- Le moteur Rhino a été mis à niveau de v1.7.7.2 à v1.8.1-SNAPSHOT
- Échappements pour les points de code Unicode supportent les caractères du plan complémentaire
'\u{1D160}'; /* signifie "𝅘𝅥𝅮", méthode traditionnelle: '\uD834\uDD60'. */ - Prise en charge de Object.values()
Object.values({name: 'Max', age: 4}); // ['max', 4] - Prise en charge de Array.prototype.includes()
[10, 20, NaN].includes(20); // true - Prise en charge de BigInt
typeof 567n === 'bigint'; // true - Prise en charge des littéraux de modèle
`Lucky number: ${(Math.random() * 100).toFixed(0)}` - Voir plus de nouvelles fonctionnalités du moteur Rhino
- Voir la liste de compatibilité du moteur Rhino
- Échappements pour les points de code Unicode supportent les caractères du plan complémentaire
Histoires des versions
v6.6.2
2025/04/16
FonctionnalitéMéthodes telles que ui.statusBarAppearanceLight, statusBarAppearanceLightBy et navigationBarColor, etc.FonctionnalitéAttribut ui.statusBarHeight (getter) servant à obtenir la hauteur de la barre d'étatissue #357FonctionnalitéMéthode images.flip pour retourner une imageissue #349FonctionnalitéAjout de l'option « extension de fichier » dans la page des paramètresFonctionnalitéLa page de configuration du thème prend désormais en charge une nouvelle mise en page (regroupement, positionnement, recherche, historique, amélioration de la palette de couleurs, etc.)CorrectionProblème où la couleur de fond de la barre d'état sur Android 15 ne correspond pas à celle du thèmeCorrectionProblème où la méthode plugins.load ne charge pas correctement les pluginsissue #290CorrectionProblème où la bibliothèque dx ne fonctionne pas correctement sur Android 7.xissue #293CorrectionProblème où ScriptRuntime peut présenter un état de synchronisation anormal lors de l'utilisation de require pour importer des modules intégrés (solution provisoire)issue #298CorrectionProblème où le module notice ne dispose pas des méthodes d'extension telles que getBuilderissue #301CorrectionProblème où les méthodes shizuku/shell n'acceptent pas les paramètres de type chaîneissue #310CorrectionProblème où la méthode colors.pixel n'accepte pas les paramètres d'images à canal uniqueissue #350CorrectionProblème où les méthodes engines.execScript/execScriptFile utilisent un répertoire de travail par défaut incorrect lors de l'exécution des scriptsissue #358issue #340issue #339CorrectionProblème où floaty.window/floaty.rawWindow ne peut pas être exécuté dans un thread secondaireCorrectionProblème où floaty.getClip risque de ne pas récupérer correctement le contenu du presse-papiersissue #341CorrectionProblème où ui.inflate renvoie un résultat auquel il manque les méthodes de prototype telles que attr, on et clickCorrectionProblème où le contexte de portée n'est pas correctement lié lors de l'utilisation de la syntaxe XML pour utiliser une expression JavaScript comme valeur d'attributissue #319CorrectionProblème où certaines exceptions générées lors de l'appel de méthodes ne sont pas capturées par un bloc try..catchissue #345CorrectionProblème où la génération de code dans la page d'analyse de la mise en page peut provoquer un crash de l'applicationissue #288CorrectionProblème où les applications packagées ne peuvent pas utiliser correctement le module shizukuissue #227issue #231issue #284issue #287issue #304CorrectionProblème dans l'éditeur de code où le passage à la fin d'une ligne peut positionner le curseur au début de la ligne suivanteCorrectionProblème où des clics rapides consécutifs sur des éléments de type dialogue dans la page des paramètres peuvent provoquer un crash de l'applicationAméliorationOptimisation de la taille du fichier APK pour le modèle d'application packagéeAméliorationL'application (et les applications packagées) prend désormais en charge davantage de permissionsissue #338AméliorationAjout de l'option pour la bibliothèque Pinyin dans la page de packagingAméliorationOptimisation du fond de la barre d'état et de la couleur du texte dans la page principale des applications packagéesAméliorationAjout d'interrupteurs pour les permissions spéciales (accès à tous les fichiers et envoi de notifications) dans la page des paramètres des applications packagéesissue #354AméliorationLes textes et icônes des contrôles s'ajustent automatiquement selon la luminosité du thèmeAméliorationAmélioration de l'expérience visuelle lorsque le contraste entre la couleur du contrôle et le fond est faibleAméliorationAmélioration de la compatibilité du contrôle d'entrée HEX dans la palette de couleurs lors du collage de valeurs depuis le presse-papiersAméliorationLa barre de navigation de l'application est désormais configurée pour être transparente ou semi-transparente afin d'améliorer l'expérience visuelleAméliorationLe mode UI par défaut de la barre d'état et de la barre de navigation est défini sur la couleurmd_grey_50en mode clairAméliorationL'interrupteur du service d'accessibilité dans le tiroir de la page d'accueil se synchronise désormais avec le code du scriptAméliorationLa page de documentation de l'accueil prend désormais en charge des boutons de recherche bidirectionnelsAméliorationL'onglet « Fichiers » de la page d'accueil permet de changer la visibilité du bouton flottant par un appui longAméliorationLe titre de l'éditeur de code supporte désormais l'ajustement automatique de la taille de la policeAméliorationLa visibilité du bouton flottant dans la page des journaux est liée aux actions de défilement de la listeAméliorationLe fichier de configuration project.json du projet de script prend désormais en charge davantage d'options de packagingissue #305issue #306AméliorationLe fichier project.json prend désormais en charge une correspondance plus souple des noms d'option ainsi qu'une compatibilité avec les aliasAméliorationLa boîte de dialogue d'information sur le type de fichier APK inclut désormais la taille du fichier et des informations sur le schéma de signatureAméliorationLa boîte de dialogue d'information sur le type de fichier APK prend désormais en charge des écouteurs de clic pour copier le texte et accéder aux détails de l'applicationAméliorationTentative de restauration des packages préfixés par com.stardust afin d'améliorer la compatibilité du codeissue #290AméliorationLes méthodes floaty.window/floaty.rawWindow supportent désormais l'exécution sur le thread principal ainsi que sur des threads secondairesAméliorationLa méthode globale getClip utilise désormais floaty.getClip au besoin pour améliorer la compatibilitéAméliorationAmélioration de la compatibilité de files.path et des méthodes associées lorsqu'une valeur nulle est fournie pour le cheminAméliorationSynchronisation avec la dernière version officielle du moteur Rhino et adaptations nécessaires du codeAméliorationAmélioration du README.md pour mieux documenter la construction et l'exécution du projetissue #344AméliorationCertaines dépendances ou versions de bibliothèques locales ont été ajustéesCHANGELOG.md
v6.6.1
2025/01/01
FonctionnalitéModule Pinyin pour la conversion du pinyin chinois (Consultez la documentation du projet > Pinyin chinois)FonctionnalitéModule Pinyin4j pour la conversion du pinyin chinois (Consultez la documentation du projet > Pinyin chinois)FonctionnalitéMéthodes UiObject#isSimilar et UiObjectCollection#isSimilar pour déterminer si une commande ou une collection de commandes est similaireFonctionnalitéMéthode globale "currentComponent", utilisée pour obtenir le nom du composant actif actuelCorrectionProblème empêchant la compilation correcte du projet dans certains environnements suite à un retour à une ancienne versionCorrectionException "valeur non primitive" pouvant survenir lors de l'appel à des méthodes inexistantesCorrectionProblème empêchant l'ajout correct de raccourcis de script sur certains appareils (correction provisoire)issue #221CorrectionErreur de restriction de type de paramètre dans les méthodes automator.click/longClickissue #275CorrectionProblème avec les sélecteurs ne prenant pas en charge les paramètres de type ConsStringissue #277CorrectionProblème d'absence des méthodes et propriétés propres aux instances UiObjectCollectionAméliorationLa page de packaging prend en charge la configuration des signatures, la gestion des clés et la configuration des autorisations (par luckyloogn)pr #286AméliorationAmélioration de la précision de la reconnaissance du nom du package actuel et de l'activité en cours de la fenêtre flottante (Priorité : Shizuku > Root > A11Y)AméliorationAmélioration de la précision de la reconnaissance de currentPackage et currentActivity (Priorité : Shizuku > Root > A11Y)AméliorationRestauration de la possibilité de sélectionner le contenu texte d'une entrée individuelle dans la fenêtre de journal via un double-clic ou un appui longissue #280AméliorationRécupérer autant d'informations critiques que possible pour les projets de script en cas de corruption du fichier project.jsonAméliorationConvertir automatiquement le chinois simplifié en pinyin (y compris les caractères à tons multiples) pour les suffixes de noms de paquet générés lors de l'empaquetage de fichiers uniquesAméliorationSoutien des arguments négatifs dans les méthodes UiSelector#findOnce et UiSelector#findAméliorationAmélioration de l'adaptabilité des méthodes app.startActivity/startDualActivityAméliorationPrise en charge des formes abrégées supplémentaires pour les préfixes de noms de paquet dans les sélecteurs liés aux éléments de l'interface utilisateur et aux className (par exemple RecyclerView, Snackbar, etc.)AméliorationSynchroniser le code en amont le plus récent du moteur Rhino et l'adapter au projet existantAméliorationCertaines dépendances ou versions de bibliothèques locales ont été ajustéesCHANGELOG.md
v6.6.0
2024/12/02 - Réécriture du module intégré, mise à jour avec prudence
AstuceLes modules intégrés sont réécrits en Kotlin pour améliorer l'efficacité d'exécution des scripts, mais des améliorations itératives sont nécessaires.AstuceLe fichier init.js intégré est vide par défaut, permettant aux développeurs d'étendre les modules intégrés ou de monter des modules externes.FonctionnalitéModule Axios / Module Cheerio (Réf. à AutoX)FonctionnalitéModule SQLite pour des opérations simples sur les bases de données SQLite (Réf. à Auto.js Pro) (Voir la documentation du projet > SQLite)FonctionnalitéModule MIME pour le traitement et l'analyse des chaînes de type MIME (Voir la documentation du projet > MIME)FonctionnalitéModule Nanoid pour la génération d'ID de chaîne (Réf. à ai/nanoid)FonctionnalitéModule Sysprops pour obtenir des données de configuration de l'environnement d'exécution (Voir la documentation du projet > Propriétés système)FonctionnalitéLe module OCR prend en charge le moteur Rapid OCRFonctionnalitéL'analyse de la mise en page prend en charge le changement de fenêtre (Réf. à Auto.js Pro)FonctionnalitéLa méthode auto.clearCache prend en charge le nettoyage des caches de contrôle (Réf. à Auto.js Pro)FonctionnalitéLa méthode threads.pool prend en charge l'application simple des pools de threads (Réf. à Auto.js Pro)FonctionnalitéLa méthode images.matchTemplate ajoute le paramètre d'option useTransparentMask pour prendre en charge la recherche d'image transparente (Réf. à Auto.js Pro)FonctionnalitéLa méthode images.requestScreenCaptureAsync permet de demander des permissions de capture d'écran de manière asynchrone en mode UI (Réf. à Auto.js Pro)FonctionnalitéLa méthode images.requestScreenCapture ajoute le paramètre d'option isAsync pour prendre en charge la capture d'écran asynchrone (Réf. à Auto.js Pro)Fonctionnalitéimages.on('screen_capture', callback) et d'autres méthodes d'écoute d'événements prennent en charge l'écoute des événements de disponibilité de capture d'écran (Réf. à Auto.js Pro)FonctionnalitéLa méthode images.stopScreenCapture soutient la libération active des ressources liées aux applications de capture d'écran (Réf. à Auto.js Pro)FonctionnalitéLes méthodes Images.psnr/mse/ssim/mssim/hist/ncc et images.getSimilarity pour obtenir des mesures de similarité d'imageFonctionnalitéLa méthode images.isGrayscale pour déterminer si une image est en niveaux de grisFonctionnalitéLa méthode images.invert pour la conversion d'image négativeFonctionnalitéLes méthodes s13n.point/time pour normaliser les objets de point et de durée (Voir la documentation du projet > Normalisation)FonctionnalitéLes méthodes gravity, touchThrough, backgroundTint du module console (Voir la documentation du projet > Console)FonctionnalitéLes méthodes Mathx.randomInt/Mathx.randomFloat pour retourner des entiers aléatoires ou des nombres à virgule flottante aléatoires dans une plage spécifiéeFonctionnalitéLes méthodes app.launchDual/startDualActivity pour gérer le lancement double d'applications (Nécessite des autorisations Shizuku ou Root) (Expérimental)FonctionnalitéLa méthode app.kill pour arrêter de force une application (Nécessite des autorisations Shizuku ou Root)FonctionnalitéLa méthode floaty.getClip pour obtenir indirectement le contenu du presse-papiers à l'aide d'une fenêtre flottanteCorrectionFuite de mémoire dans le View Binding des sous-classes de Fragment (par exemple, DrawerFragment / ExplorerFragment)CorrectionFuite de mémoire d'instance dans des classes telles que ScreenCapture / ThemeColorPreferenceCorrectionProblème causant le crash de l'application lors de la demande de permissions de capture d'écran sur Android 14 (par chenguangming)pr #242CorrectionProblème causant le crash de l'application lors du démarrage du service en premier plan sur Android 14CorrectionProblème avec le bouton d'exécution dans l'éditeur de code qui ne s'allume pas correctement sur Android 14CorrectionL'application peut ne pas fonctionner correctement après l'empaquetage en raison de fichiers de bibliothèque nécessaires manquantsissue #202issue #223pr #264CorrectionCrash de l'application lors de l'édition du projet en raison de ressources d'icône spécifiées manquantesissue #203CorrectionIncapacité à utiliser correctement les paramètres pour obtenir les ressources de capture d'écran de l'orientation spécifiée lorsqu'on demande des permissions de capture d'écranCorrectionProblème avec certains appareils incapables d'ajouter correctement des raccourcis de script (Correction d'essai)issue #221CorrectionProblème de retard cumulatif de l'envoi de requêtes avec des méthodes liées à l'envoi de requêtes dans le module httpissue #192CorrectionLe service Shizuku peut ne pas fonctionner correctement avant qu'AutoJs6 n'entre dans la page principale de l'activité (Correction d'essai)issue #255CorrectionLa méthode random(min, max) peut avoir des résultats hors limitesCorrectionProblème où le paramètre de type de résultat des méthodes pickup ne peut pas passer correctement des tableaux videsCorrectionProblème de rectangle de contrôle obtenu par UiObject#bounds() pouvant être modifié par inadvertance, brisant son immutabilitéCorrectionProblème avec les éléments texte/bouton/entrée où le texte contenant des guillemets doubles de largeur réduite ne peut pas être analysé correctementCorrectionProblème avec les éléments text/textswitcher où la fonctionnalité de l'attribut autoLink échoueCorrectionProblème avec différents scripts partageant par erreur le même objet ScriptRuntimeCorrectionProblème avec les variables globales HEIGHT et WIDTH perdant leurs propriétés Getter générées dynamiquementCorrectionProblème avec un temps de démarrage potentiellement élevé causé par le chargement de RootShell au démarrage du scriptCorrectionProblème avec le réglage de couleur de fond de la fenêtre de console flottante entraînant la perte du style d'arrondi rectangulaireCorrectionLe démarrage automatique du service d'accessibilité peut rencontrer des problèmes de service anormaux (Correction d'essai)CorrectionProblème de déclenchement du changement de ViewPager lors du glissement du contrôle WebView à gauche ou à droite sur la page de document de la page d'accueilCorrectionProblème avec le gestionnaire de fichiers incapable de reconnaître les extensions de fichier contenant des lettres majusculesCorrectionLe gestionnaire de fichiers peut ne pas reconnaître automatiquement le projet lors de la première entrée dans le répertoire du projetCorrectionProblème avec la page du gestionnaire de fichiers incapable de se rafraîchir automatiquement après la suppression du dossierCorrectionProblème avec le tri des fichiers et des dossiers dans le gestionnaire de fichiers où les noms de lettre initiale ASCII sont mis en arrièreCorrectionException 'FAILED ASSERTION' dans la fonction de débogage de l'éditeur de codeCorrectionProblème d'impossibilité de déboguer à nouveau correctement après la fermeture de l'éditeur pendant le processus de débogage de l'éditeur de codeCorrectionProblème de saut potentiel de caractères de fin lors du saut à la fin de la ligne dans l'éditeur de codeCorrectionProblème de scintillement de l'écran lors du démarrage de la page d'activité de journal sur la page principale de l'activitéCorrectionProblème avec l'application empaquetée ne pouvant pas utiliser correctement le module openccAméliorationExpérience d'indication de clic pour le contrôle 'ABI non disponible' sur la page de paquetAméliorationPrend en charge l'utilisation de Shizuku pour contrôler l'interrupteur d'affichage 'Localisation du pointeur'AméliorationPrend en charge l'utilisation de Shizuku pour contrôler les interrupteurs de permission 'Médias de projection' et 'Modifier les paramètres sécurisés'AméliorationAutomator.gestureAsync/gesturesAsync prend en charge les paramètres de fonction de rappelAméliorationLe module tasks utilise une méthode synchrone pour les opérations de base de données afin d'éviter les incohérences potentielles d'accès aux donnéesAméliorationLe mode d'exécution de scripts prend en charge les paramètres de mode de séparation par symbole pipeline (par exemple, en commençant par"ui|auto";)AméliorationLe mode d'exécution de scripts prend en charge les guillemets simples et guillemets inversés et permet d'omettre les points-virgules (par exemple, en commençant par'ui';ou'ui')AméliorationLe mode d'exécution de scripts prend en charge l'importation rapide des modules d'extension intégrés tels que axios, cheerio, et dayjs (par exemple, en commençant par"axios";)AméliorationLe mode d'exécution de scripts prend en charge les paramètres de mode x ou jsox pour activer rapidement les modules d'extension d'objets intégrés JavaScript (par exemple, en commençant par"x";)AméliorationLes attributs src et path de l'élément img prennent en charge les chemins relatifs locaux (par exemple,<img src="a.png"/>)AméliorationL'éditeur de code prend en charge la détermination intelligente de l'emplacement d'insertion lors de l'importation de classes Java et de noms de paquetsAméliorationLe module images prend en charge l'utilisation des chemins directement comme paramètres d'imageAméliorationimportPackage prend en charge les paramètres de chaîneAméliorationL'adresse IP du mode serveur prend en charge l'importation du presse-papiers avec reconnaissance intelligente et conversion intelligente avec la touche espaceAméliorationLe gestionnaire de fichiers prend en charge la sélection de préfixes par défaut lors de la création de nouveaux fichiers et génère automatiquement un suffixe numérique appropriéAméliorationLe gestionnaire de fichiers informe spécifiquement sur le message d'exception lors de l'exécution du projetissue #268AméliorationLe gestionnaire de fichiers prend en charge plus de types et affiche les symboles d'icône correspondants (prend en charge plus de 800 types de fichiers)AméliorationLes types de fichiers éditables (jpg/doc/pdf, etc.) dans le gestionnaire de fichiers ont ajouté des boutons d'éditionAméliorationLes fichiers APK dans le gestionnaire de fichiers prennent en charge la visualisation des informations de base, des informations du manifest et de la liste des permissionsAméliorationLes fichiers multimédias audio/vidéo dans le gestionnaire de fichiers prennent en charge la visualisation des informations de base et des informations de MediaInfoAméliorationLe paquet de fichier unique prend en charge le remplissage automatique du nom de paquet standardisé approprié et l'indication de filtre de caractère invalideAméliorationLe paquet de fichier unique prend en charge la configuration automatique de l'icône et l'incrémentation automatique du numéro et du nom de version basé sur l'application du même nom de paquet installéeAméliorationLe fichier de configuration du paquet prend en charge l'option abis/libs pour spécifier la bibliothèque et l'architecture ABI incluses par défautAméliorationPrend en charge les indications de messages pertinents lorsque les options abis/libs du fichier de configuration du paquet sont invalides ou non disponiblesAméliorationLeakCanary est exclu de la version officielle pour éviter une croissance inutileAméliorationTous les commentaires en anglais dans le code source du projet sont accompagnés de traductions en chinois simplifié pour améliorer la lisibilitéAméliorationREADME et CHANGELOG prennent en charge plusieurs langues (Généré automatiquement par script)AméliorationAméliorer l'adaptabilité de la version du script de construction GradleAméliorationCertaines dépendances ou versions de bibliothèques locales ont été ajustéesCHANGELOG.md
Pour plus d'histoires de versions, voir
Compilation et construction du projet
Pour déboguer ou développer le projet open source AutoJs6, vous pouvez utiliser Android Studio (un produit de Google) ou IntelliJ IDEA (un produit de Jetbrains).
Cette section présente la méthode de compilation et de construction du projet open source AutoJs6 en prenant Android Studio comme exemple, similaire à IntelliJ IDEA.
Préparation de Android Studio
Téléchargez la version Android Studio Meerkat | 2024.3.1 Patch 1 (choisissez-en une selon vos besoins):
- android-studio-2024.3.1.14-windows.exe (1.22 GB)
- android-studio-2024.3.1.14-windows.zip (1.23 GB)
Note : La version mentionnée ci-dessus a été publiée le 24 March 2025. Pour télécharger d'autres versions ou si le lien ci-dessus n'est plus valide, visitez la page archive des versions de Android Studio.
Installez ou extrayez le fichier ci-dessus, exécutez Android Studio (par exemple "D:\android-studio\bin\studio64.exe").
Préparation du SDK Android
Note : Si le SDK Android (Kit de développement logiciel) est déjà installé sur le système de votre ordinateur, vous pouvez ignorer cette section.
Dans Android Studio, ouvrez la page des paramètres avec le raccourci CTRL + ALT + S:
Apparence et comportement (Appearance & Behavior) ->
Paramètres système (System Settings) ->
Android SDK (Kit de développement logiciel Android)
Si le champ Android SDK Location (emplacement du SDK Android) est vide, cliquez sur le bouton Edit (modifier) à droite, cliquez plusieurs fois sur Next (suivant) dans la fenêtre contextuelle.
Note : Vous devrez peut-être accepter un ou plusieurs accords pertinents pour continuer.
Une fois les ressources téléchargées et installées, cliquez sur le bouton Finish (terminer).
Le champ Android SDK Location (emplacement du SDK Android) ci-dessus sera automatiquement rempli, complétant ainsi la préparation du SDK.
Préparation des outils SDK Android
AutoJs6 nécessite certains outils SDK (comme NDK et CMake).
Note : Si tous les outils SDK Android requis par AutoJs6 sont déjà installés sur le système de votre ordinateur, vous pouvez ignorer cette section.
Dans Android Studio, ouvrez la page des paramètres avec le raccourci CTRL + ALT + S:
Apparence et comportement (Appearance & Behavior) ->
Paramètres système (System Settings) ->
Android SDK (Kit de développement logiciel Android) ->
Outils SDK (SDK Tools) (situés dans la fenêtre de droite)
Cochez Show Package Details (afficher les détails du package), puis cliquez respectivement sur NDK et CMake, assurez-vous que les versions appropriées des outils sont cochées, Les informations de version des outils SDK se trouvent dans le fichier version.properties à la racine du projet AutoJs6.
Préparation du JDK
La version de JDK (Kit de développement Java) requise pour le projet AutoJs6 doit être au moins 17, mais il est recommandé d'avoir au moins 19.
À partir du 13 May 2025, AutoJs6 prend en charge la version maximale de JDK 24.
Note : Si le JDK est déjà installé sur le système informatique et que la version répond aux exigences ci-dessus, vous pouvez ignorer cette section.
Vous pouvez télécharger le JDK directement via l'IDE, ou visiter le site Web d'Oracle pour le télécharger.
Ouvrez la page des paramètres dans Android Studio en utilisant le raccourci CTRL + ALT + S:
Construction, exécution, déploiement (Build, Execution, Deployment) ->
Outils de construction (Build Tools) ->
Gradle
Vous pouvez sélectionner ou ajouter différentes versions de JDK à la section Gradle JDK.
Si une version appropriée de JDK (>= 17) existe déjà dans la liste, sélectionnez-la directement.
Sinon, vous pouvez choisir Télécharger JDK (Download JDK) pour télécharger un JDK approprié, cliquez sur le bouton Télécharger (Download) et attendez que le téléchargement soit terminé.
Vous pouvez également choisir Ajouter JDK (Add JDK) pour ajouter un JDK local existant, localiser son répertoire et ajouter le JDK.
Clonage des ressources AutoJs6
Cliquez sur le bouton Get from VCS (obtenir depuis VCS) sur la page principale d'Android Studio.
Remplissez le champ URL (adresse de ressources unifiée) avec https://github.com/SuperMonster003/AutoJs6.git,
Le champ Directory (répertoire) peut être modifié selon vos besoins.
Cliquez sur le bouton Clone (cloner), attendez que les ressources AutoJs6 soient clonées localement sur l'appareil.
Note : Ce processus peut nécessiter l'installation de Git (système de gestion de versions distribué).
Construction du projet AutoJs6
Une fois cloné, Android Studio ouvrira la fenêtre de projet AutoJs6 et complétera automatiquement le téléchargement initial des dépendances et le processus de construction Gradle.
Note : Ce processus peut être très long. En cas de mauvaises conditions réseau, plusieurs tentatives peuvent être nécessaires (cliquez sur le bouton Retry).
Si la construction ne peut pas se faire automatiquement ou si vous devez reconstruire le projet, suivez ces étapes :
- Dans le menu
Run/Debug Configurationsde la barre d'outils, sélectionnezapp, qui est l'application principale d'AutoJs6 - Cliquez sur le bouton
Build Project(icône de marteau) à gauche pour lancer la construction du projet. Le raccourci par défaut est CTRL + F9 - Attendez que la construction se termine. L'onglet
Builder Outputaffichera un message comme "BUILD SUCCESSFUL in 1h 17m 34s"
Si la construction échoue, vous pouvez signaler le message d'erreur sur la page Issues du projet AutoJs6.
Note : Pour plus de détails sur la manière de construire et d'exécuter l'application, veuillez consulter Android Docs
Déploiement du Projet AutoJs6 (Exécuter l'App)
Une fois le projet construit avec succès, il peut être déployé en tant qu'application (App) sur un appareil physique (par ex. téléphone/tablette) ou sur un appareil virtuel (par ex. émulateur Android).
- Dans la barre d'outils, sélectionnez
appdans le menuRun/Debug Configurations, qui est l'application principale d'AutoJs6 - Dans le menu déroulant
Available Devicesà droite, choisissez l'appareil sur lequel l'application du projet doit s'exécuter (physique ou virtuel) - Cliquez sur le bouton
Run(icône de triangle) à droite pour lancer l'application. Le raccourci par défaut estF10 - Attendez que le déploiement se termine ; l'appareil sélectionné installera et exécutera automatiquement l'application du projet
Déploiement du Projet AutoJs6 (Générer l'APK)
Emballer le projet et générer un fichier APK qui peut être installé sur les appareils Android:
- Version de débogage (Debug Version)
Construire (Build)->Build Bundle(s) / APK(s)->Build APK(s)- Générer un package d'installation de version de débogage signé par défaut
- Exemple de chemin :
"D:\AutoJs6\app\build\outputs\apk\debug\"
- Version publiée (Release Version)
Construire (Build)->Generate Signed Bundle / APK- Sélectionnez l'option
APK - Préparer le fichier de signature (nouveau ou existant), et générer un package d'installation de version publiée signée
- Exemple de chemin :
"D:\AutoJs6\app\release\"
Note : Pour plus d'informations sur la manière de construire une application pour sa publication, veuillez consulter Android Docs
Tâches de build Gradle prédéfinies pour AutoJs6
En plus de construire l'application du projet, AutoJs6 prend en charge plusieurs tâches de build Gradle prédéfinies qui aident les développeurs à effectuer directement des opérations liées au projet.
Dans le menu Run/Debug Configurations de la barre d'outils, vous pouvez voir diverses tâches Gradle prédéfinies, chacune indiquée par une icône d'éléphant à gauche.
- AutoJs6 [inrt:assemble]
Assembler la variante de build "inrt", qui sert principalement à la fonction de packaging des scripts d'AutoJs6.
Le projet AutoJs6 dispose de différentes variantes de construction. La variante "inrt" est utilisée pour le packaging des scripts, générant le fichier modèle "template.apk" nécessaire au packaging.
Lors de l'utilisation de la fonction de packaging, vous pourriez rencontrer le message d'erreur suivant :
java.io.FileNotFoundException: template.apk
Cela indique que le fichier modèle n'existe pas. Vous devez exécuter manuellement la tâche inrt:assemble pour générer le fichier modèle, puis reconstruire et redéployer l'application.
Note : Lorsque le code du projet principal est modifié et que vous souhaitez synchroniser ces changements avec l'application packagée, il est nécessaire de relancer la tâche
inrt:assembleafin de générer les fichiers de modèle et de redéployer l'application
- AutoJs6 [app:bundle]
Emballer les produits du processus de build en mode debug, principalement pour le projet définitions AutoJs6.
Après l'exécution de la tâche, le fichier JAR le plus récent du projet AutoJs6 est généré. À l'aide de l'outil Android d.ts Generator (par NativeScript), vous pouvez générer les définitions de types (format d.ts) pour l'application principale d'AutoJs6.
- AutoJs6 [app:digest]
Ajoutez des informations de résumé au fichier APK généré par le build en mode release, principalement pour déterminer le nom final du fichier avant de publier la dernière version d'AutoJs6 sur GitHub.
Voici une comparaison des noms de fichiers avant et après l'ajout des informations de résumé :
Avant:
autojs6-v6.6.2-arm64-v8a.apk
Après:
autojs6-v6.6.2-arm64-v8a-0f2a9d74.apk
Voir aussi: Android Docs
Assistance au développement de scripts
Pour développer des scripts exécutables par AutoJs6, utilisez les outils de développement appropriés:
Pour développer et déboguer des scripts sur PC, l'extension VSCode permet une connexion entre PC et téléphone:
- AutoJs6-VSCode-Extension - Débogueur AutoJs6 (extension de plateforme VSCode)
Lors de l'écriture de code avec des outils de développement, les fonctionnalités de complétion de code peuvent mieux aider les développeurs à terminer l'écriture du code:
- AutoJs6-TypeScript-Declarations - Fichiers de déclaration AutoJs6 (complétion de code)
Lors de l'écriture de codes, les API AutoJs6 et l'utilisation peuvent être consultées à tout moment sur les documents de l'application:
- AutoJs6-Documentation - Documentation de l'application AutoJs6
Les projets de développement de scripts existants peuvent servir de référence et inspirer la création de projets de scripts personnels:
- Ant-Forest - Script de collecte automatique d'énergie Ant Forest par TonyJiangWJ
- Ant-Forest - Script de collecte automatique d'énergie Ant Forest par SuperMonster003
- autojs - Scripts utilitaires Auto.js par e1399579
- autojsDemo - Exemple de démonstration Auto.js par snailuncle
- dépôts associés à autojs - Tous les dépôts associés au sujet autojs sur GitHub
Contribution
Merci à chaque contributeur participant au développement du projet AutoJs6.
| Contributeurs | Nombre de commits | Soumissions récentes |
|---|---|---|
| luckyloogn | 3 | 2025/01/01 |
| kvii | 1 | 2024/10/16 |
chenguangming (Tom) |
2 | 2024/05/14 |
LZX284 (AI) |
17 | 2023/11/19 |
| TonyJiangWJ | 4 | 2023/10/31 |
little‑alei (抠脚本人) |
12 | 2023/07/12 |
| aiselp | 6 | 2023/06/14 |
LYS86 (Lin) |
2 | 2023/06/03 |
Données mises à jour le 1 January 2025.
Les entrées de données sont triées par soumissions récentes en ordre décroissant.
Les nouvelles Pull Requests en attente de traitement seront ajoutées aux statistiques après leur fusion.
Certains contributeurs ne figurant pas correctement dans GitHub Contributors peuvent avoir des enregistrements de soumission vides, mais leurs contributions peuvent toujours être consultées via Pull Requests.
