Android技術者認定試験を受けてきた
Android技術者認定試験には、分野や難易度に応じていくつかの区分が設けられていますが、現時点で受験できるのは、「Androidアプリケーション技術者認定試験(ベーシック)」のみ。結果は合格でした。
私のスペックは、
マーケットに出したアプリはありません。意識してコードを読み書きしたのは、仕事で使いようになってからなので、実質経験は6ヶ月でしょうか。試験対策本は、国内で出版されている3冊を全て読みました。
Androidアプリケーション技術者認定試験 ベーシック対策実践問題集
- 作者: Androidアプリケーション技術者認定試験対策委員会,Open Embedded Software Foundation,日経エレクトロニクス
- 出版社/メーカー: 日経BP社
- 発売日: 2010/11
- メディア: 単行本
- 購入: 2人 クリック: 93回
- この商品を含むブログ (7件) を見る
徹底攻略 Androidアプリケーション技術者認定試験ベーシック問題集 (ITプロ/ITエンジニアのための徹底攻略)
- 作者: ACE試験対策委員会,Open Embedded Software Foundation(OESF),株式会社ソキウス・ジャパン
- 出版社/メーカー: インプレスジャパン
- 発売日: 2011/06/17
- メディア: 単行本(ソフトカバー)
- 購入: 1人 クリック: 31回
- この商品を含むブログ (7件) を見る
携帯OS教科書 Androidアプリケーション技術者ベーシック
- 作者: 有限会社ナレッジデザイン山本道子
- 出版社/メーカー: 翔泳社
- 発売日: 2011/12/17
- メディア: 単行本(ソフトカバー)
- 購入: 1人 クリック: 27回
- この商品を含むブログ (6件) を見る
どの参考書もやって良かったと思うけど、どれか1冊と言われたら3冊目の本かな。他の2冊に載っていないことが書かれていて、試験にも出題されていました。
試験の難易度は思ってたより難しかったですが、Androidアプリケーション開発の知識を体系的に学ぶには良い試験だと思います。3冊の対策本を読んでおけば出題範囲はほぼ網羅できますが、対策本に載っていなくて出題されたのは、タブの使い方でした。1問だけでしたが、気になる人はチェックしておいた方が良いかもしれません。
EclipseのAndroidビルドターゲットが表示されない
EclipseでAndroidプロジェクトを作成するとき、プロジェクト名を入力したあと、Androidのビルドターゲットを一覧から選択しますが、インストールされているはずのAndroidビルドターゲットが表示されませんでした。AndroidSDKを再インストールしてもだめ。でも、
> android list targets
とするとちゃんと表示されます。
ググると、「ウインドウを最大化すると幸せになれます」的なことがたくさんヒットしますが、これは古いADT向けの解決方法であって、最近のADTでは幸せになれません(もちろん試した)。
長い時間悩んだ結果の解決方法は、
> eclipse.exe -clean
でした。
もうがっかりです。
INSTALL_FAILED_INSUFFICIENT_STORAGE
Android4.0のエミュレータで開発をしていたら突然以下の例外が発生しました。
Installation error: INSTALL_FAILED_INSUFFICIENT_STORAGE Please check logcat output for more details. Launch canceled!
Logcatを見ても良く分からない。
Google先生に聞いてみると、皆さん困っている様子だけど、やっぱり原因が良く分からない。解決方法も、エミュレータ起動時のオプションに
-partition-size 1024
を付けたら直ったとか、作成中のアプリケーションをアンインストールしたら直ったとか様々で、解決方法も良く分からない。サイズの大きなアプリケーションを作っているわけではないので、容量が足りないということもなさそう。
色々試してみた結果、私の場合は、AVDを作り直して、デフォルトでインストールされているアプリケーションを削除したら直りました(もしかしたらデフォルトアプリケーションの削除は関係ないかもしれない)。
一応、直ったけど、原因が良く分かりません。
Macでslコマンド
MacOSX(Lion)でもslコマンドが実行できます。slコマンドは、lsコマンドをミスって、slと打った時に出てくるジョークコマンドです。もちろん標準では入ってないので、以下のような感じでインストールします。
$ curl -O http://www.tkl.iis.u-tokyo.ac.jp/%7Etoyoda/sl/sl.tar $ tar xvf sl.tar $ cd sl $ make $ sudo cp -p sl /usr/local/bin/
これで、
$ sl
とすると、こんな感じで実行されます。
一度実行されるとCTRL+C等で中断することはできませんので、通過するまで待たなければいけません。忙しいときこそ和みます。
Android4.0でCursor使用時に例外が発生する
Android4.0で、カーソルを使用しているActivityAからActivityBに遷移して、ハードウェアの戻るボタンでActivityAに戻ったとき以下の例外が発生しました。
java.lang.RuntimeException: Unable to resume activity java.lang.IllegalStateException: trying to requery an already closed cursor
ActivityAで、
startManagingCursor(cursor);
としていると、カーソルの管理をAndroidに委譲できるが、これが原因となっているようです。ドキュメントを見ると確かにstartManagingCursor(cursor)は、deprecatedとなっていました。
ドキュメントには、CursorLoader()を使えと書いてありますが、カーソルの管理をAndroidに委譲していたから、例外が発生しているので、素直に自前で管理してあげれば良いようです。なので、onDestroy()で
cursor.close();
としてやると解決しました。