2013年5月17日金曜日

[Android] Android Studio のインストール

Googlo I/O 2013 でAndroidの新しい開発環境「Android Studio」が発表されました。
ニュース - Google I/O 2013で音楽配信サービスや開発ツール「Android Studio」など発表:ITpro

プレビュー版ではありますが、すでにダウンロードが可能とのことです。さっそくダウンロードしてみます。
Getting Started with Android Studio | Android Developers





ダウンロード、インストールは迷うことはないですね。
(起動のときにMacの制限で「開発元が〜」云々とダイアログが出る場合がありますが、2本指クリック(右クリック)から「開く」を選択すれば開けます)



まだ全然使っていなくて感想らしい感想は言えないのですが、補完が軽快でとても良い感じでした。ショートカットがEclipseとは違う点は慣れなければいけませんが、慣れたらEclipseより効率よく開発ができそうです。

Vim化するプラグインもあるようですし、少しずつ慣れていって移行を検討しようと思います。
JetBrains Plugin Repository :: IdeaVim

それにしても、発表されて1日も経っていないのに、Android Studio関連の記事が結構見つかりますね。皆さん新しい開発環境に期待しているということなのしょうか。もちろん、僕も期待しています。がんばれ、中の人たち。

2013年5月8日水曜日

[Android] 高速エミュレータ

今さらですが、Androidのエミュレータを高速化してみました。
最初に職場のMacで試してみたところ、思っていた以上に高速だったので自宅のMacにも適用した次第です。
今まで使っていなかったのはすごく損した気分です。本当に速いです。

いろいろと手順がかかれたサイトがたくさんあるので、設定手順は割愛します。
「<SDKのインストールディレクトリ>/extras/intel/Hardware_Accelerated_Execution_Manager/IntelHAXM.dmg」を開いて、その中のものをインストールするのがキモみたいですね。

以下は参考にさせていただいたサイトです。

* 噂の爆速エミュレーター(android)を試してみたがマジで早かった件。 | ウェブ制作日記
* しずくくんのAndroidでゲームプログラミングしてみたいなblog : MacでAndroidエミュレータを高速化

2013年4月25日木曜日

[Android] 続・データ通信接続状態の監視

昨日の調べ物の続き。
やはりREAD_PHONE_STATEはいただけない。
ということで、ConnectivityManagerを使って監視ができないか調査しました。

ConnectivityManager | Android Developers
http://developer.android.com/reference/android/net/ConnectivityManager.html

TelephonyManagerのように、定期的にイベントを返してくれるメソッドは無さそうな感じなので、自分でポーリングしてみることに。
5秒に1回ConnectivityManagerのgetAllNetworkInfo()を呼んでみました。うん、取れますね。

実際に機能として組み込む際はこんなに情報要らないのでgetActiveNetworkInfo()でも良さそうな気がします。
ConnectivityManagerならパーミッションも「ACCESS_NETWORK_STATE」で済みますしね。

↓サンプルはこちらです
https://www.box.com/s/5g9mi6w82k6u88k07ars

2013年4月24日水曜日

[Android] データ通信接続状態の監視

 同僚から「ネットワークの接続状態が変化したことを知る方法を知らないか」と聞かれたので、このあたりのクラスが使えるんじゃないか、ということでConnectivityManagerを伝えました。

ConnectivityManager | Android Developers
http://developer.android.com/reference/android/net/ConnectivityManager.html

自分としては試したことのないクラスだったので、勉強がてら調べて見ることにしました。すると、ConnectivityManagerではなくて、TelephonyManagerで状態変化の監視ができるらしいことがわかりました。

TelephonyManager | Android Developers
http://developer.android.com/reference/android/telephony/TelephonyManager.html

listen()というメソッドを使うことで、いろいろな状況の変化をイベントとして受け取れるようになります。とりあえず、同僚の求めているものとしては十分そう。ManifestにREAD_PHONE_STATEのパーミッションを書かないといけないのが、ちょっとあれですが。

↓サンプルコードはこちらです。
https://www.box.com/s/4ppsdxj33nhehu69hlk9

2013年4月12日金曜日

[Android] フォントを変更してみた

以下のサイトを参考にさせていただいて、Androidアプリで表示するフォントを変更するサンプルアプリを作ってみた。

オリジナルフォントを設定する方法– Android
team-hiroq http://team-hiroq.com/blog/android/android_use_original_font.html

スクリーンショット

簡単にできるんですね。

そのときのコードはこちら。
https://www.box.com/s/1j629iw82vcm61n0uytc
※サンプルにフォントファイルは含まれていません。

2013年3月23日土曜日

アリスとボブのGit入門レッスン 読了

「アリスとボブのGit入門レッスン」を読み終えました。



とても読み易い本でした。
Git初心者のアリスが上級者のボブに教わる形でいろんなGitコマンドを覚えていきます。
コマンドを実行し起こりがちなトラブルが発生した場合の対処方法も解説されています。

ただ、ところどころで誤記(じゃないだろうか?と思う箇所)が気になりました。
ハッシュ値の誤記?と思われる箇所もありました。
正誤表(https://github.com/Alice-Gits/Support)には記載がないので、もしかしたら自分の理解がアレなだけかも知れません。
以下、気になった箇所です。

81ページ 上から9行目 (ボブのセリフ)
「ほら、最新のコミット=HEADが「cf9e7da "showメソッドの…」
と記載されていますが、直前のコマンドでは
「6a4f43a (HEAD) showメソッドの…」
となっていて、ハッシュ値が一致しません。
cf9e7daは出てきていないので多分誤記なんじゃないかなぁ、と思いながら読み進めました。

186ページ
上のgit treeの結果と、下のgit treeの結果(?)のハッシュ値が全然違うのでギョッとしました。ハッシュ値って変わらないですよね?

272ページ 下から12行目
細かいですけど、「git verify-pack -v」の後が「.Git/…」になってるけれど小文字の「.git/…」のはず。


まぁ、細かいところは気にせずに、(僕のような)初級者は読むと良いと思います。
gitへの理解が格段に進むと思います。

2013年2月21日木曜日

Conversion to Dalvik format failed with error 1

仕事で開発しているアプリで、apkを出力する際に以下のエラーメッセージが表示されて、apkが作成出来ない状態になりました。
Conversion to Dalvik format failed with error 1

このエラーメッセージで検索すると、同じ症状に遭遇している人は結構いるらしいことがわかります。
ただ、どのサイトも解決策がはっきりしない印象です。
この症状について書かれているのはだいたい以下の点です。

・Androidのソース形式のライブラリを参照するプロジェクトで起きている
・プロジェクトのcleanを行ったら直った
・Eclipseに-cleanオプション付けて起動し直したら直った
・binとgenディレクトリを削除したら直った

自分もこのあたりは試したのですが、直りませんでした。
その後、いろいろ試しているうちに、binの中のファイルをたまたま開きました。すると、Eclipseから同期されてない状態になっていたのです(refreshしろと言われる状態)。
なんとなくあやしいと思い、binディレクトリをリフレッシュした後、apkの作成を試してみると…ちゃんと出力されるではありませんか!

ただ、これで完全に解決したわけじゃないのですよね…。
その後、プロジェクトをcleanしたら、また同じ症状が…。またbinをリフレッシュしたり、もう一回cleanしてみたりしていたら、再びapk作成が成功…。よくわかりません。
原因を特定出来るようなエラーメッセージがどこかに出力されてると良いんですが…(されてるけど英語を読めてないだけかな…?)。
一応apk作成に成功する(こともある)ようになったので、あまりコレばかりに時間をかけるわけにもいかず、よくわからないまま、また必要性になったら調べることにしました。
 うーん、どうもすっきりしません。

ご存知の方がこの記事を読まれましたら、コレどうしたら良いのか是非とも教えてくださいませ。よろしくお願いします。

追記:
[menu - Project - Build Automatically]のチェックを付けていると失敗しやすいような気がします。