web-dev-qa-db-ja.com

adbコマンドラインからAndroidデバイスの画面サイズを取得するには?

Adbでデバイスの画面サイズと密度を検出する方法が必要です。解決策がない場合、既存のすべてのAndroidデバイスの画面サイズと密度を含む完全なリストをどこで入手できますか?

49
user954469

ADBを介してWindowManagerにアクセスすることもできます。

$ adb Shell wm
usage: wm [subcommand] [options]
       wm size [reset|WxH]
       wm density [reset|DENSITY]
       wm overscan [reset|LEFT,TOP,RIGHT,BOTTOM]

次のコマンドは、密度を示します。

$ adb Shell wm density
Physical density: 320

新しい密度を追加して、密度を上書きすることもできます。

$ adb Shell wm density 160
61

LCD密度はbuild.propにあります。

adb Shell getprop ro.sf.lcd_density

そして、入力アクティビティのdumpsysで解決策が利用可能です。

# windows
adb Shell dumpsys window | find "DisplayWidth"
# linux
adb Shell dumpsys window | grep DisplayWidth

私がテストしたすべてのデバイスで動作します(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) 、エミュレーターと同様に、エミュレーターの出力は解析の良い例としてはあまりにもきれいですです。

31
Nisan.H
dumpsys window displays

このようなものを示しています:

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

別の方法:

dumpsys display

また、次のような興味深いものも示しています。

mDefaultViewport=DisplayViewport{valid=true, displayId=0, orientation=0, logicalFrame=Rect(0, 0 - 1080, 1920), physicalFrame=Rect(0, 0 - 1080, 1920), deviceWidth=1080, deviceHeight=1920}

最後になりましたが:

dumpsys power

のようなものが表示されます

Electron Beam State:
  mPrepared=false
  mMode=2
  mDisplayLayerStack=0
  mDisplayWidth=1080
  mDisplayHeight=1920
  mSurfaceVisible=false
  mSurfaceAlpha=0.0

mDisplayWidthとmDisplayHeightのgrepに簡単に使用できること

20
chr0m4k3y

ADBから必要な情報を取得するには、コマンドラインから次のコマンドを実行すると、接続されたデバイスに関する多くの有用なプロパティが返されます。

> adb Shell getprop

これらのプロパティをフィルタリングするには

unixではgrepを使用します

> adb Shell getprop | grep density

windowsでは、次のような検索を使用します

> adb Shell getprop | findstr "density"

返される値は次のようになります

[ro.sf.lcd_density]: [240]

画面サイズについては、密度の代わりにディスプレイを配置します

10

仕事は良い:

dumpsys window | grep Display

return:ディスプレイ:init = 320x480 cur = 320x480 app = 320x480 rng = 320x295-480x455

1
Alex

このコードで画面の寸法を取得できます:

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

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


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

上記のコードでDisplayを取得したら、 DisplayMetrics を使用して密度を取得できます。 DisplayMetricsは、高さと絶対表示も提供します。

0
Narcís Calvet

Adb Shell dumpsysの出力を見てください。画面サイズは、他の多くの情報とともに数回表示されます。

...今はオフィスにいますが、携帯電話では動作しますが、Galaxyタブレットにはありません。くそー.

0
android.weasel