Adbでデバイスの画面サイズと密度を検出する方法が必要です。解決策がない場合、既存のすべてのAndroidデバイスの画面サイズと密度を含む完全なリストをどこで入手できますか?
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
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) 、エミュレーターと同様に、エミュレーターの出力は解析の良い例としてはあまりにもきれいですです。
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に簡単に使用できること
ADBから必要な情報を取得するには、コマンドラインから次のコマンドを実行すると、接続されたデバイスに関する多くの有用なプロパティが返されます。
> adb Shell getprop
これらのプロパティをフィルタリングするには
unixではgrepを使用します
> adb Shell getprop | grep density
windowsでは、次のような検索を使用します
> adb Shell getprop | findstr "density"
返される値は次のようになります
[ro.sf.lcd_density]: [240]
画面サイズについては、密度の代わりにディスプレイを配置します
仕事は良い:
dumpsys window | grep Display
return:ディスプレイ:init = 320x480 cur = 320x480 app = 320x480 rng = 320x295-480x455
このコードで画面の寸法を取得できます:
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は、高さと絶対表示も提供します。
Adb Shell dumpsysの出力を見てください。画面サイズは、他の多くの情報とともに数回表示されます。
...今はオフィスにいますが、携帯電話では動作しますが、Galaxyタブレットにはありません。くそー.