2012年10月14日日曜日

sk17iが修理に旅立つ

 10日ほど前から、sk17iのタッチパネルが全く反応しなくなりました。logcatでログを出しながら操作しても、タッチイベントが全く来ていないようです。断線か半田クラックなどのせいで、タッチパネルからの信号が通じていないのではないかと思います。
 3ヶ月の保障期間が切れる直前だったので、eXpansys Japanに修理を依頼しました。数日後に依頼は受け付けられ、センドバック修理のため、今朝EMSで香港へ発送しました。普通ならば、修理といっても故障品を直したりせず、良品と交換するのでしょうが、sk17iの場合は既に生産が終了しており、eXpansysでも販売を終えています。この先どうなるのでしょうか?

2012年9月29日土曜日

sk17iのICSをアップデート

Xperia mini proのICSにマイナーアップデート(4.1.B.0.587)が来てたので入れてみた。

最初に何も準備しないまま妻端末に入れたら、中華フォントに戻った上にroot取れずあせる。ユーザーデータを温存したまま一旦Gingerbreadに戻し、然るべき準備(/data/local.prop)をして再トライしたら、一応root取りつつアップデートもできた。無理やりICS→ICS→GB→ICSとやったら、com.android.phoneをはじめ幾つかのpackageがdb構造の不整合を起こして落ちまくり。せっかくrootを取ったので、壊したdbを削除して回って一応解決。

同じ轍は踏むまいと、自分の端末は然るべき準備をしてからPC companionで普通にアップデートしたら、ノートラブルでアップデート完了。

2012年9月9日日曜日

sk17i待ち受け時間改善計画

 sk17i(Xperia Mini Pro)の待ち受け時間は、IDEOS U8800と比べて悪くは無いのですが、何もしていない時間のバッテリー消費が多いような気がしていました。仕事で使っているガラスマでは消費ペースが1%/h未満になるケースがあるのに、sk17iではそれより少し多めです。原因を探るために、dumpstateログを比較してみました。

dumpstateは、Androidの動作状態を網羅的に知りたい場合に真っ先に取得するログです。Android SDKがインストールされた状態(adbが使える状態)のPCを用意して、
adb shell dumpstate -v threadtime > dumpstate-20120908.txt
 のようにして取得しています。
見てのとおり、android端末上にインストールされているdumpstateコマンドをshell経由で実行して、PC上のファイルにリダイレクトしています。

 待ち受け時間は、消費電力を知る指標のひとつです。何も操作していない静止状態で、電池切れまでに何時間かかるか等で示します。 これ以外の電池持ちを示す指標として、動画再生時間やテザリングの連続使用時間など、実使用状態での連続使用時間があります。今回対象としたのは、無操作 状態の待ち受け時間です。


 待ち受け時間が短くなる原因としては、
 ・partial wakelockがかかりっぱなしで、画面が消えていても端末がsleepしていない
 ・アプリが行う同期などの通信により、定期的な端末が動作している
などが考えられます。

 sk17iのdumpstateを見てみると、PowerManager経由でアプリが有効化するwakelockは存在していませんでした。wakelockが残っていると消費は数%/hに達しますが、そこまでひどい電池消費ではないので、これは予想された結果です。
 他に目立った消費原因はないかと探してみると、sync historyが気になりました。(Gmailのidは書き換えてあります)
Recent Sync History
  #1  : 2012-09-08 11:05:24   SERVER    0.2s            example@gmail.com/jp.mixi.authenticator.MixiAccountType  jp.mixi.android.provider.mixiapplicationuserrequestprovider
  #2  : 2012-09-08 11:05:24   SERVER    0.2s            example@gmail.com/jp.mixi.authenticator.MixiAccountType  jp.mixi.android.provider.mixifriendlinkrequestprovider
  #3  : 2012-09-08 11:05:22   SERVER    1.5s            example@gmail.com/jp.mixi.authenticator.MixiAccountType  jp.mixi.android.provider.miximessageprovider
  #4  : 2012-09-08 11:05:17   SERVER    5.1s            example@gmail.com/jp.mixi.authenticator.MixiAccountType  jp.mixi.android.provider.feedbacknotificationprovider
  #5  : 2012-09-08 11:04:55    LOCAL    2.0s            example@gmail.com/com.google                             gmail-ls
  #6  : 2012-09-08 11:04:28   SERVER    1.0s        26  example@gmail.com/com.google                             gmail-ls
  #7  : 2012-09-08 11:04:26   SERVER    2.5s         2  example@gmail.com/com.google                             gmail-ls
  #8  : 2012-09-08 10:51:51 PERIODIC    0.4s     13:25  example@gmail.com/jp.mixi.authenticator.MixiAccountType  jp.mixi.android.provider.feedbacknotificationprovider
  #9  : 2012-09-08 10:42:14   SERVER   13.8s     22:11  example@gmail.com/com.google                             gmail-ls
  #10 : 2012-09-08 09:51:51 PERIODIC    0.5s  01:00:00  example@gmail.com/jp.mixi.authenticator.MixiAccountType  jp.mixi.android.provider.feedbacknotificationprovider

 Gmailに負けない頻度で、mixiの同期が行われています。比較のために、同じgoogle idを設定したガラスマでdumpstateを取ったら、sync historyはこうなっていました。

Recent Sync History
  #1  : 2012-09-08 11:04:35   SERVER    2.1s            example@gmail.com/com.google  gmail-ls
  #2  : 2012-09-08 10:42:21   SERVER    2.1s     22:14  example@gmail.com/com.google  gmail-ls
  #3  : 2012-09-08 10:22:36   SERVER    1.4s            example@gmail.com/com.google  com.android.calendar
  #4  : 2012-09-08 10:22:35 PERIODIC    1.0s            example@gmail.com/com.google  subscribedfeeds
  #5  : 2012-09-08 10:22:33 PERIODIC    2.0s            example@gmail.com/com.google  com.android.contacts
  #6  : 2012-09-08 10:22:28 PERIODIC    9.5s     19:52  example@gmail.com/com.google  gmail-ls
  #7  : 2012-09-08 10:22:28 PERIODIC    4.9s         8  example@gmail.com/com.google  com.android.calendar
  #8  : 2012-09-08 02:50:46    LOCAL    0.1s  07:31:42  example@gmail.com/com.google  com.android.calendar
  #9  : 2012-09-08 02:49:52   SERVER    1.3s        54  example@gmail.com/com.google  com.android.calendar
  #10 : 2012-09-08 02:49:46    LOCAL    5.7s         5  example@gmail.com/com.google  com.android.calendar
確かにmixiはインストールしてありますが、使用頻度はかなり低く、1時間毎に同期を行う必要はありません。同期の内容を見直し、同期間隔を12時間または24時間毎に変更してみました。
 これで、0.5%/hを切るようになれば、ほぼ目標達成です。今日はまだ変更直後なので、まだ効果はわかりません。数日使えば、判断できると思います。

2012年7月21日土曜日

Xperia mini proへ移行

普段使いのAndroid端末を、IDEOS X5(U8800H)からXperia mini pro(sk17i)に買い換えました。解像度がHVGAな点は残念ですが、小さくてスライドキーボード付きという点がとても気に入っています。カメラは普通のコンデジ並み。小さいので、ジーンズの前ポケットにも無理なく入ります。普通のAndroid端末では、とても無理。
 rootは取れるし、公式のICSは安定して動くし、CWMでbackup/restoreはできるし、かなり自由が利く端末です。使い始めて1週間経ちますが、IDEOS X5と違って、放置リセットするような事もありません。

gitoliteを使ってみる

家鯖にgitの中央リポジトリを置くために、gitoliteを入れてみた。
が、最初のテストでsshがつながらない。
git clone ssh://gitserver/testing
Cloning into 'testing'...
Permission denied (publickey).
fatal: The remote end hung up unexpectedly
原因は、gitoliteと関係無い所にあった。
sshd_configで、ssh接続可能なユーザーを自分がログインするユーザーに制限してあったのを忘れていた。接続可能なユーザーにgitoliteを追加して解決。

2012年5月5日土曜日

Xperia mini proのビルトインアイコンがバグっている件

sk17iのアイコン一覧  
エミュレータのアイコン一覧

 スケジュールした曜日・時刻にマナーモードのOn/Offを切り替えるアプリを作ったのですが、なぜかXperia mini pro(sk17i)で思うように設定ができません。設定画面で使っているマナーモードOn/Offアイコンが切り替わらないのです。
  sk17iでのみ発生するバグでもあるのかと思い、eclipseでステップ実行してみても異常はありません。試しに、マナーモードOnのアイコンしか使わないように変更しても、マナー モードOffのアイコンしか出ません。どうやら、端末にビルトインされたアイコンが間違っているようです。
 疑惑を確認するため、R.drawableのアイコンを表示するだけのアプリ? を動かしてみたら、予想通りの結果になりました。エミュレータではスピーカーにバツ印のマナーOnアイコンが、sk17iではマナーOffと同じになっています。何をどうしたらこんな事になるのやら?

 仕方がないので、自作アプリはバツ印を含んだ別のアイコン(android.R.drawable.ic_notification_clear_all)で代用することにしました。マーケットに出さない自給自足アプリなので、このへんはアバウトでも問題ありません。

ICSからGBへ戻した

IDEOS U8800をAurora ICS版でしばらく動かしていましたが、Wi-Fi/BTのテザリングが全く使えないので、Gingerbreadに戻しました。ToriSatがダウンロードできないのは、どちらも同じ。