スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

AdMobを使ってみた











AdMobといえば、よくあるAndroidアプリの上とかにくっついている広告です。

アプリを提供したいけど…とても有料アプリとしては使ってくれなそう…
でも収入も得たい!

そうなるとこういった選択肢しかないでしょうね。





私の動作確認環境

端末:X06HT(Desire)
OS:2.2(公式っつーかrootも取ってない)
AdMobSDK:Ver 4.1.0

特にAdMobのSDKのバージョンが古いと、全くもって導入方法が変わるので注意





必須準備

SDKの用意…
AdMob行って登録して適当に貰ってきましょう。
ついでにパブリッシャーIDなるものも適当に貰ってきましょう。
http://jp.admob.com/

AdMob SDK download とかでググれば、親切丁寧に教えてくれているサイトも見つかるかと。


続いて…以下の通りに作業を進めるだけw
http://code.google.com/intl/ja/mobile/ads/docs/android/fundamentals.html

ここで忘れてはいけないのは以下二つ
http://code.google.com/intl/ja/mobile/ads/docs/android/fundamentals.html#adactivity
http://code.google.com/intl/ja/mobile/ads/docs/android/fundamentals.html#permissions

Permissionの設定は、広告データ取ってきたり広告に飛んだりするので
当然必要ですが、思わず忘れてしまいそうなのが、
com.google.ads.AdActivity というアクティビティを宣言すること
だと思います。

なお、上記のドキュメントの通りきっちり書きましょう。
AdActivityを宣言し忘れたり、configChangesの内容を端折ったりすると、コンパイル段階でエラーになりましたw





XMLだけで表示する場合

http://code.google.com/intl/ja/mobile/ads/docs/android/banner_xml.html#defineadview

上記の 「Defining a com.google.ads.AdView」の項目にあるXMLをコピって終了。
コピった先がmain.xmlとかなら、あとはsetContextView( R.layout.main)を適当に呼べばよし。
ads:adUnitIdには、AdMobで発行されたパブリッシャーIDを突っ込むのを忘れずに。





自前実装

http://code.google.com/intl/ja/mobile/ads/docs/android/fundamentals.html#addadview

といってもXMLで書くのをソースで書いて、loadAdを呼ぶだけ。
本当に上記の通り。
AdViewを生成するときに、コンストラクタにAdMobで発行されたパブリッシャーIDを突っ込むのを忘れずに。





上記を実行すると見たことのある、あの広告画面が表示されます。
メデタシメデタシ

とは終わらない…

ここまでの内容だと、本当にドキュメントを流し読みすりゃ出来る内容です。
ぶっちゃけAdMob的に問題だろ?と思うのは…

テストモードに関しての記述が少なすぎること。

てっきりAdMobのサイト上で設定するとかMarketに登録されるまでテスト広告がでるんでしょ?
とか思ってましたよ。


というわけで次は肝心のテストモードに関してです。



テーマ : プログラミング
ジャンル : コンピュータ

tag : android サンプルソース

統合環境私的備忘録



家でも職場でもeclipse様様な状態でAndroidプログラムしてます。こんにちは。

某BREWとかBREWとかBREWとかだとまあ大体エディター直打ちやってますが、
正直統合環境使えるなら使いたいところですね。
え、VC使えって?いや、もうBREWは見なかったことに…


そんなeclipse様に関する私的備忘録。

なんで書こうかと思ったかというと…
workspace切り替えたりなんかアップデートしたり家と会社の環境を
合わせたりする為の備忘録的な意味合いで…


え、設定ファイル持ち歩けってか…
うん、多分それが一番正しいと思います。






といってもそんなにeclipseを端から端までの知り尽くしているわけではないです。
あくまで私が便利だと思い込んでいるところとかだけ…。





フォーマッター設定

人のソースを受け継いだり、webからありがたーくサンプルを頂いたりすると…
他人と私ではソースの書き方が違ったり、webからコピーするとインデントされなかったり…

あれをイチイチ手直しなんかしてらんないですよね~

そんな時は「Ctrl + I」とか「Ctrl + Shift + F」とか押すと幸せになれますよね。
→編集のどっかの項目だったと思いますが、ショートカットしか覚えていない

eclipseに限らず、インデントの修正やフォーマットに沿っての修正をやってくれるというのは
統合環境の機能の中で最高に好きな機能の一つです。

例えばこうなる

class Test{
private int mTest = 0;

Test(int i){
	mTest = i;
}

public int getMTest(){
return mTest;
}
}

上のようなのをとりあえずコピーするとこんな感じ

20110612_1.png

Ctrl + Shift + F を押すと(私の環境は)こうなる

20110612_2.png


す、素晴らしい…

素晴らしいんだけど、これだって自分の普段のフォーマットとは違う可能性があるわけで…


ということで、このフォーマットを設定するのが
ウィンドウ→設定→Java→コード・スタイル→フォーマッター
です。

元々ある設定を自分好み改変して、設定ファイルをExportしておけば、
家でも会社でも素晴らしいフォーマッター生活がエンジョイできます。

ちなみに保管アクションで、終了時にフォーマット掛けてくれるような設定も可能。
私はなんとなくやってませんが。


てかさー、大体の統合環境ってこういう機能満載なんだから…
会社でちゃんとフォーマット決めて使おうぜ!!
と思っていますが、割とエディター大好きな方が多いので浸透しません…


まあちなみに万能ではないです。


// これが
if( bTest)
	bTest = false;


// こうはならない
if( bTest){
	bTest = false;
}



この辺はフォーマット後諦めてエディターで正規表現でgrep掛けて置き換えしてますが…
なんかいい方法無いでしょうか?

2011/07/05 追記
クリーンアップ側の設定で可能でした。




以下ほんとに備忘録

Q:パッケージエクスプローラ上でsvnとかのファイルがいて、どうでもいいパッケージが表示されるんだけど…

A:
・ウィンドウ→設定→Java→外観→パッケージ・エクスプローラおよびプロジェクト・エクスプローラの階層…を折り畳むにチェック入れる
・ウィンドウ→設定→Java→コンパイラー→ビルド→出力フォルダーのフィルターするリソースに「.svn/」とか書き足しておく


Q:Androidプロジェクトにてgen(出力先)フォルダ内のソースに警告でてうざいんだけど…

A:ウィンドウ→設定→Java→FindBugs→フィルター・ファイルでExclude filter fileにgenを省くように書いたxml読ませる

コメントでも書きましたが、自分自身できてませんでした。
むしろ誰か教えてください


Q:TODOとか以外にタスク・タグにコメントが乗るようにしたい

A:ウィンドウ→設定→Java→コンパイラー→タスク・タグを好きに弄る


この辺が環境切り替えたときにやる(やった)ことですかね。





他に
・お前この設定使ってないのかよ、情弱乙www
とかあったら教えてください。





テーマ : プログラミング
ジャンル : コンピュータ

tag : eclipse

GWツーリングとかまとめ











2011年GWの記録





キャンプしたり~
img_2011GW_01.jpg

img_2011GW_02.jpg

伊勢神宮いったり~
img_2011GW_03.jpg

img_2011GW_04.jpg

img_2011GW_05.jpg

img_2011GW_06.jpg

img_2011GW_07.jpg

img_2011GW_08.jpg

img_2011GW_09.jpg

img_2011GW_10.jpg

img_2011GW_11.jpg

img_2011GW_12.jpg

img_2011GW_13.jpg

img_2011GW_14.jpg

紀伊半島走ったり~
img_2011GW_15.jpg

img_2011GW_16.jpg

img_2011GW_17.jpg

img_2011GW_18.jpg

img_2011GW_19.jpg

夜景撮ってみたり~
img_2011GW_20.jpg

img_2011GW_21.jpg

関空見てきたり~
img_2011GW_22.jpg

img_2011GW_23.jpg

福山城とその周辺見てきたり~
img_2011GW_24.jpg

img_2011GW_25.jpg

img_2011GW_26.jpg

img_2011GW_27.jpg

img_2011GW_28.jpg

img_2011GW_29.jpg

パンクしてみたり…
img_2011GW_30.jpg

瀬戸大橋渡ってみたり~
img_2011GW_31.jpg

刈谷ハイウェイオアシスで風呂入ってみたり~
img_2011GW_32.jpg

img_2011GW_33.jpg


ツーリングから帰ってきたらねころびにも行ったし~
img_2011GW_34.jpg

img_2011GW_35.jpg

img_2011GW_36.jpg

img_2011GW_37.jpg



でもうちの猫も可愛いよ!!
img_2011GW_38.jpg

img_2011GW_39.jpg


仲間が増えた。
物欲の一部が満たされた!
通勤経路が変わった!
財布が軽くなった!
img_2011GW_40.jpg

テーマ : バイク
ジャンル : 車・バイク

SDカードにインストール可能なアプリを作る











今月のアクセス履歴見たら、10%近くがGoogle先生のBOTでした。

なぜ?w


2.2からサポートされていているし、どうやって作るんだろうと思っていた
・SDカードにインストール(移動可能)なアプリ


ぐぐったら答えが出てきましたw

techboosterさんの記事



上記記事の通りでした。

internalOnly : 内蔵メモリへのみインストール
auto : 内蔵メモリにインストール。SDカードに移動可能
preferExternal : SDカードにインストール。もちろん内蔵メモリに移動可能

ってのをとりあえず確認。メデタシメデタシ。

sdcard_inst.png


ウィジェットやら無いし、常時起動でもないし~ みたいなものは
とりあえずautoにしておけば良さそうですね。


つっても俺が個人で作って喜ぶアプリなんてサイズ的にもたかがしれていますがww

そういえば preferExternal に設定してあるアプリって見たことないな…

テーマ : プログラミング
ジャンル : コンピュータ

tag : android

マッシュルームアプリとかキャンディアプリを作ってみた



やっぱりAndroidのIMEはシメジですよね~
いつも大変お世話になっております。

ところで最近の和製Android端末なら赤外線モジュール積んでいるんで、アドレス交換とかも楽ですが、
よく考えなくてもDesireさんにはそんなモノありません(´;ω;`)

で、そうするとどうなるか。

・昔ながらのメールで連絡先送るね~

になります。




よね?

そう、自分の電話番号をマッシュルームで呼び出せば便利じゃね?

ってことで今更ながら、マッシュルームアプリを作ってみました。




細かい詳細はadamrockerさんのサイトへ

まずは、上記サイトを読んだ上で、作ってくれている「MushroomTemplate」を参考に…というかほぼコピーというか…



public class MyInfo extends Activity {

	private static final String ACTION_INTERCEPT = "com.adamrocker.android.simeji.ACTION_INTERCEPT";
	private static final String REPLACE_KEY = "replace_key";

	/** Called when the activity is first created. */
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		Intent it = getIntent();
		String action = it.getAction();
		// Simejiからの呼び出し
		if (action != null && ACTION_INTERCEPT.equals(action)) {
			replace( _getMyTelNum());

			return;
		}
		//setContentView(R.layout.main);
		finish();
	}


	/**
	 * 元の文字を置き換える
	 * @param result Replacing string
	 */
	private void replace(String result) {
		Intent data = new Intent();
		data.putExtra(REPLACE_KEY, result);
		setResult(RESULT_OK, data);
		finish();
	}

	/**
	 * 自分の電話番号取得
	 * @return 電話番号文字列
	 */
	private String _getMyTelNum(){
		TelephonyManager ts	= null;
		String returnStr	= null;

		// エラーチェックとかはとりあえず無視
		ts = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);
		returnStr = ts.getLine1Number();

		return returnStr;
	}

}


もとの文字列を置き換えるもなにも、欲しいのは電話番号だけなので、
入力されてきた文字列なんて無視です。(ぉぃ)
ちゃんと作るなら、メソッド内でエラーチェックしたりなんだりしますが、
メンドイのでその辺も放置

Androidで自分の電話番号を取得する為にはTelephonyManagerを使うため、マニフェストに
・< uses-permission android:name="android.permission.READ_PHONE_STATE" />
の記述(パーミッションの指定)を忘れずに

とりあえず実際に動かしてみます。
とりあえず何か入力する画面にカーソルを合わせ…
01_mush_sample.png

おもむろにシメジボタンを押すと、味気ない標準のアイコンとセンスのないアプリ名Topに出てくるw
02_mush_sample.png

とりあえず押して見るとちゃんと電話番号が!
03_mush_sample.png


流石にこれだけじゃつまんないので、ついでにキャンディー化してみましょう。


public class MyInfo extends Activity {

	// マッシュルーム
	private static final String ACTION_INTERCEPT = "com.adamrocker.android.simeji.ACTION_INTERCEPT";
	private static final String REPLACE_KEY = "replace_key";

	// キャンディ
	private static final String ACTION_INJECTION = "com.adamrocker.android.simeji.ACTION_INJECTION";
	private static final String CANDITATE_KYE = "candidate_key";

	/** Called when the activity is first created. */
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		Intent it = getIntent();
		String action = it.getAction();
		// Simejiからの呼び出し
		if (action != null && ACTION_INTERCEPT.equals(action)) {
			replace( _getMyTelNum());
			return;

		}else if(action != null && ACTION_INJECTION.equals(action)){
			_canditate();
			return;
		}
		//setContentView(R.layout.main);
		finish();
	}

	// 中略

	/**
	 * 文字配列の返却
	 */
	private void _canditate(){
		ArrayList telnums = null;
		JSONArray jsons = null;
		Intent data = new Intent();
		String myInfo = null;
		String telhead = null;
		String telbody1 = null;
		String telbody2 = null;

		myInfo = _getMyTelNum();

		telhead = myInfo.substring(0, 3);
		telbody1 = myInfo.substring(3, 7);
		telbody2 = myInfo.substring(7, 11);

		telnums = new ArrayList();
		telnums.add(myInfo);
		telnums.add(telhead + "-" + telbody1 + telbody2);
		telnums.add(telhead + "-" + telbody1 + "-" + telbody2);

		jsons = new JSONArray(telnums);
		data.putExtra(CANDITATE_KYE, jsons.toString());

		setResult(RESULT_OK, data);
		finish();//キャンディーを終了して複数の文字をSimejiに渡す
	}

}

上の方のソースにちょっと足して変更しただけ。
あとはマニフェスト上にキャンディ用のインテントフィルタを追加するのを忘れずに


何か入力する画面にカーソルを合わせ…
04_mush_sample.png

おもむろに「+」ボタン(「ま」の下)を押すと、さっきと同じアプリ名がTopに出てくる
05_mush_sample.png

とりあえず押して見ると今度は変換候補に電話番号が!
06_mush_sample.png



とまあ、すごく簡単にIME拡張出来ましたw
これもステキなIMEソフトを無料で提供してくれているadamrockerさんのお陰です。

そしてやっぱりAndroidは面白い。
家でプログラムヤル気になるしね。

どう考えても BREWとかBREWとかBREWとか…は…、家でヤル気になんね~し…
→コンパイル環境も家にはないけど…


テーマ : プログラミング
ジャンル : コンピュータ

tag : android サンプルソース

プロフィール

駄猫

Author:駄猫

Twitter
その他
最新記事
カテゴリ
月別アーカイブ
検索フォーム
RSSリンクの表示
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。