web-dev-qa-db-fra.com

Recharger une application React Native sur un périphérique Android manuellement via une ligne de commande

J'aimerais forcer manuellement le rechargement de mon application React Native à la demande sans secouer physiquement l'appareil. (Je vais avoir un canal carpien.)

Je sais que Live Reload/Hot Reload sont disponibles. Je recherche une solution de ligne de commande à la demande.

35
brettlaforge

À l'aide de la ligne de commande, vous pouvez envoyer une commande au périphérique Android. 

adb Shell input text "RR"

Cette commande indique au périphérique Android de taper le caractère "R" deux fois, qui correspond à la commande Réagir natif pour recharger sur Android.

La commande adb Shell possède de nombreuses fonctionnalités utiles, dont beaucoup sont décrites ici:

Evénements d'entrée du shell ADB

Pour ouvrir le menu du développeur:

adb Shell input keyevent 82
94
brettlaforge

J'utilise la commande suivante. Il ne recharge pas l'application, mais il ouvre le menu du développeur sur l'appareil. Je peux ensuite appuyer sur l'option "Recharger":

adb Shell input keyevent KEYCODE_MENU

Je développe avec un vrai périphérique (pas l'émulateur) et l'envoi du "double-R" via adb ne fonctionne pas (il montre juste le clavier et les types 2 Rs).

10
Xavier

Il suffit de poster ici au cas où vous ne connaissiez pas cette astuce

appuyez longuement sur le bouton de menu de votre appareil Android. Ensuite, vous aurez ce menu

appuyez sur l'option de rechargement et vous êtes prêt à partir

8
vighnesh s

Ajoutez le script suivant à votre package.json:

    "Android-shake": "adb Shell input keyevent 82"

Ensuite, vous pourrez appeler 

yarn Android-shake

Si vous êtes à la recherche d’ios, consultez ma réponse sur ce lien

3
Francois Nadeau

Fait un script autohotkey pour recharger et ouvrir le menu avec des raccourcis clavier.

   ^+r::  run, %comspec% /c adb Shell input text "RR",,hide  
   ^+e::  run, %comspec% /c adb Shell input keyevent 82,,hide

ctrl + Maj + r pour recharger Ctrl + Maj + e pour ouvrir le menu dev

1
Yarden Hochman

Si vous utilisez un Mac et que vous utilisez Hammerspoon , vous pouvez mettre le code suivant dans votre fichier ~/.hammerspoon/init.lua:

hyper = {'ctrl', 'alt', 'cmd'}
placid = {'ctrl', 'cmd'}

-- React native reload JS on connected device
hs.hotkey.bind(placid, 'R', function()
  os.execute('/Users/peter/Library/Android/sdk/platform-tools/adb Shell input text "RR"')
end)

-- React native show dev menu on connected device
hs.hotkey.bind(hyper, 'R', function()
  os.execute('/Users/peter/Library/Android/sdk/platform-tools/adb Shell input keyevent 82')
end)

la commande os.execute ne charge pas votre ENV (cela ralentirait l'exécution des commandes), assurez-vous donc de lancer which adb dans votre terminal pour déterminer le chemin exact vers adb. est. (dans mon cas c'était /Users/peter/Library/Android/sdk/platform-tools/adb).

Maintenant, vous pouvez recharger votre application en utilisant ctrl+cmd+R et afficher le menu de développement en utilisant ctrl+option+cmd+R de n'importe où et sans même vous soucier de cmd-tab de votre éditeur préféré!

0
HendrikPetertje

Une astuce consiste à ajouter cette commande sur le profil ~/.bashrc dans le cas où vous utiliseriez unix.

  1. utilisez votre éditeur préféré (ex: nano sur Ubuntu) et tapez nano ~/.bashrc
  2. à la fin du fichier, écrivez alias rnreload='adb Shell input text "RR"'
  3. sauvegardez-le et lancez source ~/.bashrc afin de l'activer.
  4. Maintenant, chaque fois que vous avez besoin, tapez simplement rnreload sur un terminal.

La prochaine fois que vous entrez dans votre ordinateur, cela devrait déjà être fait.

En outre, il est également possible d’ajouter un autre alias: alias rnshake='adb Shell input keyevent 82' qui "secoue" Android. Vous pouvez l'utiliser pour accéder à d'autres commandes telles que le rechargement à chaud, le débogueur, l'inspecteur, etc.

0
Filipe

Pour un appareil, il suffit de secouer votre appareil, puis un menu apparaît.

0
Asma_Kh