2012年1月18日水曜日

[Android]AndroidAnotations

AndroidAnotationsというライブラリ?を最近見かけました。
このライブラリ、Androidで面倒なfindByIdなものとかを全部アノテーションで解決しようとしている。
かつ、スレッドまでアノテーションで処理しできるっぽい。このトップページ見るだけでわくわくしちゃいますね。

コレ使ってみたいけいど、UnitTestとかうまくいくんだろうか。。。

2012年1月13日金曜日

[Android]Application#onTerminateはよばれない?

先日、隣の人に、Application#onTerminateっていつ呼ばれるんですか?って聞かれたので、「メモリ不足のときとかじゃない?」って適当に答えてました。
まぁ、雰囲気的にonCreateと対と読み取れるので、勝手に思ってい込んでいた。というのもあります。

とはいえ、適当に答えるのもアレだし、ちょっと調べてみると、apiリファレンスに、以下のように記載されていました。一部抜粋。

「It will never be called on a production Android device」

雰囲気からいって、実機ではコールバックされない感じ?ということで、隣の人には、「あ、実機じゃ呼ばれないかもらしいよ。」…ってまたもや適当に解答。

しかし、アプリの終わるタイミングは取りたいことがあります。たとえば、AlermManagerの開放であったり、ひらっきっぱのSocketのクローズだったり。メモリ以外のリソースをちゃんとリリースしたですね。
やっぱそういう時は、メインのアクティビティのonDestroyになっちゃうんだろうか...。

2012年1月12日木曜日

[Android]SQLiteのwhere句でnullを引っ掛ける

SQLの常識だと思っていたことが1つ崩れました。
SQLiteだけかもしれませんが、以下の2つはnullがヒット条件になります。


  • select * from foo where bar is null

  • select * from foo where bar <> ''


SQLServerやOracleではis nullじゃないとヒットしない記憶が...

2011年12月22日木曜日

[Android]SDK16のLintつかってみた (その2)

最近会社のマシンでもADT16に入れ替えました。
今日作業中にふと気がついたんですが、Lintってリアルタイムにエラー表示するんですね。
ちょっとびっくりです。で、ADT15と互換性があるらしく、特に設定変更することなく、すんなり動作しちゃいました。ADT14の人は15にすることをお勧めします。

2011年12月15日木曜日

[Android]SDK16のLintつかってみた

とりあえず、ちょっと使ってみた。
1.レイアウトxml(これってlayoutopt?)
 ・リソース使っていないと起こられます
 ・パフォーマンス系の指摘をしてくれる
  Set android:baselineAligned="false" on this element for better performance
  みたいな
 ・ViewGroup系(レイアウト)のなかに1つしかViewが入ってないと教えてくれます
  
2.使ってないを教えてくれる
 ・リソース系(画像とかstringsとか)を教えてくれます。これすごく便利!

3.足りないを教えてくれる
 ・足りないアイコンを教えてくれる(mdpi入れてなかったらばれた)

[Android]ソースの添付

Android SDK 16では、SDK Managerで、SDKのソースがダウンロードできるようになっています。
ダウンロード対象に、ソースを含めると、
 [SDK dir]/sources/android-xx
 (xxはAPIレベル)
にソースがダウンロードされます。ダウンロードできるのはandroid4.0(ICS)のみのようです。

eclipseでプロジェクトに設定された
 Google APIs [Android x.x]
  android.jar
に「ソースの添付」でこのフォルダ指すと、IDEから直接参照できるようになります。
べんりー。

[Android]ADT16?

Android4.0(ICS)がリリースされてから、まだそれほどたっていませんが、今日またADT(SDK)がバージョンアップした模様。以下、変更点。
 ・Lint 導入された。
 ・エミュレータでセンサーが使えるようになった
 ・Macでカメラサポート
みたいです。

Lintはあの、C言語とかで有名なLintなら、コンパイラーより厳密なチェックをしてくれることになるので、導入する価値がありそう。