Android Studio 3.5 introduit Apply Changes, le successeur de la fonctionnalité Instant Run du populaire outil de développement d'applications.
Android Studio 3.5 (actuellement dans les canaux Canary et Dev) propose désormais une nouvelle façon d'appliquer les modifications de code à votre application et de voir leurs effets à la volée sans avoir à redémarrer l'application. Surnommé simplement « Appliquer les modifications », il s'agit du successeur de la fonctionnalité « Exécution instantanée » des versions précédentes de Android Studio.
Google Blog des développeurs Android dit ce qui suit à propos de l'application des modifications :
Appliquer les modifications vous permet d'appliquer les modifications de code et de ressources à votre application en cours d'exécution sans redémarrer votre application et, dans certains cas, sans redémarrer l'activité en cours. Apply Changes remplace Instant Run par une toute nouvelle approche d’optimisation de la build. Au lieu de réécrire le bytecode de votre APK pendant la construction, Apply Changes redéfinit les classes à la volée en tirant parti de l'instrumentation d'exécution prise en charge dans Android 8.0 (API niveau 26) ou supérieur.
De plus, Android Studio vous invite désormais à décider de redémarrer votre application ou votre activité lorsqu'il détecte que les modifications ne sont pas compatibles avec Appliquer les modifications. Ce contrôle supplémentaire devrait vous offrir une expérience plus cohérente et prévisible par rapport au comportement d'Instant Run.
Le billet de blog continue en énumérant certaines limitations de la nouvelle fonctionnalité. Par exemple, l'appareil sur lequel vous testez votre application doit au moins être en cours d'exécution Android 8.0 Oreo (API niveau 26) et certaines modifications de code nécessiteront toujours le redémarrage de votre application. Comme pour « Exécution instantanée », « Appliquer les modifications » forcera votre application à redémarrer si vous :
- Ajout ou suppression d'une classe, d'une méthode ou d'un champ
- Changer le manifeste
- Modification des signatures de méthode
- Changer les modificateurs de méthodes ou de classes
- Renommer les classes
- Changer l'héritage de classe
- Ajouter ou supprimer une ressource
Sous « Problèmes connus », le billet de blog indique que, puisque Google a initialement donné la priorité à la stabilité plutôt qu'aux performances dans cette nouvelle fonctionnalité, « Appliquer les modifications » s'exécutera parfois. plus lentement que son prédécesseur "Instant Run". De plus, les images de l'émulateur x86_x64 ne sont pas prises en charge et, à des fins de débogage, seul Android Pie (API niveau 28) est prise en charge. Vous pouvez voir la liste complète des limitations et des problèmes connus sur le lien source ci-dessous.
Pour une description plus détaillée de la différence entre « Appliquer les modifications » et « Exécution instantanée », un employé de Google de l'équipe Android Studio a déclaré ceci sur Reddit:
Cela fait quelque chose de très, très différent. Instant Run a eu un impact très spécifique sur la construction, en instrumentant chacune de vos classes au moment de la compilation pour les préparer à être remplacées pendant l'exécution par une nouvelle version de la classe. Il divise également votre APK en plusieurs APK pour recharger votre application de manière plus progressive.
Appliquer les modifications ne fait rien de tel. Votre APK est à peu près le même, que vous utilisiez ou non Appliquer les modifications. Au lieu de cela, il s'appuie sur les nouvelles capacités d'instrumentation d'exécution de la machine virtuelle ART pour recharger dynamiquement les classes et les remplacer pendant l'exécution de l'application. C’est pourquoi il nécessite des versions d’Android beaucoup plus récentes.
"Appliquer les modifications" devrait éventuellement remplacer "Instant Run" dans les canaux bêta et stable à mesure que Google améliore ses performances et sa stabilité.
Source: Blog des développeurs Android