J'ai besoin d'un moyen de détecter la taille et la densité de l'écran de l'appareil avec adb. S'il n'y a pas de solution, où puis-je obtenir la liste complète de tous les appareils Android existants avec leur taille et densité d'écran ?
Réponses
Trop de publicités?Vous pouvez également accéder au WindowManager via ADB :
$ adb shell wm
usage: wm [subcommand] [options]
wm size [reset|WxH]
wm density [reset|DENSITY]
wm overscan [reset|LEFT,TOP,RIGHT,BOTTOM]
Pour obtenir la résolution de l'écran :
$ adb shell wm size
Physical size: 2880x1600
Pour obtenir l'écran la densité :
$ adb shell wm density
Physical density: 320
Vous pouvez également remplacer la densité en ajoutant la nouvelle densité :
$ adb shell wm density 160
La densité LCD est dans le build.prop :
adb shell getprop ro.sf.lcd_density
Et la résolution est disponible dans le dumpsys de l'activité d'entrée :
# windows
adb shell dumpsys window | find "DisplayWidth"
# linux
adb shell dumpsys window | grep DisplayWidth
Il fonctionne sur tous les appareils avec lesquels j'ai testé (2.2, 2.3.3, 2.3.4, 4.0.3 ; Acer Liquid E, HTC Wildfire S, HTC Incredible S, Motorola Atrix 4G, Samsung Galaxy Note, Samsung Galaxy Nexus) , ainsi que l'émulateur, bien que les sorties de l'émulateur soient trop propres pour servir de bon exemple pour l'analyse .
dumpsys window displays
montre quelque chose comme ceci:
Display: mDisplayId=0
init=1080x1920 480dpi cur=1080x1920 app=1080x1920 rng=1080x1005-1920x1845
layoutNeeded=false
autrement:
dumpsys display
montre aussi des trucs intéressants comme :
mDefaultViewport=DisplayViewport{valid=true, displayId=0, orientation=0, logicalFrame=Rect(0, 0 - 1080, 1920), physicalFrame=Rect(0, 0 - 1080, 1920), deviceWidth=1080, deviceHeight=1920}
et pour couronner le tout:
dumpsys power
affichera quelque chose comme
Electron Beam State:
mPrepared=false
mMode=2
mDisplayLayerStack=0
mDisplayWidth=1080
mDisplayHeight=1920
mSurfaceVisible=false
mSurfaceAlpha=0.0
que vous pouvez facilement utiliser pour grep pour mDisplayWidth et mDisplayHeight
Pour obtenir les informations requises d'ADB, la commande suivante exécutée à partir de la ligne de commande renverra de nombreuses propriétés utiles sur les appareils connectés
> adb shell getprop
Pour filtrer ces propriétés
sur Unix, utilisez grep comme
> adb shell getprop | grep density
sur Windows, utilisez trouver comme
> adb shell getprop | findstr "density"
La valeur renvoyée ressemble à
[ro.sf.lcd_density]: [240]
pour la taille de l'écran, mettez l'affichage au lieu de la densité