自由度が高いAndroid開発 1



さて、Androidプログラミングの学習も進行してきました。
そして、気が付いたのが、Androidがモバイルデバイスとしてはあり得ないぐらいにプログラミングの自由度が高いのです。そりゃ、モバイルデバイスなので電池が少ないとか、メモリ少ないとかの制約はあっても、他のOSに見られる不当な制約が無い・・・・とは言いませんが少ないです。
まず、サービスを自分で組める。
通常ならば、あらかじめ用意されたサービスを利用するのは容易ですが、自分でサービスが組めるモバイルデバイスは珍しいですが、Androidでは自分でサービスを組むことが可能です。画面に出てこないバックグラウンドプログラムを作れるということは、携帯電話に新たな可能性を生み出します。
例えばカレンダーシステムを用意して、予定時刻になったらアラームを鳴らす初歩的な使い方から、チャット等を受けとると知らせたり、家の防犯センサーの情報でアラームをならしたり等々いくらでも活用方法はある。
ただ、最大の欠点は電池の消費だ。プログラマが自重しないと、あっという間に電池を使い果たしてしまう。特に携帯電話の無線通信というのは強度な暗号を施してるが故に電池を消費しやすく、頻繁に通信を行うサービスはあっという間に電池を使い果たす。
そして、普通ならば他のアプリケーションのデータへのアクセスは不可能なモバイルデバイスがほとんどだが、Androidではコンテントプロバイダでそれを実現している。普通にデータを書き換えてしまえば、書き換え事故の可能性があるため、プログラムがコンテントプロバイダと呼ばれる物で規則を定義すれば、他のアプリケーションからコンテントプロバイダを経由してデータを読んだり、書き換えることが可能だ。
また、レイアウトやテキストをリソースとして、ソースコードと分離してソースコードの簡素化を図り、さらにはレイアウト編集ツールが立派で、GUIでレイアウト定義を編集できる。(ただ、なぜかGUIツールで全角文字が表示されないというバグが・・・・もしかしたらフォントかもしれないが、いま電源を落としたため確認不可)
また、本によると、AndroidDebugBridge(ADB)経由でエミュレータや実機でのデバッグを行うため、エミュレータバージョンや実機の種類に関わらず、同一の方法でデバッグが可能だ。
いやはや、iアプリ開発からAndroid開発に移るといろいろ感動しますな。確かに、iアプリのSDKもなかなか良かった(というか開発ドキュメントが日本語なのがとてもありがたい)が、エミュレータの性能と、実機デバッグができないorzという壁がね。実機では実行しかできないんで、万一クラッシュすると面倒・・・・。まあ、スマートフォンじゃない上にOS自体の制約がきついんで仕方ない話ですが。
とりあえず、開発のしやすさに感動してます!


Leave a comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA


One thought on “自由度が高いAndroid開発

  • 新井 舞

    舞といいます。

    はじめまして。

    突然の連絡で申し訳ありません。

    Androidについて詳しい方だと思い連絡させてもらいました。

    社会人1年目で、最近Androidの開発に携わっております。

    私が今、任せられているのが私には難しくて・・・

    そこで、いろいろ調べているのですが、解決方法が見つからないため

    お力をお借りしたいと思い連絡をさせて頂きました。

    お聞きしたいことは、『ブログレスダイアログが消えない・・』です。

    状況をお伝えします。

    zipファイルを選択した時に、『zipを展開しています…』の

    プログレスが出力し、その状態で、端末縦横すると

    onPause → onStop → onDestroy → onCreate → onStart →

    onCreateDialog → Thread(runnable)).start(zip開始)→

    zip処理内でtry catch (IOException e1)が起きる → return falseする

    handler.sendMessage(message)にて、Handlerにfalseを返す。

    “展開に失敗しました”のダイアログがでます。

    その後、zipが終了したらzip処理からtrueを返す →

    handler.sendMessage(message)にて、Handlerにtrueを返し、

    “展開が完了しました”のダイアログがでます。

    removeDialog(ID_PROGRESS_DIALOG);を実行する

    この『removeDialog』でプログレスが消えると思いましたが消えませんでした。

    このような流れで分かって頂けるでしょうか?

    実際のソースを見ていただけるのであればお渡し出来ますので、見て頂けませんでしょうか。

    Androidを勉強するために専用アドレスを作りました。
    android_mai@virtualinformer.com

    ツイッターでのやり取りも出来るようにしました
    http://twitter.com/arai_mai

    私の、良き先生になって頂けるとうれしいです。