« ADP1 で ad-hoc 接続成功! | トップページ | En2ch Ver.1.0.5 で CM (CyanogenMod) に対応しました。 »

2009.09.16

En2ch は CyanogenMod では動かず;;

Android 1.6 SDK がリリースされたのもあって、CyanogenMod がどこまで実装されてるのか気になって試してみた。(CyanogenMod は、いつも少し先回りして実装されてるので。)

ら、4.1.10.1 で、新しい Market が入ってました!
ちゃんと登録したスクリーンショットが見れるようになってます。それも日本語で。

 device

ところが、En2ch は、まったくもって動いてくれないことが判明;;

すごい謎で、テストアプリを作ってテストテストテスト。。。

あぁ、ListView を UI Thread 以外のスレッドから触るとダメなのね、ってことがわかりました。

今までは、データが増える方向に(ListView の表示に変化が発生しないように)触る分には特に問題なかったので、裏で4スレッド(.dat ファイルに HTTP でダウンロードしながら、.dat ファイルから読んで parse して ListView に追加、時間のかかる parse を別スレッドでやって ListView に再設定、Google 翻訳を別スレッドでやって結果が来たら ListView に再設定)を走らせているいるのだが、このうち3つがダメということがわかってしまった;;
(いや、再設定は特に問題ないのか???)

痛い、痛すぎる。
Donut ベースの 1.6 の emulator だと特に問題無いので、次の Eclair 的なコードが入っているのかも?
他の View も UI Thread 以外から触るとダメなのがほとんどなので、ListView も、より厳密にチェックするようになるってことだね。

さて、どうやって直せばいいのだろう?みんなどうしてるのだろ?
Hanlder#post() で Runnable なのを登録すれば、UI Thread で動いてくれるので、簡単なのだけど、それやっちゃうと、UI が固まってしまうし、5秒固まると ANR (Application Not Responding) が出ちゃうし、、、

一旦、裏にデータ領域を確保して処理しておいて、定期的に Handler#post() して ListView 側にコピー、ってやるんだろうな。。。ちょっと変更量多そうだ。。。ふぅ。

(←フリーソフトを作るモチベーションアップのために、ぜひ。)

|

« ADP1 で ad-hoc 接続成功! | トップページ | En2ch Ver.1.0.5 で CM (CyanogenMod) に対応しました。 »

Android」カテゴリの記事

コメント

rootスレで色々報告させていただいた者です。
あちらに書くと長くなりそうだったのでこちらに書かせていただきますね。

おっしゃっていた通り、app2sdを有効にすると、/data/data/app*達は/system/sd/app*へのシンボリックリンクになるようです。
あとわたしがodexを消しに/system/sd/appに行ったのは単にリンクの方でなくて本体の方を消そうと思ったからっていうだけなんです(どっちを消しても同じなんですけどね)。

もひとつ、何故odexを消したかというと
・ブクマ機能実装されたのでアップデート
・ブクマのタブが出てない!
・アンインストール→インストールしても変わらず
・アンインストールしても何か情報が残っているのか?
・appディレクトリを見ると*.apkと*.odexがペアになってるように見える。アンインストールするとEn2chのapkだけ消えた。
・じゃodex消してみるか
という流れからだったのです。

素人考えでやった行為でうまくいっちゃったもので調子に乗ってました。

また何かありましたら報告させていただきます。
開発大変でしょうけど期待しております。

投稿: papacha-sama | 2009.09.21 14:31

書き込みありがとうございます!

なるほど、シンボリックリンクでSDカード側を指してるわけですか。

odex に変換されるということは、ARM 向けに最適化されてるはずなので、多少速くなるのでしょうね。ちょっと楽しみ。
これから試してみますー

投稿: salt | 2009.09.22 09:27

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/20208/46230546

この記事へのトラックバック一覧です: En2ch は CyanogenMod では動かず;;:

« ADP1 で ad-hoc 接続成功! | トップページ | En2ch Ver.1.0.5 で CM (CyanogenMod) に対応しました。 »