2012年2月25日土曜日

ADT 17 Preview メモ

ADT 17 Previewをインストールしてみた。
ダウンロードと変更点の詳細は↓から。

以下、気になった変更点。
Network Statistics

使い方
DDMSパースペクティブを開く
[Window]-[Show View]-[Other]を開き[Android]-[Network Statistics]を選択
Devicesから測定したいパッケージ名を選択してNetwork Statisticsの[Start]ボタンを押下

Totalは灰色、タグを設定した処理の通信量は色分けして表示される。
タグの設定方法は下記。
TrafficStats.setThreadStatsTag(0xF00D);
try {
// make network request using HttpClient.execute()
} finally {
TrafficStats.clearThreadStatsTag();
}

Proguard
設定ファイル名が変わった?
proguard.cfg → proguard-project.txt
設定ファイルが分割された?
<android-sdk-path>\tools\proguard\proguard-android.txt
Proguardの設定ファイルを読みこなせないので詳しいことはわかりません...

Lint
いろいろ変わったらしい...

Export Screenshot from the Layout Editor
Layout Editorから右クリック-[Export Screenshot...]でLayout Editor上画面レイアウトのスクリーンショットが保存できる。

Androidアプリのデフォルトアイコン
ic_launcher.pngが↓に変わった。

/res/drawable-xhdpi
新規Androidプロジェクトの作成時に生成されるようになった。

以上。

2012年2月8日水曜日

デバッグビルドとリリースビルドで処理を変える方法

2012/05/15追記
↓その2書きました。こちらの方がシンプルです。
デバッグビルドとリリースビルドで処理を変える方法(2)
http://neta-abc.blogspot.jp/2012/05/2.html

コード
MainActivity.java
public class MainActivity extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        if (DebugUtil.isDebuggable(getApplicationContext())) {
            Log.e(getClass().getSimpleName(), "Debug Build");
        } else {
            Log.e(getClass().getSimpleName(), "Release Build");
        }
    }
}
DebugUtil.java
public class DebugUtil {
    public static boolean isDebuggable(Context context) {
        PackageManager manager = context.getPackageManager();
        ApplicationInfo info = null;
        try {
            info = manager.getApplicationInfo(context.getPackageName(), 0);
        } catch (NameNotFoundException e) {
            return false;
        }
        if ((info.flags & ApplicationInfo.FLAG_DEBUGGABLE) == ApplicationInfo.FLAG_DEBUGGABLE) {
            return true;
        }
        return false;
    }
}

AndroidManifest.xmlのapplicationタグ内でandroid:debuggableをtrue/falseしてデバッグビルドとリリースビルドを切り替えると思っていましたが、Eclipseから実行した場合は自動でandroid:debuggable="true"となるようです。

上記コードで以下を確認しました。
・Eclipseから実行した場合
  Debug Buildのログが表示される。
・Export Signed Application Packageで作成したAPKファイルをインストールして実行した場合
  Release Buildのログが表示される。

参考にしたサイト
Tech Racho
「Androidでリリース時にデバッグログをオフにする方法」
http://techracho.bpsinc.jp/bps/2010_06_28/1946
Y.A.Mの雑記帳
「Android SDK Tools, Reviison 8」
General notes: "true debug build をサポート。..."の部分
http://y-anz-m.blogspot.com/2010/12/androidsdk-tools-reviison-8.html