2012年1月9日月曜日

[Android TIPS] デバッグに有用な情報を取得する

前回の更新から1ヶ月半あけてしまった... まだ2回目なのに...
というようなことは最初から予想できたので気を取り直して... ;-)

今回は開発者がデバッグする際に有用になる情報を取得する方法です。

青空読手では下記の場合にデバッグ情報を GAE 経由で自分の Gmail にメールを投げています。

  • UncaughtExceptionHandler で補足したエラーが前回起動時にあった場合
  • 設定画面からコメント機能を通じてメッセージが送られた場合

収集しているデバッグ情報は下記のとおりです。

  • 端末情報
    • ブランド
    • 製造元
    • モデル
  • OS 情報
    • バージョン
    • SDK
    • ロケール
  • アプリ情報
    • バージョン
    • SharedPreferences の設定値

これらは下記のようなメソッドにより収集可能です。

public static String getDeviceInfo(Activity activity)
{
 String brand = Build.BRAND;
 String manufacturer = Build.MANUFACTURER;
 String model = Build.MODEL;
 
 DisplayMetrics metrics = new DisplayMetrics();
 activity.getWindowManager().getDefaultDisplay().getMetrics(metrics);
 int w = metrics.widthPixels;
 int h = metrics.heightPixels;
 
 return String.format("%s - %s - %s (%dx%d)", brand, manufacturer, model, w, h);
}

public static String getOsInfo()
{
 String relese = Build.VERSION.RELEASE;
 String sdk = Build.VERSION.SDK;
 Locale locale = Locale.getDefault();
 
 return String.format("%s (api: %s) %s", relese, sdk, locale);
}

public static String getVersion(Context context)
{
 try
 {
  PackageManager manager = context.getPackageManager();
  PackageInfo packInfo = manager.getPackageInfo(context.getPackageName(), 0);
  return packInfo.versionName;
 }
 catch (Exception e)
 {
  e.printStackTrace();
 }
 return "1.0.0";
}

とれる情報はこんな感じです。

  • KDDI - HTC - PC36100 (480x800), 2.3.4 (api: 10) ja_JP
  • KDDI - HTC - ISW12HT (540x960), 2.3.4 (api: 10) ja_JP
  • KDDI - KYOCERA - ISW11K (480x800), 2.3.5 (api: 10) ja_JP
  • KDDI - FUJITSU TOSHIBA MOBILE COMMUNICATIONS LIMITED - IS04 (480x854), 2.2.2 (api: 8) ja_JP
  • KDDI - FUJITSU TOSHIBA MOBILE COMMUNICATIONS LIMITED - ISW11F (720x1280), 2.3.5 (api: 10) ja_JP
  • KDDI - PANTECH - IS06 (480x800), 2.2.1 (api: 8) ja_JP
  • KDDI - SHARP - IS11SH (540x960), 2.3.3 (api: 10) ja_JP
  • samsung - samsung - SC-02C (480x800), 2.3.3 (api: 10) ja_JP
  • docomo - Sony Ericsson - SO-01C (480x854), 2.3.2 (api: 9) ja_JP
  • docomo - Sony Ericsson - SO-01D (480x854), 2.3.4 (api: 10) ja_JP
  • docomo - Sony Ericsson - SO-03C (480x854), 2.3.4 (api: 10) ja_JP
  • DOCOMO - FUJITSU - F-01D (1280x752), 3.2 (api: 13) ja_JP
  • dell - Dell Inc - 001DL (480x800), 2.2.2 (api: 8) ja_JP
  • softbank_jp - HTC - 001HT (480x800), 2.3.3 (api: 10) ja_JP
  • SBM - SHARP - SBM003SH (800x480), 2.2.1 (api: 8) ja_JP
  • LGE - LGE - L-04C (320x480), 2.2.2 (api: 8) ja_JP
  • acer - Acer - E140 (240x320), 2.2 (api: 8) ja_JP
  • Huawei - HUAWEI - Ideos (240x320), 2.2.1 (api: 8) ja_JP
  • ZiiLABS - Creative Technology Ltd - ZiiO7 (800x480), 2.2.1 (api: 8) ja
  • emxx - renesas - Full Android (800x480), 2.2.1 (api: 8) ja_JP

上記メソッドではアプリのバージョンは AndroidManifest.xml の android:versionName 属性の値がとれてきます。

そんなかんじー。

0 件のコメント:

コメントを投稿