2011年11月12日土曜日

AFreeChartを動的に動かす

AFreeChartに関する情報が少ないと感じたので少しでも役に立てれば..

【やりたいこと】
Androidアプリでグラフを表示したい。
しかも動的(リアルタイム的な)に動かしたい!
※)TimeSeriesのサンプルをベースとする。

グラフ表示ライブラリを探した所いくつかあると言うことがわかった。
直感的にAFreeChartが一番良さそうな感じがしたので使うことにした!

AFreeChartの導入方法に関しては他のブログで書いている方が
いらっしゃるので割愛します。

サンプルソースを実行すると静的なグラフを表示することは簡単にできます。
動的にするにはAFreeChartが保有しているDatasetにデータを追加してあげると
自動的に再描画される。

なので、最初に思いつく方法としては動的にDatasetを更新して行けばできる、
だとうという方法です。
例えば、別スレッドを用意して100msごとにDatasetを更新するようなプログラムを
作って動かすとあることに気付くと思います。データ数が増えるに連れて、
恐らくGCが高頻度で発生し、
描画に時間がかかりUIスレッドに負担がかかり、
ANRを引き起こす可能性があります。

結果的にDatasetの更新をトリガーとして再描画して動的に見せる方法では、
限界があるということになります。

デフォルトのサンプルアプリだと、生成したAFreeChartインスタンスに
ChartChangeListenerがセットされているので、Dataset更新すると再描画が発生する。
それを抑えるためにはBaseView(511行目前後)でリスナーセットする処理をコメントアウトするか、
リスナーを登録を削除するか、
しないとダメです。

そうすると、Datasetを更新しても再描画されることはなくなります。
この状態だと再描画がなくてリアルタイムに見えません。

現段階での私のソリューションとしては以下のような感じです。

①Dataset更新用スレッド、再描画用スレッドの2つを生成する
②それぞれをstartさせる
③再描画スレッドは定期的にHandlerに対してView#postInvalidateを呼び出すだけ

パッと思いついただけの方法なので、もっと効率のいい方法があったら
ご教授願いますm(_ _)m

再描画スレッドは以下のような感じです。(一部抜粋)
もちろんこのままでは動かないので適宜に補完してください^^;

repaintThread = new Thread(new Runnable() {
  public void run() {
   while (!stop) {
    if (pause)
     pause();
    mainHandler.post(new Runnable() {
     public void run() {
      // repaint();
      timeChartView.postInvalidate();
     }
    });
    try {
     Thread.sleep(interval);
    } catch (InterruptedException e) {
     // TODO 自動生成された catch ブロック
     e.printStackTrace();
    }
   }
  }
 });
 repaintThread.start();

2011年10月13日木曜日

HUAWEI端末でLogCatが動かない

今日は面白いことが分かった!

研究室に届いたばかりのHUAWEIのAndroid端末でLogcatが動かなく、

エラーメッセージ一行のみ出力されてました。

調べたところ面白いことが分かったのでメモしておきます。

他のHUAWEIの端末でも試したところ同じような裏メニューが表示された。

カーネルデバッグが可能にするための設定ができます。

【裏メニューを出す方法】
ダイヤル画面で「*#*#2846579#*#*」とダイヤルするとメニューが表示されます。

Logcatを有効にするためには、
1)LoggingをOnにする
2)Log levelをverboseにする
3)OpenDump & Log でChanging log switchとOpen sleep logを有効にする



情報源はHuawei U8510 IDEOS X3 Forumで、

http://pzieye.centelia.net/blaze/viewtopic.php?pid=124#p124
という記事で討論されていました。

2011年10月3日月曜日

ユーザに優しいUIはいいけど。。。

結果から言いますと、
Androidアプリをユーザに優しいように設計したら広告収入効率が激減しました。

でも一方でアプリのアクティブ数が以前より大分多くなった、
というのが良かった点ですね!

UI設計とマネタイズというのはバランスが大事だと
勉強できました。

2011年9月26日月曜日

Androidアプリで電池消費になるわけ

自作しているAndroidアプリが起動する度にバックグラウンドにプロセスが残っているようで電池を消費し続けるという問題があった。

磁気センサーを使ったあぷりである。
いろいろ調査した結果、原因が判明しました。

【原因】
SensorManagerクラスのregisterListenerメソッドでリスナー登録して、
センサーを使わなくなったらunregisterするってのが本来の使用方法でした。
が、registerListenerメソッドを重複して呼び出してるような処理になっていることに気付いていませんでした。
つまり、特定の操作をするとリスナーが重複して登録されてしまい、
結果として終了処理ですべてのリスナーを解除できなかった、というのが原因でした。


見つかって良かったです。

2011年9月16日金曜日

電池消費アプリから脱出できない。。。

現在Androidマーケットに公開しているアプリで、終了しても電池消費してしまうことが発覚しました。 どうしても解決できません。 センサーはきっちり終了しているのに。。。 バックグラウンドで動いてそうなプロセスってなんだろう...(;´Д`) 同じような問題にぶつかっている人はいるのかな??

2011年8月31日水曜日

m2tvは64ビットカーネルでは動かない

Lionに対応したm2tvのドライバー(1.70)をインストールして、

(*´∀`*)ワクワクしながら起動したら...

「レシーバーが接続されていません」と出たり、
「スキャンしてください」と出る。

おっかしーなーと思ったら、32ビットしか対応していないことを思い出し

カーネルのバージョンをチェックしたら64ビットカーネルモードで動いてた。

確認はシステムプロファイラを起動して、ソフトウェアをクリックして、
右側の項目の「64ビットカーネルと拡張機能」の項目が「はい」か「いいえ」かを確認。

「はい」だとm2tvは動かない!!クソだね(早く対応しろし

m2tvを使うためには以下のコマンドでカーネルを32ビットに設定して再起動する必要がある。以下のページを参考に32ビットモードで起動するようにしましょう。
http://support.apple.com/kb/HT3773?viewlocale=ja_JP&locale=ja_JP

一瞬だけ32ビットモードを試しましたが他のアプリケーションが遅くなったように感じましたので、永続的よりm2tvを使いたいときだけ一時的32ビットモードで起動した方がいいと思います。

2011年8月26日金曜日

m2TVユーザたいへんお待たせしましたって感じですね

24日にようやくLion対応のドライバが出たようですね。
http://www.iodata.jp/lib/product/g/2138_mac.htm

私はまだ試してません。
明日試してみようかと思います!!

すでにアップデートしている方いましたら是非レビューをm(_ _)m

2011年8月23日火曜日

最近ハマってるLancersというサイト

仕事マーケットプレイスLancersっていうサイトは面白い!
いろんな人が仕事の依頼を出して、それに対して提案する。

提案が採用されれば実際に仕事をして報酬をもらうという仕組み。
最近新しい携帯も出て来て、デスクの前に居ながらにしてお小遣いが稼げてしまうw
額は少ないけど、チリも積もれば山になっちゃうということで...コツコツ頑張ってますww

説明するよりも実際に登録してやってみて下さい^^
ちなみに私はコンペ方式の仕事で、ネーミングの仕事が好きです!!!

例えば、新商品のネーミング、新しく立ち上げる会社の名前とかとか
結構面白いんだよねこれが!

大勢の中から採用されると、これがまた快感なんですわ(*´∀`*)

興味がある人は是非ここから公式サイトをみてみてね〜↓(*´∀`)ノシ
Lancers.jp

2011年8月19日金曜日

劇場版NARUTO ブラッド・プリズン

観て来ました!!

NARUTOの映画を観るのは実は初めてw

アニメや漫画をあんまり見てなくても結構楽しめる!

映画で完結するから。

もちろん、アニメや漫画を見ていればキャラ同士の関係が解ってより楽しめます!!

ちなみに明日8月20日(土)の夜は映画ワンピースが地上波でやりますよ〜

楽しみですね!!

2011年8月15日月曜日

AdMobの広告収入が振り込まれました!

現在公開しているAndroidアプリで得られた広告収入がPayPalに振り込まれました!!

23ドルでした!
まだ振り込まれてない分が13ドルくらいあるので、
それを含めると登録料の25ドルを3ヶ月で取り返したことになります!!

なかなかのできだと思います!

これからのモチベーションに繋がりました!!

2011年8月13日土曜日

m2tvのLion対応情報が先月末に発表されましたね

IO-DATAの公式ページでLionの対応が発表されました。
http://www.iodata.jp/news/2011/information/macoslion_hdd.htm

32bitモード限定、データ放送非対応だそうだそうですが、
ドライバが更新されるらしいです。

そういえば、最近気付いたのですがiEPGで録画予約ができなくなってました。
どうしてだろう?
同じ症状発生しているのかな。。。??

画面共有ソフトと共存できないため、勝手にm2tvがダウンする。(これは本当に困ったもんだよ!!!!

Skypeの画面共有は大丈夫みたい。同じテレビを観ながら楽しめますね^^

私個人のIO-DATAに対しての印象はかなり悪くて。
友人がm2tvを購入して10.5にドライバをインストールできなくて、
カスタマーセンターに何回電話してもつながらないという。。。

メールで問い合わせても返事はない。。。

という愚痴になってしました。すみませんorz

ともあれ、お盆明けくらいには対応してくれてるといいな。

2011年8月8日月曜日

トランスフォーマー-ダーク・サイド・ムーン-【ネタバレ注意】

前作に比べてかなりの超大作?な感じがしました。
面白かったのは面白かった!!

ちょっとした感想を述べます。

かなり激しい戦争だったため、オードボッドがまた死んでしまうのが残念orz
ビーは生きてるよ^^

3Dで観たのですが、3Dにするとなんだか建物とか飛行船がおもちゃに観えてしまった...
ちょっとがっかりでした。。。

個人的には2Dで観た方がいいのでは??って想いは抱きました!

もう一つ!
ミカエラがい、い、居なくなってますorz
ショック(≧△≦)


いろいろありますが、今作もオススメです!!!!

2011年8月5日金曜日

AndroidでのスレッドとHandlerの仕組みってどうなってんの?(1)

Androidアプリを開発しているけど、
今スレッド関係のところでどうも仕組みがまだ理解できなくて...

いろいろ調べているところ、以下のようなブログを見つけました。

UIを操作するのにhandlerを使う理由 thread WebViewCoreThread exiting due to uncaught exception

図を見る限りだと、
UI処理しているメインスレッドにキューを飛ばし、
それをHandlerで処理しているのか...

なるほど!

また、どこのブログか忘れちゃったけど

別のスレッドからメインスレッドを操作したい場合、
メインスレッドでHandlerを生成しないと意味がないそうです。

ということは、ジョブを受け付けたいスレッドでHandlerを生成すればよいのか!?
ということが考えられる!!!

これを確かめるために次回はソースを書いて確かめる!!

2011年8月4日木曜日

AGA(男性型脱毛症)始めました

24にして早くも脱毛が進んでます。

本当に困りますね!!

若いうちから脱毛って本当に悩ましい。
テンション下がります。

ダメ元で始めました。

どうせなら前向きに頑張りたい!!

2011年8月3日水曜日

AndroidでMediaPlayerを使ってウェブから取得して再生

以外に簡単にウェブから音楽ファイル(今回はMP3)をダウンロード再生できました。

//※印は適宜に変更して下さい。
String url = "http://****/***/**.mp3";
MediaPlayer mp = new MediaPlayer();
mp.setDataSource(url);
mp.prepare();
mp.start();

これで再生されます。
MediaPlayerを使う場合は状態遷移を随時把握しておく必要があります。
Android APIサイトで見れますので参考までに。

他のファイルを再生したい場合は、
mp.reset()メソッドを呼び出しIdle状態に移行してから、
再度、setDataSource()、start()の順に呼び出すのが正しい手順なのかな??

最後にMediaPlayerインスタンスを使わなくなったら、
mp.release()メソッドを呼び出します。

ちなみに、ローカルファイルの再生も同様の手順です。

rawフォルダにあるリソースを再生する場合はもっと簡単です。
MediaPlayer.create(...)メソッドを使うそうですね。
APIを参考にしてみてください。

これを応用して簡易音楽プレーヤーを作ってみてみよっかな。
APIの練習ですね!

2011年7月31日日曜日

Lionの3本指スワイプでページ間移動

http://veadardiary.blog29.fc2.com/blog-entry-3378.html

上記のページに書いてある通り設定すれば直りますね。

快適になった!

Lionの「再開」機能について

前回の作業の状態を再現してくれるという素晴らしい機能!

そう、それが「再開」

....って起動してたアプリを起動し直すだけだったのか...orz

しかもなんかchromeが起動してたスペースの場所間違えてない??

さすがに観てたタブまでは再現されずにブラウザ自身のセッション機能に依存するのか...

なんか、期待し過ぎたせいか...ちょっとがっかり

2011年7月30日土曜日

Lionのスペース間移動について

4本指でスペース間移動が可能だ

今まで(雪豹)はショートカットによる移動が面倒で使っていなかった

これからは頻繁に使いそうかも

おまけに「再開」機能で作業の状態を継続できる

ログインしてから、スタートアップ項目に登録しているプログラムの実行が速くなった!!

全般的にLionは満足かな。

まだまだいじれてない部分が多いけど

MacBookProにLionを勢いで入れてみた

Lionのアップデートは非常に簡単だ!

AppStoreからLionを購入するだけ

インストールしてまず最初に思ったこと!
マウスの向きが今までと逆なので、設定のマウスから直す
3本指スワイプで「戻る」「進む」操作ができなくなったのが残念
慣れないけどそのうちなれるだろう


でも、悪いことばかりではない!!

スリープにしておく事が多いが、再開時間が明らかに速くなった!!!
これは嬉しい!

UIが全体的に四角みのあるものになったのが違和感あるけど
そのうちなれるかな。。。

2011年7月23日土曜日

Lionへのアップデートをしばらく見送る

Lionがリリースされて盛り上がってるのかな?w
私はiMacでm2tvを使って地デジを見ているが、こんなブログを見つけたのでしばらくアップグレードを見送ることにしました。

Lion対応ドライバがリリースされてからアップデートしますかな...

それよりもMacBook Airを買うかどうかが悩みどころだな〜

2011年7月13日水曜日

中国国籍でマレーシア観光ビザの取得するには

今回マレーシアで開催されるカンファレンスで発表することになり、
観光用のビザを取得しましたが、結構必要書類が面倒だったのでメモしておきます。

前提条件(私の場合)
中国国籍(日本での永住権有り)

必要書類
パスポート (原本)
パスポートのコピー(ご自身の身分によって必要になるページが変わります)
とにかく全てのページをコピーしておけば問題ありません。サイズはA4です。
コピーを忘れると近くのコンビニでコピーしてこいって言われます。
パスポートと同じ名前の口座残高証明
これは通帳のコピーが必要です。これは最終残高のページと名義人の名前があるページのコピーは必須です。サイズはA4です。ちなみに残高は訪問日数x1万円+10万円ないとビザの許可が下りないと言われました。ウェブ通帳の場合でも大丈夫でした。印刷して持っていけばいいです。ただしご本人の名前が入っていないとダメみたいです。
外国人登録原本の写し
私は日本では通称を使っているので、それが原因で必要なのかもしれません。
必須かどうかはわかりません。念のためお近くの市役所で発行してください。200円で発行できます。中国名と通称の両方が乗っていることが必須です。
私はこれを持っていませんでしたが、ビザ受け取りの時に持参すれば大丈夫と言われました。
Eチケット(飛行機のチケット)
これがないとだめです。ちなみに申請に使ったEチケットは返してくれないので1部コピーしておくことをお勧めします。
宿泊先の情報
ビザ申請用紙記入時に必要になります。
ビザ申請用紙2枚
領事館受付窓口でもらえます。
2枚書きます。マレーシア語と英語しか表記してありませんので、掲示板に記入例(日本語版)を見て記入してください。

基本的にビザの受け取りは翌日からで、受付用紙を持っていれば、本人以外でも誰でも受け取りができるらしいです。
申請料金は1500円です。
水曜日の9:30頃に伺ったけど、比較的空いてたので余裕があります。

交通は京王井の頭線の「神泉駅」から徒歩15分程度です。

(注意)情勢によって申請条件に変化がありますので直接大使館に電話でお問い合わせ頂くのが確かです。

2011年7月12日火曜日

MacBook Airの新機種がついに...

Twitterでcent Japanから(http://japan.cnet.com/news/service/35005096/?ref=rss)こんな記事が流れてました。

次期アップルの新製品の番号が流出したとのことです。

Airは4機種で11インチ、13インチで2機種かな?

なんか有力筋情報の匂いぷんぷんなので期待したいですね。

アンドロイドアプリ「メタル探知器」を紹介

自分自身で製作して公開しているアプリを紹介します。

本来はコンパスに使用される磁気センサーを利用して、
磁性体を探知するメタル探知器を作りました。

Android Marketにて公開中です。
https://market.android.com/details?id=jp.tsuyoshi.irondetector&feature=search_result

x軸y軸z軸の3方向で検出される磁気の強さを表示します。

そのうちソースコードを少しずつ公開して行きたいと思います。

2011年7月11日月曜日

たじぶろ始めました。

いろんなとこにぶろぐを開設しては続いていないので、
Bloggerに集約します!ドン!!

基本的にIT関係の記事が多くなると思いますのでよろしく〜!