アプリ紹介文多言語対応確認用メモ。
https://play.google.com/store/apps/details?id=<パッケージ名>&hl=<言語コード?>
<言語コード?>の部分にアルファベット2文字のコードを入れると言語が切り替わる
例えば
ja(日本語)
en(英語)
fr(フランス語)
ただそれだけですが、忘れっぽいのでメモる...
2012年5月20日日曜日
2012年5月3日木曜日
デバッグビルドとリリースビルドで処理を変える方法(2)
デバッグビルドとリリースビルドで処理を変える方法その2です。
以前に書いた方法は以下から。
デバッグビルドとリリースビルドで処理を変える方法
http://neta-abc.blogspot.jp/2012/02/blog-post.html
ADT 17(らしい)から/genの下にBuildConfig.javaが自動生成されるようになっています。
BuildConfig.java
このBuildConfig.DEBUGはリリースビルド時(Export Signed Application Package...)に自動でfalseになってくれる仕組みだそうです。
なので、これを利用してデバッグビルドとリリースビルドで処理を切り替えることが出来ます。
BuildConfigTestActivity.java
上記のコードでデバッグビルド/リリースビルド時にログが切り替わることを確認しています。
因みにWindows環境(のみ?)ではBuildConfig.DEBUGがリリースビルド時にfalseにならないバグがあるようです。
私の環境(Windows 7 64bit/Indigo/ADT 18)でも発生しています。
>Eclipseの[Project] -> [Build Automatically]を外すと回避できました。
Issue 27940: BuildConfig.DEBUG is "true" for exported application package
http://code.google.com/p/android/issues/detail?id=27940
以前に書いた方法は以下から。
デバッグビルドとリリースビルドで処理を変える方法
http://neta-abc.blogspot.jp/2012/02/blog-post.html
ADT 17(らしい)から/genの下にBuildConfig.javaが自動生成されるようになっています。
BuildConfig.java
/** Automatically generated file. DO NOT MODIFY */
package com.example.builconfigtest;
public final class BuildConfig {
public final static boolean DEBUG = true;
}
このBuildConfig.DEBUGはリリースビルド時(Export Signed Application Package...)に自動でfalseになってくれる仕組みだそうです。
なので、これを利用してデバッグビルドとリリースビルドで処理を切り替えることが出来ます。
BuildConfigTestActivity.java
public class BuildConfigTestActivity extends Activity {
private final String TAG = getClass().getSimpleName();
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
if (BuildConfig.DEBUG) {
Log.e(TAG, "BuildConfig.DEBUG = true");
} else {
Log.e(TAG, "BuildConfig.DEBUG = false");
}
}
}
上記のコードでデバッグビルド/リリースビルド時にログが切り替わることを確認しています。
因みにWindows環境(のみ?)ではBuildConfig.DEBUGがリリースビルド時にfalseにならないバグがあるようです。
私の環境(Windows 7 64bit/Indigo/ADT 18)でも発生しています。
>Eclipseの[Project] -> [Build Automatically]を外すと回避できました。
Issue 27940: BuildConfig.DEBUG is "true" for exported application package
http://code.google.com/p/android/issues/detail?id=27940
2012年4月29日日曜日
Android 2.1以上でGridLayoutを使う
準備
1. Support Packageをアップデートする。(2012/4/29現在の最新は revision 8)
2. <android-sdk install path>\extras\android\support\v7\にあるライブラリプロジェクト”gridlayout”をワークスペースにインポートする。
3. GridLayoutを使いたいプロジェクトに上記のライブラリを追加する。
[プロジェクトを右クリック] - [Properties] - [Android] - [Library] - [Add]
使用方法
<GridLayout>の代わりに<android.support.v7.widget.GridLayout>と記述する。
因みに、<Space>も使えるようになる。
<Space>の代わりに<android.support.v7.widget.Space>と記述する。
使い方の詳細は
<android-sdk install path>\extras\android\support\v7\gridlayout\README.txt
を参照。
2012年4月21日土曜日
ボタンにアイコンを表示する
レイアウトファイルで指定する方法
drawableLeft
drawableRight
drawableTop
drawableBottom
でアイコンの位置と画像を指定。
drawablePadding
でアイコンと文字の間隔を指定。
setCompoundDrawablesWithIntrinsicBounds()
でアイコンの位置と画像を指定。
引数はリソースID または Drawableで指定。
setCompoundDrawablePadding()
でアイコンと文字の間隔を指定。
単位はpx。たぶん。。
drawableLeft
drawableRight
drawableTop
drawableBottom
でアイコンの位置と画像を指定。
drawablePadding
でアイコンと文字の間隔を指定。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center"
android:orientation="vertical" >
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:drawableLeft="@drawable/ic_launcher"
android:drawablePadding="10dp"
android:text="drawableLeft" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:drawableRight="@drawable/ic_launcher"
android:drawablePadding="10dp"
android:text="drawableRight" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:drawableTop="@drawable/ic_launcher"
android:drawablePadding="10dp"
android:text="drawableTop" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:drawableBottom="@drawable/ic_launcher"
android:drawablePadding="10dp"
android:text="drawableBottom" />
</LinearLayout>
コードから指定する方法setCompoundDrawablesWithIntrinsicBounds()
でアイコンの位置と画像を指定。
引数はリソースID または Drawableで指定。
setCompoundDrawablePadding()
でアイコンと文字の間隔を指定。
単位はpx。たぶん。。
Button button = (Button) findViewById(R.id.Button);
int left = R.drawable.ic_launcher;
int top = 0;
int right = 0;
int bottom = 0;
// Drawable left = getResources().getDrawable(R.drawable.ic_launcher);
// Drawable top = null;
// Drawable right = null;
// Drawable bottom = null;
button.setCompoundDrawablesWithIntrinsicBounds(left, top, right, bottom);
button.setCompoundDrawablePadding(10);
2012年3月24日土曜日
Android開発環境(再)構築メモ for Windows 7(64bit)
Android SDK r17とADT 17が公開されたので導入したら
下記のExceptionが出るようになる
「Exception while initializing java tooling」
↓
Eclipse再インストール ※ついでなので3.6(32bit)->3.7(64bit)にバージョンアップ
↓
3.7(64bit)起動せず ※Eclipse 64bit動かすにはJDK 64bitが必要?
「Failed to load the JNI shared library "C:\Program Files(x86)\Java\jdk1.6.0_24\jre\bin\client\jvm.dll"」
↓
諦めて3.7(32bit)に
↓
起動するも症状変わらず...
「Exception while initializing java tooling」
↓
調べてみたところworkspaceが壊れてる?模様
http://www.myeclipseide.com/PNphpBB2-viewtopic-t-21638.html
既存のworkspaceをリネームしてバックアップした後
新しくworkspaceを作り直したところ復旧
↓
バックアップしたworkspaceからプロジェクトをインポート
↓
@Overrideアノテーションでエラー出る
↓
調べる
↓
解決
Window->Preferences->Java->Compiler->JDK Compliance->Compiler compliance level
1.5->1.6に変更
※参考にしたページ
Java関連の日記 - Firespeed
「@Overrideのエラーを解決してみた」
次回の再構築時にもハマりそうなので、忘れないようにメモる。
因みにEclipseの設定は下記の通り。
・Android開発向けEclipse設定メモ
http://neta-abc.blogspot.jp/2011/09/eclipse.html
・Eclipse Java ; { の入力
http://neta-abc.blogspot.jp/2011/10/eclipse-java.html
下記のExceptionが出るようになる
「Exception while initializing java tooling」
↓
Eclipse再インストール ※ついでなので3.6(32bit)->3.7(64bit)にバージョンアップ
↓
3.7(64bit)起動せず ※Eclipse 64bit動かすにはJDK 64bitが必要?
「Failed to load the JNI shared library "C:\Program Files(x86)\Java\jdk1.6.0_24\jre\bin\client\jvm.dll"」
↓
諦めて3.7(32bit)に
↓
起動するも症状変わらず...
「Exception while initializing java tooling」
↓
調べてみたところworkspaceが壊れてる?模様
http://www.myeclipseide.com/PNphpBB2-viewtopic-t-21638.html
既存のworkspaceをリネームしてバックアップした後
新しくworkspaceを作り直したところ復旧
↓
バックアップしたworkspaceからプロジェクトをインポート
↓
@Overrideアノテーションでエラー出る
↓
調べる
↓
解決
Window->Preferences->Java->Compiler->JDK Compliance->Compiler compliance level
1.5->1.6に変更
※参考にしたページ
Java関連の日記 - Firespeed
「@Overrideのエラーを解決してみた」
次回の再構築時にもハマりそうなので、忘れないようにメモる。
因みにEclipseの設定は下記の通り。
・Android開発向けEclipse設定メモ
http://neta-abc.blogspot.jp/2011/09/eclipse.html
・Eclipse Java ; { の入力
http://neta-abc.blogspot.jp/2011/10/eclipse-java.html
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
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
↓その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.javapublic 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
登録:
投稿 (Atom)

