Hatena::Groupandroid

dann@android

2009-07-13

開発者としてAndroidの気になる点

開発者としてAndroidの気になる点 - dann@android を含むブックマーク はてなブックマーク - 開発者としてAndroidの気になる点 - dann@android

GoogleはWebにアクセスする利用者が増えればいいわけで、積極的に有料アプリを売る事に積極的になる理由が皆無ってところが、開発者的にはどうも気になるなぁと。Googleからすればアプリは無料でくばって使う人が増えてくれればいいわけで。iPhoneと比べてAndroidのmarketのやる気がない感じになってるのも、そこら変に理由があるんだろうなぁと。

あともう一つは、端末が増える事で、異なる端末毎に対応のためのコードが必要になったりするだろうなぁという点で、若干いばらの道がまってるだろうなという。

Androidの面白さ

Androidの面白さ - dann@android を含むブックマーク はてなブックマーク - Androidの面白さ - dann@android

端末としての完成度考えれば、現状の端末は圧倒的に負けているけれど、色んなところから端末がでる可能性があるというところのオープンさが魅力。色んな端末がでるから3年くらいの長い目でみればトータルでAndroidがのった携帯の利用者数はそれなりの数になるんじゃないかなぁというところに、開発者としての面白さがあるかなぁと。

現状で端末の出来は悪いけど、長い目でみれば、どっかがいい端末だすんじゃないかという期待はあまいのかなぁという気もしつつ。

iPhone vs androidの違和感

iPhone vs androidの違和感 - dann@android を含むブックマーク はてなブックマーク - iPhone vs androidの違和感 - dann@android

Google携帯といわれて Androidが前面にでてきてるけど、OSなんてそのうち隠蔽されてユーザーからは見えなくなるだろうなぁと。Symbian携帯とか言わないように、もっと色んな端末がでればでるほどiPhone vs androidなんていう風にはいわれなくなるだろうなぁと。

2009-07-11

androidのパフォーマンスまわり

01:21 | androidのパフォーマンスまわり - dann@android を含むブックマーク はてなブックマーク - androidのパフォーマンスまわり - dann@android

以下のbest practiceと、Google I/Oの動画みるのが吉。

http://developer.android.com/guide/practices/design/performance.html

http://d.hatena.ne.jp/dann/20090622/p1

めちゃくちゃJavaっぽくない感じの実装になりますが、パフォーマンスを維持するにはいたしかたないって感じですかね。

モバイルでバイス向けのWeb APIはJSONで

01:10 | モバイルでバイス向けのWeb APIはJSONで - dann@android を含むブックマーク はてなブックマーク - モバイルでバイス向けのWeb APIはJSONで - dann@android

基本的にモバイル系のデバイスのXML系処理は、処理性能とメモリ制約の関係からXML関係のライブラリのサポートはあまりありません。

割と既存ライブラリは、DOMとかでXMLをつくって、リクエストを生成するので、DOM系のライブラリ使ってる物は、ライブラリを修正してandroid用にportingしないといけません。そのため、APIがAtomPubとかだとそれをサポートするのに既存ライブラリをそのままでは使えずに、自前で作っていく必要があり、作り込みが多くなるのでなかなか面倒ですね。

WebサービスのCRUDAPIJSON形式のAPIがあると、モバイルデバイス用のアプリを作るのが簡単になりますね。

POST時にRequestのContent-Length headerが落ちる件

23:35 | POST時にRequestのContent-Length headerが落ちる件 - dann@android を含むブックマーク はてなブックマーク - POST時にRequestのContent-Length headerが落ちる件 - dann@android

うーん、android付属のHttpClientのバグっぽいなぁ。

  • HttpPostをつかって、Postすると、Content-Lengthがheaderがつかない
  • Content-Length headerを明示的に設定すると、既に設定されているといってClientProtcolExceptionが発生

抜け道があるのかソース読まないとわからず。パッチ書いときたいな。このせいで1時間くらい色々ソース読んだりとはまった...

# 結局、RequestContentをDefaultHttpClientで参照しているメソッドをoverrideして対処。RequestContent中で、reuqestに明示的にContent-Lengthが設定されていると、ProtcolException投げるようになってる。

emulator上でsdcardを使う方法

14:28 | emulator上でsdcardを使う方法 - dann@android を含むブックマーク はてなブックマーク - emulator上でsdcardを使う方法 - dann@android

作り方

  • mksdcard 128Mb sdcard_test

emulatorでの指定の仕方

ADV ManagerでADVつくる時に、上記のsdcard_testのパスを、emulator側で指定。

2009-07-10

Checkされたcheckboxの取得方法がわからない><

22:48 | Checkされたcheckboxの取得方法がわからない>< - dann@android を含むブックマーク はてなブックマーク - Checkされたcheckboxの取得方法がわからない>< - dann@android

AlertDiarlog.BuilderでsetMultipleChoicedItemsメソッドをつかってCheckBoxをチェックしたが、OKボタンを押したときに、checkされたcheckboxを取得する方法がわからない... ソース嫁って話な予感も.

# ソース読んだけどとれなそうってことで、チェック状態を外部で管理する事に。うーん、CheckBoxを取得して、そのCheckBoxに状態を聞く方が、自然だと思うんだと思うけどなぁ。

2009-06-27

Handlerのソースを読んでみた

03:29 | Handlerのソースを読んでみた - dann@android を含むブックマーク はてなブックマーク - Handlerのソースを読んでみた - dann@android

androidのソース読み。Handlerの仕組みがわかった。

要するに、UI Threadはシングルスレッドで他のスレッドからいじれないようにしていて、そのUI ThreadでUIを操作させるのだけれど、UIを他のスレッドからマルチスレッド風にいじりたいときにHandlerは使う。

流れは、大体以下のような感じ。

  • messageにcallbackとしてRunnableを設定
  • MessageQueueにMesssageをいれて(あてさきはHandler自身)
  • Looperがmessage queueからmessageとりだして
  • Messageの宛先(Handler)にdispatchして
  • UI Threadでmessageに設定されたcallback(HandlerでpostしたRunnable)が実行される

別スレッド作って、HandlerにRunnable渡すって時点ですごい冗長。これは、もっとフレームワーク側で隠蔽したいなぁ。Handlerなんてのが、ユーザーに見える必要全くないと思う。ここらは作ろう。

# と思ったら、既にクラスがあった。

AsyncTask

http://github.com/android/platform_frameworks_base/blob/4ea496ddcaad107dda890850933423137582ce40/core/java/android/os/AsyncTask.java

やってることは上と同じ。上のクラス内のInternalHandlerを読めば、Hookpointがどう動くかわかる。

2009-06-22

Android@Google I/O

23:01 | Android@Google I/O - dann@android を含むブックマーク はてなブックマーク - Android@Google I/O - dann@android

PerformanceまわりのBKがまとまってる。

本家にまとめた

http://www.youtube.com/watch?v=U4Bk5rmIpic

これは後で。

http://www.youtube.com/watch?v=N6YdwzAvwOA&feature=channel

azurestoneazurestone2009/06/23 14:52BKってなんでしょうか?

danndann2009/06/28 03:30バッドノウハウ !