[PYTHON] Je viens d'écrire un script pour construire Android sur une autre machine

ajouter à

2017-06-21 Il est plus cool de l'utiliser. gojuno / mainframer: outil pour les builds distants . Synchroniser le projet sur une machine distante, exécuter la commande, synchroniser à nouveau . 2016-11-21 23:44 Prend en charge les tests 2016-11-14 13:12 Ajout de la méthode d'exécution dans le cloud

Cet article en 3 lignes

Android a une construction lourde. Étant donné que le processeur est à 100%, la machine de développement ne peut pas être utilisée pendant ce temps. Construisez sur une autre machine.

problème

La version lente et lente d'Android Studio est lente. Si vous commencez à construire pour le moment, ce sera comme ça. Screen Shot 2016-11-03 at 23.52.31.png Cela continue aussi longtemps Screen Shot 2016-11-03 at 23.55.37.png Pendant ce temps, vous ne pouvez pas saisir le code dans Android Studio. Vous ne pouvez pas naviguer. Je n'ai pas d'autre choix que de lire un livre. Grâce à cela, la lecture a diminué. Mais la date de livraison approche.

Il ne peut pas être aidé que la construction soit lourde. Il n'y a pas d'autre choix que de laisser le soin à Google. Au moins pendant la construction

Je veux sécuriser ce temps seul. Au lieu d '«accélérer la construction», je me suis concentré sur «empêcher la machine de développement de consommer des ressources CPU pendant la construction».

Cause lourde

Divers éléments tels que etc. se chevauchaient et la construction devenait de jour en jour plus lourde. Je pense.

Contre-mesure 1 Utiliser le plug-in Android Studio par des bénévoles

Construire avec Android Studio dans le cloud pour accélérer le développement - Unyablog. Cet article populaire le résoudra! Je l'ai essayé avec Android Studio 2.2, mais cela ne fonctionnait plus ... Puis-je utiliser 2.2 avec un peu de bricolage? J'ai pensé, mais je n'ai pas compris du tout ...

Contre-mesure 2 Assurez-vous que la machine de développement n'est pas occupée car elle n'a pas besoin d'être plus rapide.

Mais ce mécanisme, vous n'avez pas à le forcer avec Android Studio, vous pouvez utiliser le shell. Je pensais que ce serait bien d'utiliser du tissu python, alors je l'ai fait. De plus, comme cela coûte de l'argent, j'ai décidé de construire avec mac mini car j'avais un surplus au lieu du cloud.

Exécutez sur votre PC

J'ai écrit un scénario! https://gist.github.com/shikajiro/90cdbdac652cf37a563840d812d73c5b

Exécutez dans le cloud

@sys1yagi Semble l'avoir construit avec le cloud GCE de Google. Onome Créer une application Android avec une instance de Google Compute Engine

Installation

  1. Placez le fichier de script ci-dessus dans le répertoire racine de votre projet
  2. Définissez l'adresse IP d'une autre machine à construire.
  3. Définissez le nom du module, le nom de la saveur et l'état de débogage de l'application à créer.
  4. Créez un environnement dans lequel vous pouvez construire sur une autre machine 5-1. $ Fab build fonctionne comme une construction normale. Après la compilation et l'installation, l'activité démarre. Vous pouvez également tester avec 5-2. $ fab test. Le résultat est affiché dans le navigateur. Vous pouvez également $ fab android_test, $ fab test_all.

Flux de script

  1. Copiez le code en cours de développement sur une autre machine gratuite.
  2. Construisez sur une autre machine.
  3. Apportez l'apk construit à partir d'une autre machine et installez-le.
  4. Lancez l'application.

Résultat de la mesure

J'ai mesuré le temps qu'il faut plus qu'une construction normale.

environnement

endroit Ligne Environnement intérieur
Machine de développement domestique ligne optique Routeur-> wifi ->Machine
Machine par bureau ligne optique Routeur-> wifi ->Machine

Temps d'exécution

Ensuite, j'ai essayé le partage de connexion avec LTE.

environnement

endroit Ligne Environnement intérieur
Machine de développement de café LTE Android ->Partage de connexion->Machine
Machine par bureau ligne optique Routeur-> wifi ->Machine

Temps d'exécution

Après tout, le téléchargement d'apk est lent. Si vous voulez de la vitesse, vous devez vous en abstenir. Mais c'est vraiment bien de ne pas utiliser la batterie en déplacement! !!

Recommended Posts

Je viens d'écrire un script pour construire Android sur une autre machine
J'ai écrit un script pour télécharger un plug-in WordPress
J'ai écrit un script pour obtenir un site populaire au Japon
J'ai écrit un script pour vous aider à démarrer avec AtCoder à grande vitesse!
J'ai écrit une fonction pour charger le script d'extension Git en Python
J'ai écrit un script pour extraire les liens de pages Web en Python
J'ai écrit un script pour aider goodnotes5 et Anki à travailler ensemble
Je veux créer un environnement Python
J'ai fait un script pour afficher des pictogrammes
Je souhaite développer des applications Android sur Android
Écrivain AtCoder J'ai écrit un script qui regroupe les concours pour chaque écrivain
[Aux messieurs sur Twitter] J'ai écrit un script pour convertir immédiatement .jpg-large en .jpg.
J'ai essayé de créer une méthode de super résolution / ESPCN
J'ai essayé de créer une méthode de super résolution / SRCNN ①
J'ai essayé de créer une méthode de super résolution / SRCNN ③
J'ai essayé de créer une méthode de super résolution / SRCNN ②
J'ai écrit un script pour relancer la montre gulp qui mourra bientôt
Créer un environnement Python d'apprentissage automatique sur Mac OS
Je souhaite développer des applications Android sur Android (débogage)
J'ai fait un script pour mettre un extrait dans README.md
Je veux trouver un package populaire sur PyPi
Comment créer un environnement Django (python) sur Docker
Je souhaite créer facilement un environnement de développement basé sur un modèle
[Go + Gin] J'ai essayé de créer un environnement Docker
J'ai ajouté une fonction à CPython (construction et compréhension de la structure)
Comment créer un environnement Python sur Amazon Linux 2
Windows10 (x64) Créer nativement un environnement d'apprentissage automatique
"Arrêtez de soumettre des fichiers japonais à git sur Mac> <" Pour le moment, j'ai écrit un script pour rechercher des fichiers japonais incompatibles sur Mac et Linux.
Quand j'ai essayé de créer un environnement Rails sur WSL2 (Ubuntu 20.04LTS), j'ai trébuché et suis tombé.
J'ai écrit un script pour créer rapidement un environnement de développement pour Twitter Bot avec AWS Lambda + Python 2.7
Créer un environnement d'étude d'apprentissage automatique Python avec macOS Sierra
Créer un environnement d'apprentissage automatique sur Mac (pyenv, deeplearning, opencv)
J'ai écrit rapidement un programme pour étudier la DI avec Python ①
J'ai essayé de changer le script python de 2.7.11 à 3.6.0 sur Windows10
J'ai écrit un script qui divise l'image en deux
J'ai fait un script pour dire bonjour à mon Koshien
Créer un environnement d'apprentissage automatique
Publiez le script shell créé pour réduire les problèmes de création de LiveUSB sous Linux
J'ai essayé de créer une configuration RAID logicielle SATA qui démarre le système d'exploitation sur Ubuntu Server
J'ai essayé de créer un environnement serveur qui fonctionne sous Windows 10
J'ai installé Taiga.IO sur CentOS7 (j'ai fait un script pendant que j'y étais)
Une note à laquelle j'étais accro lors de l'émission d'un bip sous Linux
Comment créer un environnement Python à l'aide de Virtualenv sur Ubuntu 18.04 LTS
J'ai essayé d'enregistrer une station sur la plateforme IoT "Rimotte"
J'ai essayé d'installer MySQL sur une machine virtuelle Linux sur OCI Compute
Comment déployer une application Django sur heroku en seulement 5 minutes
Je souhaite créer un service d'apprentissage automatique sans programmation! API Web
[AWS / Tello] Construction d'un système d'exploitation de drones sur le cloud
Shellscript pour créer un environnement pyenv sur ubuntu d'un seul coup
J'ai créé un script POST pour créer un problème sur Github et l'enregistrer dans le projet
J'ai écrit un livre qui vous permet d'apprendre les implémentations et les algorithmes d'apprentissage automatique de manière équilibrée.
J'ai créé un script de traduction basé sur CUI (2)
J'ai créé un script de traduction basé sur CUI
Créer un environnement python3 sur CentOS7
J'ai écrit un code pour convertir quaternion en angle de graissage de type z-y-x avec Python
J'ai changé de travail pour devenir ingénieur en apprentissage automatique chez AtCoder Jobs
Essayez de déduire à l'aide d'un modèle de régression linéaire sur Android [PyTorch Mobile]
Une histoire à laquelle j'étais accro à essayer d'installer LightFM sur Amazon Linux