Apportez votre application Android sur les Chromebooks

Demandez à n'importe quel développeur de nommer le plus gros défi de développement pour Android, et il est probable qu'il va parler de fragmentation. Créer une application suffisamment flexible pour fonctionner avec la vaste gamme d'appareils qui se trouvent sous la bannière "Android" est un casse-tête énorme que la plupart des développeurs Android ont connu à un moment donné..

Mais développer pour une plate-forme fragmentée a ses avantages! Étant donné qu’il existe de nombreux appareils Android différents, votre application a le potentiel de se connecter à un énorme public - et ce public vient d’être beaucoup plus grand, car les applications Android peuvent maintenant fonctionner sur Chrome OS.

Dans cet article, je vais vous montrer comment mettre en œuvre votre dernier projet d'application Android sur Chrome OS. Et puisque vous souhaiterez offrir la meilleure expérience utilisateur possible sur cette nouvelle plate-forme, je vais également examiner comment optimiser votre application Android, afin que vous puissiez vraiment impressionner votre nouveau public Chromebook..

Mon application convient-elle aux Chromebooks??

En tant que développeur Android, placer votre application devant autant de personnes que possible devrait toujours être votre priorité absolue, juste?

Pas nécessairement.

Le fait que les applications Android soient désormais compatibles avec Chrome OS ne signifie pas que toutes les applications Android conviendront automatiquement à cette nouvelle plate-forme..

Imaginez que vous repériez une application qui vous ressemble, et que Google Play indique que cette application est compatible avec votre smartphone. et votre Chromebook. Vous décidez de télécharger l'application sur votre ordinateur portable et vous réalisez immédiatement que la plupart des fonctionnalités de l'application reposent sur du matériel spécifique au mobile, tel que la possibilité de passer des appels téléphoniques et d'envoyer des SMS.. 

Le résultat final? Cette application est quasiment inutilisable sous Chrome OS. Vous le désinstallez immédiatement, comme si le développeur l'avait complètement perdu votre temps, et leur laisser une critique négative sur Google Play en rétribution.

Au pire, une application qui ne prend pas en charge Chrome OS est légèrement gênante pour les utilisateurs de Chromebook, mais une application qui offre une expérience utilisateur déplorable sur Chrome OS est loin pire.

Avant de plonger et de préparer votre application à ses débuts avec Chrome OS, prenez quelques instants pour déterminer si votre application a réellement quelque chose à offrir aux utilisateurs de Chromebook..

Votre Chromebook typique utilise un matériel très différent de votre smartphone ou de votre tablette Android. Le matériel sera un thème récurrent dans cet article, mais pour l’instant, jetez simplement un œil sur la liste des fonctionnalités de votre application: ces fonctionnalités vous paraissent incompatibles avec votre ordinateur portable typique.? 

Par exemple, il est peu probable que l'application de podomètre sur laquelle vous avez travaillé prospérera sous Chrome OS, car les ordinateurs portables ne disposent généralement pas du matériel nécessaire pour mesurer les pas (et à quand remonte la dernière fois que quelqu'un a pris son Chromebook sur leur jogging matinal, quand même?).

Si votre application inclut des fonctionnalités incompatibles, y a-t-il moyen de modifier ces fonctionnalités pour les rendre plus compatibles avec Chromebook? Si la réponse est «non», vous devrez désactiver ces fonctionnalités lorsque votre application s'exécutera sous Chrome OS. Une autre question se pose alors: votre application peut-elle continuer à offrir une bonne expérience utilisateur, même sans ces fonctionnalités? Si cela semble peu probable, votre application risque de ne pas être adaptée aux Chromebooks..

Espérons que même si vous devez désactiver ou modifier certaines fonctionnalités, votre application aura toujours quelque chose à offrir aux utilisateurs de Chromebook. À ce stade, vous êtes prêt et impatient de commencer à mettre à jour votre application pour qu'elle s'exécute sous Chrome OS.!

Faire fonctionner votre application sur Chrome OS

Si votre application nécessite un matériel qui n'est pas pris en charge par Chrome OS, les utilisateurs de Chromebook ne pourront pas installer votre application. Et il existe un élément matériel en particulier présent sur la plupart (sinon tous) des smartphones et des tablettes, mais qui n'est pas disponible sur tous les Chromebooks: un écran tactile..

Pour aggraver les choses, sauf indication contraire de votre part, Google Play considérera que votre application Android nécessite un écran tactile et, par conséquent, empêchera l'installation de votre application sur tous les appareils ne disposant pas de cette fonctionnalité. Si vous souhaitez que votre application soit accessible au plus grand nombre d'utilisateurs de Chromebook possible, vous devez vous demander: mon application Android vraiment nécessite un écran tactile?  

Pour la majorité des applications Android, la réponse est non. La plupart des applications Android fonctionnent parfaitement sans écran tactile, en particulier sur les Chromebooks où l'utilisateur dispose d'un clavier, d'un trackpad et, éventuellement, d'une souris externe. Certains Chromebooks prennent même en charge le «faux écran tactile», qui est un système de saisie supplémentaire vous permettant d’utiliser la souris et le clavier pour émuler les événements tactiles de base..

Donc, à moins que vous n'ayez une très bonne raison de ne pas le faire, vous devez spécifier que votre application ne nécessite pas d'écran tactile pour fonctionner. Cela implique d’ouvrir le manifeste de votre projet et de déclarer l’écran tactile comme une fonctionnalité utilisée par votre application (uses-feature android: name = "android.hardware.touchscreen") puis en utilisant le android: attribut préciser si votre application:

  • Nécessite cette fonctionnalité pour fonctionner ("vrai").

  • Préfère que cette fonctionnalité soit disponible, mais peut fonctionner sans elle ("faux").

Dans ce cas, nous voulons déclarer qu'un écran tactile est préféré mais pas obligatoire:

Google Play utilisera ensuite celui de votre projet. et Android: nécessaire des déclarations pour déterminer si votre application est compatible avec le périphérique d'un utilisateur et autoriseront les utilisateurs à télécharger votre application uniquement si leur appareil répond à toutes les exigences.

Une fois que vous déclarez que votre application ne nécessite pas d'écran tactile, elle devient immédiatement disponible pour un pourcentage plus élevé d'utilisateurs de Chromebook..

Autres considérations matérielles

Maintenant, rincez et répétez chaque fonction utilisée par votre application. C’est une bonne pratique pour développer tout L'application Android, mais c'est aussi une étape importante dans l'optimisation de votre application pour les utilisateurs de Chromebook.

Pour vous aider à préparer votre application pour Chrome OS, l'équipe Android a créé une liste pratique de toutes les déclarations de matériel qui ne sont généralement pas compatibles avec les Chromebooks. Si cette application contient des fonctionnalités que votre application utilise mais ne pas il est particulièrement important de déclarer cette fonctionnalité dans votre manifeste et de la marquer comme android: required = "false".

Cependant, ne définissez pas automatiquement toutes les fonctionnalités sur "faux" parce que vous souhaitez que votre application soit disponible pour autant de Chromebooks que possible! Pensez à l'expérience utilisateur que votre application va offrir sans accès à chaque élément de matériel. Même s'il est tentant d'essayer d'avoir votre application devant le plus grand nombre de personnes possible, c'est toujours Il est préférable de fournir une bonne expérience utilisateur à un public inférieur à une expérience utilisateur moyenne ou médiocre à un vaste public..

À ce stade, vous devez également vérifier toutes les autorisations demandées par votre application, car certaines autorisations font des demandes matérielles implicites. Par exemple, si votre application demande l'autorisation d'appareil photo, Google Play supposera que celle-ci nécessite du matériel d'appareil photo et empêchera son installation sur des appareils qui ne répondent pas à cette exigence. Si votre application ne nécessite pas réellement d'appareil photo, c'est un bon moyen de passer à côté des utilisateurs potentiels! Pour éviter cela, vous devez déclarer cette fonctionnalité dans le manifeste de votre application et la marquer comme "faux".

Si vous adhérez à la meilleure pratique consistant à déclarer chaque fonctionnalité utilisée par votre application, théoriquement, vous ne devriez pas avoir à vous soucier des demandes de fonctionnalités implicites, mais cela vaut toujours la peine de vérifier votre projet, au cas où..

Plus précisément, les autorisations suivantes créent des demandes de fonctionnalités implicites pouvant empêcher l’installation de votre application sur Chrome OS:

  • APPEL TÉLÉPHONIQUE

  • CALL_PRIVILEDGED

  • CAMÉRA

  • MODIFY_PHONE_STATE

  • PROCESS_OUTGOING_CALLS

  • READ_SMSREAD_SMS

  • RECEIVE_MMS

  • RECEIVE_SMS

  • RECEIVE_WAP_PUSH

  • ENVOYER UN SMS

  • WRITE_APN_SETTINGS

  • WRITE_SMS

Si votre application demande l'une de ces autorisations, vérifiez à nouveau que vous avez déclaré le matériel associé dans le manifeste de votre projet et marquez chaque déclaration comme "faux" si votre application ne nécessite pas réellement ce matériel.  

Pendant que vous travaillez sur vos demandes de fonctionnalités, il peut être utile d’avoir un aperçu de la manière dont Google Play filtrera votre application en fonction de ses déclarations de matériel et de ses demandes d’autorisation actuelles. Le SDK Android comprend un 'aapt'outil qui vous permet de faire exactement cela: vous pouvez exécuter cet outil, vérifier la comparaison de sa sortie avec les fonctionnalités réellement requises par votre application et effectuer les ajustements nécessaires.

Pour plus d'informations sur l'utilisation de aapt, consultez les documents Android officiels..

Capteurs

La plupart des smartphones et tablettes Android ont divers capteurs intégrés qui peuvent fournir à votre application une gamme de données, y compris l'orientation actuelle du périphérique, sa position et parfois même des informations sur les conditions environnementales..

De nombreux capteurs que vous vous attendez généralement à trouver sur un smartphone ou une tablette ne sont pas disponibles sous Chrome OS. Par conséquent, si votre application utilise les données de tout capteur, vous devez planifier la réaction de votre application si ce capteur n'est pas disponible.   

Si l'intégralité de votre application dépend de l'accès à un capteur particulier, vous devez empêcher son installation de s'installer sur tout périphérique ne disposant pas de ce capteur. Par exemple, si votre application ne peut pas fonctionner sans les données d'un capteur d'accéléromètre, vous devez ajouter les éléments suivants au manifeste de votre projet:

L'autre scénario est que votre application ne exiger un capteur particulier, mais possède des fonctionnalités qui utiliseront les données d'un capteur si elles sont disponibles. Si cela ressemble à votre application, vous devez alors déclarer ce capteur dans votre manifeste, mais le marquer comme android: required = "false". Votre application peut ensuite vérifier si ce capteur est disponible au moment de l'exécution et désactiver toute fonctionnalité qui repose sur un capteur qui n'est pas présent sur le périphérique de l'utilisateur..  

Pour déterminer quels capteurs sont disponibles, vous devez créer une instance du SensorManager classe, puis appelez le getSystemService méthode et passer le SENSOR_SERVICE argument:

private SensorManager mSensorManager;… mSensorManager = (SensorManager) getSystemService (Context.SENSOR_SERVICE);

Ensuite, vous devrez obtenir une liste de tous les capteurs actuellement disponibles en appelant le getSensorListmethod et en utilisant le Capteur.TYPE_ALL constant:

liste deviceSensors = mSensorManager.getSensorList (Sensor.TYPE_ALL);

Armés de ces informations, vous pouvez ensuite désactiver toutes les fonctionnalités de l'application qui dépendent des données de capteurs qui ne sont pas présentes sur le périphérique actuel.

Redimensionnement et prise en charge du mode multi-fenêtre de Chrome OS

Sous Chrome OS, les applications Android sont affichées dans des fenêtres distinctes que l'utilisateur peut parcourir, et alternent entre les trois tailles prises en charge suivantes:

  • Portrait. Une taille similaire à l'écran d'un Nexus 5.

  • Paysage. Un écran similaire au Nexus 7.

  • Maximisé. L'application utilise tout l'espace d'écran disponible.

Lorsque le moment est venu de tester votre application sur Chrome OS, vous devez vous assurer que celle-ci est correcte et qu'elle fonctionne correctement dans les trois tailles prises en charge, par exemple en vérifiant que tout le texte de votre application est facile à lire et que tous les éléments de l'interface restent accessibles. indépendamment du fait que l'utilisateur place votre application en mode portrait, paysage ou maximisé.

Bien que les utilisateurs de Chrome OS puissent afficher plusieurs applications Android à la fois, une seule application seulement peut avoir le focus. Par conséquent, pour préserver la batterie de l'utilisateur, votre application doit suspendre le rendu dès qu'elle perd le focus. La seule exception est lorsque votre application a un contenu qui doit être mis à jour en permanence. Par exemple, si vous développez une application qui lit de la musique ou des vidéos, vous ne voudrez probablement pas cela. Activité arrêter chaque fois que votre application perd le focus.

Si votre activité doit être mise à jour en permanence, vous devez la mettre en pause. onStop et reprendre la lecture dans onStart, plutôt que d'utiliser onPause manutentionnaires.

Pensez à utiliser la sauvegarde automatique

Les Chromebooks sont conçus pour que les utilisateurs puissent basculer facilement d'un appareil à un autre. Il leur suffit de se connecter à leur compte Google pour que toutes leurs applications et leur contenu soient simplement, indépendamment du fait qu'ils aient déjà utilisé ce Chromebook avant.

Étant donné que c’est le comportement attendu par les utilisateurs de Chromebook, c’est également ainsi que votre application doit se comporter lorsqu’elle est exécutée sur Chrome OS. Cela signifie que vous devrez sauvegarder les données de votre application en ligne plutôt que de les stocker localement. Le moyen le plus simple consiste à utiliser la fonction de sauvegarde automatique d'Android, qui vous permet de sauvegarder les données de votre application sur le compte Google Drive de l'utilisateur..

Si votre application cible Android 6.0 ou version ultérieure, la sauvegarde automatique est activée par défaut. Cependant, c'est toujours C'est une bonne idée de préciser les fonctionnalités utilisées par votre application (après tout, rien ne garantit que la sauvegarde automatique sera activée par défaut sur les futures versions d'Android), alors ouvrez le manifeste de votre projet et ajoutez les éléments suivants:

android: allowBackup = "true"

Pour plus d'informations sur l'implémentation de la sauvegarde et de la restauration, consultez les documents officiels Android..

Temps pour tester!

Même après avoir suivi toutes ces pratiques recommandées, vous ne pouvez pas être certain que votre application fournira une bonne expérience utilisateur sur Chrome OS.-sauf si vous testez votre application sur un Chromebook réel.

Au moment de la rédaction de ce document, Google vous recommande de tester vos applications compatibles avec Chromebook dans les domaines suivants:

  • Un Chromebook basé sur ARM.

  • Un Chromebook basé sur Intel x86.

  • Un Chromebook convertible (qui peut changer de forme entre un ordinateur portable et une tablette).

  • Un Chromebook avec support d'écran tactile.

  • Un Chromebook avec une prise en charge "fake touch".

Mais soyons réalistes: il est peu probable que vous ayez simplement accès à plusieurs Chromebooks. Lorsque vous décidez quel (s) Chromebook vous devez essayer de tester votre application, il peut être utile de consulter la liste de Google de tous les Chromebooks compatibles avec Android disponibles sur le marché..

Avant de pouvoir installer votre application Android sur Chrome OS, vous devez mettre votre Chromebook en mode développeur et permettre les installations à partir de sources inconnues..

Le processus exact pour placer votre Chromebook en mode développeur varie d'un appareil à l'autre. Par conséquent, si ces instructions ne fonctionnent pas pour votre modèle, vous devez rechercher dans la documentation Chromium des instructions spécifiques..

Pour entrer en mode développeur:

  1. Assurez-vous que votre Chromebook est désactivé..

  2. Maintenez la Esc et Rafraîchir touches tout en appuyant sur votre appareil Puissance bouton. Votre Chromebook doit ensuite démarrer à l’écran de récupération..

  3. appuyez sur la Contrôle-D touches du clavier de votre Chromebook.

  4. Lorsque vous y êtes invité, appuyez sur le bouton Entrer clé.

  5. appuyez sur la Contrôle-D clés à nouveau.

Votre Chromebook va maintenant démarrer en mode développeur.

La prochaine étape consiste à activer les sources inconnues en accédant à Paramètres Chrome> Paramètres de l'application> Sécurité et en sélectionnant Sources inconnues.

Une fois ces étapes terminées, vous êtes prêt à installer le fichier APK (Android Application Package) que vous souhaitez tester. Pour transférer rapidement votre APK sur votre Chromebook, vous pouvez soit:

  • Ajoutez votre APK à Google Drive.

  • Copiez le fichier APK sur votre Chromebook Téléchargements dossier utilisant un lecteur externe ou une carte SD.

  • Envoyez l'APK à vous-même par email.

Ensuite, vous devez télécharger le fichier APK sur votre Chromebook et l'ouvrir à l'aide de l'application Android File Manager (que vous trouverez en accédant à Paramètres Chrome> Paramètres de l'application> Périphérique et clé USB> Explorer).

Vous pouvez également transférer l'APK de votre ordinateur de développement sur votre Chromebook à l'aide des commandes Android Debug Bridge (ADB)..

Pour que ADB fonctionne correctement avec Chrome OS, il faut un peu de configuration, mais une fois la connexion établie, vous pouvez utiliser ADB pour émettre toute une gamme de commandes pouvant s'avérer très utiles pour tester votre application Android. (Pour plus d'informations sur les commandes ADB, consultez la documentation Android officielle).

Travailler avec le pont de débogage Android

La configuration de la BAD est un processus en plusieurs étapes, abordons-la étape par étape:

1. Configurez le pare-feu Chrome OS pour autoriser les connexions ADB entrantes..

Lancez le terminal Chrome OS en appuyant sur Contrôle-Alt-T sur votre clavier, puis tapez coquille pour obtenir le shell de commande bash:

crosh> shell chronos @ localhost / $

Entrez votre mot de passe, puis lancez les commandes suivantes via la fenêtre Terminal:

chronos @ localhost / $ sudo / usr / libexec / debugd / helpers / dev_features_rootfs_verification

Lire le disclaimer. Si vous souhaitez continuer, entrez la commande suivante:

chronos @ localhost / $ sudo reboot

À ce stade, votre Chromebook va redémarrer. Une fois le démarrage de votre Chromebook terminé, relancez le terminal et tapez:

chronos @ localhost / $ sudo / usr / libexec / debugd / helpers / dev_features_ssh

2. Recherchez l'adresse IP de votre Chromebook:

L’activation du débogage ADB nécessite l’adresse IP de votre Chromebook, donc:

  • Clique le Réseau icône en bas à droite de l'écran d'accueil de votre Chromebook.

  • Sélectionnez le réseau auquel votre Chromebook est actuellement connecté..

  • Clique le je icône en bas à droite du menu.

À ce stade, une boîte apparaît, contenant l'adresse IP de votre Chromebook. Notez-la, vous en aurez besoin ultérieurement..

3. Activer le débogage des annonces.

Sur votre Chromebook, procédez comme suit:

  • Cliquez sur l'icône de l'horloge dans le coin inférieur droit de l'écran..

  • Sélectionner Réglages.

  • dans le Applications Android section, cliquez sur le Gérer vos applications Android dans les paramètres lien.

  • Cliquez sur A propos de l'appareil.

  • Entrez en mode développeur en cliquant sur le bouton Numéro de construction Sept fois.

  • Cliquez sur la flèche en haut à gauche de la fenêtre. Cela vous ramènera à la principale Réglages écran.

  • Cliquez sur Options de développeur.  

  • Activer Débogage de la BAD puis cliquez sur D'accord.

Ensuite, procédez comme suit sur votre ordinateur de développement:

Ouvrez une fenêtre de terminal et changez de répertoire (CD) il pointe donc vers l'emplacement du programme "adb" de votre SDK Android.

cd / Utilisateurs / jessicathornsby / Bibliothèque / Android / sdk / platform-tools

Demandez à votre ordinateur de développement d'écouter une connexion TCP / IP sur le port 22 en lançant la commande adb suivante:

./ adb tcpip 22

Émettre le adb connect suivi de l'adresse IP de votre Chromebook, par exemple:

./ adb connect 100.100.0.10

Sur votre Chromebook, cliquez sur Permettre à l'invite.

Il ne reste plus qu'à transmettre le fichier APK de votre ordinateur de développement à votre Chromebook..

Sur votre machine de développement, lancez le adb installer commande, suivi du chemin et du nom de fichier du fichier APK à installer, par exemple:

./ adb install Users / jessicathornsby / Documents / app-name.apk

Et c'est tout! Votre application Android est maintenant installée sur votre Chromebook, prête à être testée.!

Résumé

Dans cet article, nous avons examiné la mise à jour de votre application afin qu'elle puisse être exécutée sur les Chromebooks, puis l'optimisation afin de fournir une meilleure expérience utilisateur, une fois qu'elle est capable de fonctionner sur cette nouvelle plate-forme..

Pouvoir accéder à leurs applications préférées depuis leurs smartphones, leurs tablettes et désormais leurs ordinateurs portables est une excellente nouvelle pour les utilisateurs de Chromebook. Pour vous en tant que développeur, cela signifie un plus grand public potentiel pour vos applications Android - et qui ne voudrait pas de cela.?