Cet article de blog essaie de faire la lumière sur l’un des coins de fragmentation d’Android – celui qui est principalement pertinent pour les personnes intéressées par des applications de photographie et de vidéographie plus avancées pour prendre le contrôle manuel de leur composition de l’image.
Tout d’abord, je dois dire que je ne suis pas du tout un expert en codeur / logiciel, donc cela vient d’un point de vue profane et je ne creuserai pas trop profondément les aspects plus techniques sous la surface.
Maintenant, qu’est-ce qu’une API ? API signifie « interface de programmation d’applications ». Un système d’exploitation utilise des API pour donner aux développeurs (tiers) des outils et un accès à certaines parties du système pour les utiliser pour leur application. En sens inverse, cela signifie que le fabricant du système d’exploitation peut également restreindre l’accès à certaines parties du système. Pour citer Wikipedia: « En termes généraux, il s’agit d’un ensemble de méthodes de communication clairement définies entre différents composants logiciels. Une bonne API facilite le développement d’un programme informatique en fournissant tous les blocs de construction, qui sont ensuite assemblés par le programmeur. »Maintenant, vous le savez.
Jusqu’à la version 4.4 (KitKat) d’Android, l’API standard pour accéder à la fonctionnalité de la caméra intégrée au système d’exploitation était très limitée. Avec la version 5 (Lollipop), Google a introduit l’API dite Camera2 pour donner aux développeurs d’applications photo un meilleur accès à des commandes plus avancées de l’appareil photo, telles que l’exposition manuelle (ISO, vitesse d’obturation), la mise au point, la capture RAW, etc. Alors que les fabricants de téléphones eux–mêmes ne sont pas nécessairement entièrement dépendants de la nouvelle API de Google, car ils peuvent personnaliser leur propre version du système d’exploitation Android, les développeurs d’applications tierces sont dans une large mesure – ils ne peuvent travailler qu’avec les outils qui leur sont fournis.
Ainsi, chaque appareil Android exécutant Lollipop dispose-t-il de la nouvelle API Camera 2? Oui et non. Bien que l’API Camera2 soit la nouvelle API de caméra standard depuis Android Lollipop, il existe différents niveaux d’implémentation de cette API qui varient selon les fabricants et les appareils de téléphones. Il existe quatre niveaux différents d’implémentation de Camera2 : Legacy, Limited, Full et Level 3. « Héritage » signifie que seules les fonctionnalités de l’ancienne API Camera1 sont disponibles, « Limité » signifie que certaines fonctionnalités de la nouvelle API sont disponibles, « Complet » signifie que toutes les nouvelles fonctionnalités de base de Camera2 sont disponibles et « Niveau 3 » ajoute des fonctionnalités bonus comme la capture RAW en plus de cela.
Selon le niveau d’implémentation, vous pouvez utiliser ces fonctionnalités dans des applications de capture d’images avancées – ou non. Une application comme Filmic Pro ne peut être installée que si le niveau de prise en charge de Camera2 est au moins « complet » – sinon, vous ne pouvez installer que Filmic Plus, moins riche en fonctionnalités. Lumio Cam, en revanche, peut être installé sur la plupart des appareils, mais vous ne pouvez activer le mode pro avec exposition et mise au point manuelles que si le niveau de support est au moins à nouveau « plein ». Donc, si vous souhaitez utiliser des applications tierces avancées pour capturer des photos ou enregistrer des vidéos avec des contrôles d’exposition manuels, etc. vous souhaitez avoir un appareil qui prend au moins en charge l’API Camera2 « complète ».
Mais quels appareils ont un support Camera2 « complet »? Actuellement, il existe deux catégories principales: Matériel Google (téléphones) et (beaucoup / la plupart) téléphones phares qui ont été publiés après la sortie d’Android Lollipop. En fait, il semble que ce dernier ne se soit vraiment mis en marche qu’avec Android 6 Marshmallow (je suppose que les fabricants de téléphones ont eu besoin de temps pour comprendre de quoi il s’agissait ;)) Il n’est pas surprenant que Google offre un support complet à leurs propres appareils (Nexus & Lignes de pixels). Cela signifie que même un appareil pré-Lollipop presque ancien comme le Nexus 5 d’origine a reçu un support complet entre-temps (via la mise à jour du système d’exploitation). Bien sûr, tous les téléphones Nexus après cela (Nexus 6, Nexus 5X, Nexus 6P) sont inclus et il va sans dire que les téléphones Pixel de Google sont également inclus.
Passons maintenant à d’autres fabricants de smartphones (soi-disant OEM, Fabricants d’équipements d’origine) comme Samsung, LG, HTC, Huawei, Sony, Lenovo / Motorola, OnePlus, etc. Beaucoup d’entre eux offrent au moins le niveau de support « complet » crucial sur leurs produits phares qui sont sortis avec Android 6 Marshmallow installé, certains déjà sur ceux qui sont sortis avec Android 5 Lollipop: Samsung avec sa série S (S6, S6 Edge, S6 Edge Plus via mise à jour, S7, S7 Edge, etc.), LG avec sa série G (en commençant par le G4) et sa série V (en commençant par le V10), HTC (en commençant par le HTC 10), Lenovo / Motorola (en commençant par le Moto Z), OnePlus (en commençant par le OnePlus 3 / 3T) et Sony (en commençant par le Xperia Z5 via mise à jour pour autant que je sache). Sony est cependant un cas particulier: leur série Xperia a été mise sur liste noire par les développeurs de FilmicPro / Plus en raison de problèmes majeurs survenus avec leurs appareils – vous ne pouvez pas installer leurs applications sur un téléphone Sony pour le moment. D’un autre côté, il existe également quelques grands équipementiers de smartphones qui doivent encore offrir une prise en charge complète de Camera2 pour leurs produits phares, le mouton noir le plus important étant Huawei avec sa série Mate P &, même le tout nouveau Huawei P10 avec toutes ses prouesses de caméra n’a qu’un support limité. Il en va de même – sans surprise – pour la marque économique Honor de Huawei. D’autres OEM qui n’offrent pas une prise en charge complète de Camera2 dans leurs produits phares incluent Asus (Zenfone 3) et Blackberry (KEYone). Espérons qu’ils ajouteront bientôt ce support et espérons également qu’un support approprié se répercutera sur les téléphones de milieu de gamme et peut-être même d’entrée de gamme de l’univers Android.
Êtes-vous curieux du niveau de support Camera2 de votre téléphone? Vous pouvez utiliser deux applications différentes (toutes deux gratuites) sur le Google Play Store pour tester le niveau d’implémentation de Camera2 sur votre appareil. Sonde Camera2 &Sonde Camera2.
Vous pouvez également trouver une liste (naturellement incomplète) des appareils Android et leur niveau de prise en charge de l’API Camera2 ici, créée et maintenue par le développeur de l’application « Camera2 probe »:
https://github.com/TobiasWeis/android-camera2probe/wiki
Si vous avez un appareil qui n’est pas répertorié, vous pouvez aider à élargir la liste en envoyant les résultats de votre appareil (pas de données personnelles cependant) au développeur (il y a un bouton spécial en bas de l’application ).
Pour des informations plus détaillées sur l’API Camera2, consultez ces sources:
https://spectrastudy.com/camera2-api-on-mwc-2015-devices/
https://developer.android.com/reference/android/hardware/camera2/package-summary.html
Comme toujours, si vous avez des questions ou des commentaires, déposez-les ici ou frappez-moi sur Twitter @smartfilming. Si vous aimez cet article, envisagez également de vous abonner à ma chaîne Telegram gratuite (t.me / smartfilming) pour être informé des nouveaux articles de blog et recevoir la newsletter mensuelle de Dix Télégrammes à emporter sur les choses importantes qui se sont passées dans le monde de la vidéo mobile.
Pour un aperçu de tous mes articles de blog, cliquez ici.
J’investis beaucoup de temps et de travail dans ce blog et je paie même pour le garder sans publicité pour une expérience de lecture non distraite. Si vous trouvez le contenu utile, veuillez envisager de faire un petit don via PayPal (cliquez sur le bouton PayPal ci-dessous). C’est très apprécié. Merci! 🙂