AdMobについて
2014/07/08 00:20:00そんなわけで、今日はAdMobについて解説します。
自分が広告使ってみようかなと思って使い始めたのが去年の年末で、
最近になってAndroidのアプリをちょこちょこ作り始めました。
そもそもダウンロード数とか少ないので、
毎日0円(ゝω・)v
表示はされてるみたいですが、クリックされないと報酬にはならないみたいですね。
てことで、組み込みとかじゃなくて簡単な概要をお勉強しましょう。
現在Googleでは、
スマートフォウン用のAdMobと
webサイト用のAdSenseで別れており、
このブログの右に出てるのが、AdSenseの広告です。
スマートフォウンのアプリでAdSenseの表示はNGであり表示不可能です(多分)。
そんで、2014年の8月1日からGoogle AdMob SDKが終了するんですって。
従来の組み込み方から、
新しい組み込み方にしないと動かないらしいです。
すでにリリースして組み込んであるやつは引き続き表示されるらしいですが、
新しい組み込み方だと、解像度にフィットしたバナーが表示できますので、
気分的にも新しい方にしておいた方が良いかもしれないですね。
あとAdMobをアップデートした後にいつの間にか(?)AdSenseで集計できるようになってるので、
何がどれくらい収益あったのかがわかりやすいです。
0円だけどね(^ω^)
あとちょこちょこAdMobで不具合が見られるので、
AdMob Japan (公式) - コミュニティ - Google+
をお気に入り登録しておくとよろしいです。
気に入ったら押してね
~こんなアプリ出してます~
ねこトラッカー
2014/06/23 12:57:36Noranekoです。
ということで、以前『GPS TRACKER』を作ったんですが、
ちょっと前に知り合いから、
「これってわざわざブラウザでアクセスしなきゃいけないの?」
と聞かれました。
あれの目的はオフラインでトラッキングをして、PCのブラウザ上で見ることでした。
しかし自分も使ってみて、やっぱりリアルタイムにトラッキングを見たいなぁと思っていて、
ちょっと調べてみたところ、
Google Maps Android API v2
なる物を発見!
しかも以前使ってた、Google Maps API?と違ってリクエスト制限とか全くなし!
素晴らしいですね。
と言いますか、弊猫はAndroid専門でやってますが以前書いた通り、
自分がこんなん欲しいなぁと思った時に作る、日曜大工的アプリしか作っていませ>ん。
なので、AndroidのSDKとかAPIの仕様変更とか全く疎いです。
で上記の『Google Maps Android API v2』ですが、
https://console.developers.google.com/
より登録できます。
と言いますか、登録しないと使えません!
ログインして入ると、作った覚えのない『API Project』というのがあり、
こんな風になっています。
ここで、自分の使いたいAPIを有効にして使う感じですね。
また、左の
APIS & AUTH > 認証情報
でアプリのキーを管理します。
ということで、Android上で完結する
ねこトラッカー
を作りました。
Android2.3.4、512MBの実機でストレスなく動いてます。
Googleの地図に関するAPIはほんと優秀ですね。
あとテストして思ったのですが、このAPIは電波掴まないとこでも大丈夫ぽい?ので、
GPSが傍受できていれば、『ねこトラッカー』でトラッキング情報は記録できます。
これに伴い、『GPS TRACKER』のサービスは終了します。
今後は『ねこトラッカー』に機能を追加していく予定です!
1個つけたい機能があるんですが、仕様がちょっと入り組んじゃうので、
時間がかかりそうでござる...
夏前にできればいいかな?
気に入ったら押してね
~こんなアプリ出してます~
ListViewのお話 Vol.2
2014/05/12 15:04:22ねこに小判を作りました。
数字を打ち込んでエンター押していくだけで簡単に合計がわかります。
また、『便乗値上げチェッカー』を搭載してるので、
便乗値上げしてる店を発見したら店長を呼び出し、
どういうことなのか、小一時間問い詰めることができるでしょう。
それでは以前のListViewのお話です。
ListViewで一件だけ削除は問題ないというとこまで話をしましたが、
ある条件の物を削除するということをした際に問題が発生しました。
for文でindexを使いremoveする時は、
ListView lv;
// アダプターを取得する
OrenoAdapter adpter = (OrenoAdapter)lv.getAdapter();
if(adpter != null){
final int max = adp.items.size() - 1;
// ぐるぐるする
for(int i = max; i >= 0; i--){
// itemを取得
OrenoClass ore = adp.items.get(i);
if(ore != null){
// 削除する条件
if(ore.id == 99){
adp.remove(s);
}
}
}
adp.notifyDataSetChanged();
}
という感じにしましょう!
removeをすると、どうやら構造体が上に詰まる(正しい表現がわからん^ω^)ので、
indexの最大値から0まで逆に回せばおk!
0から回してて、消えてないアイテムがあったり、範囲外エラー出てたりちょっと悩まされてた。
謎が解ければなんてことないです。
あとオブジェクトを取り出した後はnullチェックしましょう。
nullチェックしないプログラマはプログラマにあらずです!
つかadpterを取り出した後に、foreachで回した方がよくね?
と思いやってみましたが、
java.util.ConcurrentModificationException
が発生します^ω^
結局removeをやることで、構造体が変わるのでけつから消せってことですね。
気に入ったら押してね
~こんなアプリ出してます~
Android SDKがおかしぃ。。。
2014/05/06 20:18:56てことで、ちょっと自分の為に作りたいアプリがあったので
Eclipseで新規プロジェクトで作ろうとしたんだけど、固まりすぎワロタwww
...
いやちょっとワロエないかも...
前回のListViewの続きを書きたかったけど、また今度にします。
86対応エミュとかでSDKをアップデートした結果、
『Android SDK Tools 22.6.3』
ていうのが今入ってて、ちょっと調べた感じだと、
Action Barって言う謎の物体が下位のversionでも使用できるようになって、
Android 4.0(API14)未満に対応しようとすると、変なライブラリをインストールするようになりました。
なのでAndroid 4.0未満に対応しなければ良い話なんだけど
私のAndroidが2.3.3なので、作るアプリは基本2.3以上対応なんですよ。
つうことで今回はエラーでまくりでなんもできなくなった!!
ぷんぷん丸プログラマーの皆様に私なりの対処法を伝授します。
本来なら一子相伝ですが、GW最終日なので全員に教えちゃいます!
まず、この変なライブラリをインストールする為に、
Android SDK Manager -> Extras -> Android Support Library
が必要になるので、インストールしておきます。
ここで注意が必要なのですが
これをインストールした時に、昔からAndroidを開発してた人は
SDK\extras\android\compatibility\v7\appcompat
となっている可能性が高いです。
私がそうでした。
上記のパスになってる人は、
一回アンインストールして、もう一度インストールし直しましょう。
SDK\extras\android\support\v7
になっていれば大丈夫です。
それでは、2.3対応のプロジェクトを作ってみましょう
File -> New -> New Android Application
ここのMinimum Required SDKを
『API 9:Android 2.3(Gingerbread)』
にします。
Action Barはいらないので、Themeは『Holo light』辺りで。
Nextを押して行って、Create Activityで
Empty Actibityを選択します。
Activity Name等を決めてFinishを押します。
そうすると、
WARNING: unable to write jarlist cache file ***\appcompat_v7\bin\jarlist.cache
が出て、応答なしになる可能性がかなり高いです。
右上の×を押してEclipseを閉じましょう。
たまに普通にプロジェクトができる時もありますが、ほぼ応答なしです。
閉じたら開きます。
そうすると、プロジェクトディレクトリ(ここでは『Test』とします。)と
『appcompat_v7』 ディレクトリができています。
しかし、強制終了したので『appcompat_v7』が開けないので
右クリックをして、『Open Project』を選択しましょう。
そうすることによって、
『appcompat_v7』と『Test』に赤い×がつきます。
次に『appcompat_v7』をまた右クリックして、『Build Project』を選択します。
多分赤い×が消えます。
そしたら『Test』を同様に右クリックして、『Build Project』を選択します。
これで『Test』の赤い×が消えます。
もし『Test』の方の赤い×が消えていない場合は、
Eclipseを再起動してもう一度『Build Project』を選択してみて下さい。
何回かやれば消えると思われます。
と言うように、私の環境では結構ひどいことになっております。
しかも同じような条件の新規プロジェクトを作ると、
『appcompat_v7_2』、『appcompat_v7_3』と同じ物が作られてしまいます!
これはひどい^^;
一個あれば大丈夫なので、プロジェクトを右クリックして
Properties -> Android -> Library
から『appcompat_v7_*』を選択して『Remove』、
『Add』を押して既存の『appcompat_v7』を選択して、
その下にある『Apply』を押して一番下の『OK』を押します。
最後に『appcompat_v7_*』を削除しましょう。
今までLibraryの仕様が変わったりしましたが、
プロジェクトを作った際に自動でLibraryを追加するということが弊害になっています。
ブログとか見てると、ダウングレードしてる人とかもいますね...
しかもこういう仕様なので、最初に4.0をターゲットにして
後から2.3もターゲットにするとエラーが出まくってコンパイルできません。
なので現在の最新のSDKで何か作ろうと思ってる方は、
下位互換をするかどうかちゃんと決めないと泣きを見ることになるでしょう。
そんなこんなで、Android開発環境を作り直さないといけないかもしれない^ω^#
気に入ったら押してね
~こんなアプリ出してます~
ListViewのお話
2014/04/26 01:32:17それに伴い、Studio nekoでもセール始めてみました^ω^
Google Play ストア見てみてね。
今までのアプリも今月はちょこちょこ更新いれて、
多少は使いやすくしたりとかしてるので試してみてちょんまげ。
ということで、今回はねこったぁを作ってる際に???となったので、
それについてのまとめというか、久々にAndroidのお話をしたいと思います。
まずAndroidのListViewとはなんぞや?
上の画像の赤枠で囲まれたのがListViewという物です。
iPhoneなんかが出てきてよく見かけるようになってると思いますが、
AndroidではListViewと呼びます。
iOSではなんて呼ぶか知らん。
そんで、ListViewを表示するための中身を配列で作ります。
つまりListViewにint型、String型と別の型同士を入れることはできません。
一つの型だけです!!
多分。
通常は独自の型をclass化して使いますね。
それでこの中身をAdapterと言います。
多分。
それでは、簡単なロジックを見てみましょう。
ListView lv = new ListView(this);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, Strings);
adapter.add = "おまえは";
adapter.add = "もう";
adapter.add = "死んでんねんで!";
lv.setAdapter(adapter);
これだけです。
簡単ですね。
しかしListViewで『ねこったぁ』の様に情報をイロイロ表示しようとすると、
ArrayAdapterをextendした独自のアダプタに独自の構造体を作らなければいけません。
ListView lv = new ListView(this);
ArrayList<OrenoClass> list = new ArrayList<OrenoClass>();
// 中略
for(OrenoClass o : orenoclasses){
list.add();
}
OrenoAdapter adapter = new OrenoAdapter(this, R.layout.ore, list);
lv.setAdapter(adapter);
public class OrenoAdapter extends ArrayAdapter<OrenoClass>{
// 中略
}
public class OrenoClass{
// 中略
}
といった感じになります。
まぁここまでは小学生でも知ってることなので、ListViewから削除したい!
今回はこれについて熱く語りたかったので、筆を執りました。
ListViewのある部分を消す場合には、adapterを取り出し操作することでできます。
OrenoClass ore; // 消したいオブジェクトとする
ListView lv;
// アダプターを取得する
OrenoAdapter adpter = (OrenoAdapter)lv.getAdapter();
// 消す
adpter.remove(ore);
adpter.notifyDataSetChanged();
実にシンプルでわかりやすいですね。
でもある機能を入れた時にその事件は起こったんだ...
まさかあんなことになるなんて...
ドス!!
目の前にはただ赤
ぼくの喉からあふれ出す血の赤
最後に思ったのは、一人残った真理はどうするのだろう、ということだった
死体の山の中でただ一人
ぼくは真理が可哀想になった
……真理……
終
気に入ったら押してね
~こんなアプリ出してます~
BLOG内検索
Sun | Mon | Tue | Wed | Thu | Fri | Sat |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
カテゴリー