web-dev-qa-db-fra.com

Comment obtenir la taille d'écran de l'appareil Android à partir de la ligne de commande adb?

J'ai besoin d'un moyen de détecter la taille de l'écran et la densité 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 leur densité d'écran?

42
user954469

Vous pouvez également accéder à 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]

La commande suivante vous donnera 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
50
Albert-Jan Verhees

La densité de l'écran LCD est dans le build.prop:

adb Shell getprop ro.sf.lcd_density

Et la résolution est disponible dans les 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 que j'ai testés (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 celui-ci soient trop propres pour servir d’exemple pour l’analyse .

30
Nisan.H
dumpsys window displays

montre quelque chose comme ça:

Display: mDisplayId=0
  init=1080x1920 480dpi cur=1080x1920 app=1080x1920 rng=1080x1005-1920x1845
  layoutNeeded=false

autrement:

dumpsys display

montre également des choses intéressantes 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

18
chr0m4k3y

Pour obtenir les informations requises auprès d’ADB, la commande suivante exécutée à partir de la ligne de commande renvoie de nombreuses propriétés utiles concernant les périphériques connectés.

> adb Shell getprop

Pour filtrer à travers ces propriétés 

sous Unix, utilisez grep comme

> adb Shell getprop | grep density

sur Windows utiliser trouver comme

> adb Shell getprop | findstr "density"

La valeur renvoyée ressemble à 

[ro.sf.lcd_density]: [240]

pour la taille de l'écran mis l'affichage au lieu de la densité

8
Ilya Saunkin

Vous pouvez obtenir des dimensions d'écran avec ce code:

public int getScreenHeight() {
    return getDisplay().getHeight();
}

private Display getDisplay() {
    return ((WindowManager) getContext().getSystemService(
            Context.WINDOW_SERVICE)).getDefaultDisplay();
}


public int getScreenWidth() {
    return getDisplay().getWidth();
}

Une fois que vous avez l'affichage dans le code ci-dessus, vous pouvez utiliser DisplayMetrics pour obtenir la densité. DisplayMetrics vous donnera également un affichage absolu avec et la hauteur.

0
Narcís Calvet

Examinez les résultats de dbbys Shell adb. La taille de l'écran y est affichée à plusieurs reprises, avec de nombreuses autres informations.

... bien que je sois maintenant au bureau, bien que cela fonctionne sur mon téléphone, il est absent de la tablette Galaxy Zut.

0
android.weasel

Le travail est bon:

dumpsys window | grep Display

return: Display: init = 320x480 cur = 320x480 app = 320x480 rng = 320x295-480x455

0
Alex