海月玲二
2013-08-01(木)

無題

androidの開発用エミュレータはクソ遅いことで名高い.俺はぼんやりした人間なので何年もそのまま使っていたのだが,試しにVirtualBox上で仮想的にandroid for x86を動かすというのを試してみたところ,えらく快適で笑った.インストールも配布されているイメージをインポートするだけだし,動作も速いし,playストアから普通にアプリをインストールできるし,何もしてないときに無駄にCPU食ったりしない.

というか最後の「何もしてなくても無駄にCPUを食う」という点について言えば,エミュレータも昔はそんなことなかった気がするんだがなあ.今回仮想化を試してみようと思ったのも,(CPUが無駄に回ってるのがイヤで)エミュレータを毎回終了するようにしていたらさすがにウザくなってきたからである.

androidのバージョンは4.1.1だから,1.6とかでちゃんと動くかチェックするにはやっぱり一応エミュレータも使う必要はある.でもまあ最後に一回試せばいいしな.

今回使ったのはAndroVMなるプロジェクトの仮想イメージである.なんかこれ,商用の後継プロジェクトに移行してるみたいだけど,フリーのこっちはもう更新しないのかしらん.まあ4.1.1ならこのままでもしばらくは大丈夫だろうか.

2013-08-04(日)

無題

タブレット端末を買ってみた.ASUSのMeMO Pad HD7という奴.新Nexus7ももうすぐ出るそうだが,旅行までに間に合うか微妙なのと,やっぱmicroSDカードが使えたほうが何かと便利だろうと思ってこれにした.バックアップにも便利だしな.

しばらく使ってみて思ったのは,意外に電池が保つなあということだ.なんかゲームとかの負荷の高そうなことしてても,そんなに急速に減るような感じではなかった.タッチ感度とかボタンとかもとりあえず問題なさそうだし,まあ普通に使えそうだな.

しかしアレだ,この機種は廉価なタイプでスペック的には去年出ててもいいぐらいだが,それでもIS01やIS03とは性能が段違いだ.以前IS03でねじ巻きナイトなるアクションゲームを遊んでいたら,どうも何度やってもタイミングが合わない個所が出てきてあきらめた経験があるのだが,さっきMeMO Padでやってみたら実にあっさり成功した.要するにIS03では処理が追いついていなかっただけらしい.まあ何だ,とりあえず旅行中にガイドブックのpdfを見るのは今までと比べてずいぶん快適になることだろう.

そうそう,microSDは/Removable/MicroSDにマウントされるようである.あと/sdcardはなぜか内蔵の記憶領域になるらしい.いちおう設定でどっちを優先するかは選べるようだ.俺用メモ.

というわけでタブレット端末を買ったので,SKK for androidにソフトウェアキーボードを復活させてみた.さらに,せっかくなので,日本語入力はフリック入力にしてみた.なかなか苦労した.

というか今まで,俺はIS01難民だから関係ないもんという態度を取っていたので,ソフトウェアキーボードの作成について全然知識がなく,いちから調べなおす羽目になった次第.でも,あれこれ調べてみたけど,結局フリック入力の実現には「フリック方向を調べることや,方向に合わせて必要な処理をすることは全部自前でやるしかない」ということなのかな.めんどくせえことこの上ないな.アルファベット系のキーボードを作るだけなら,用意されたAPIを組み合わせるだけでもそれなりに使えるものができるのに.

あとKeyboardクラスに高さを設定するメソッドが無いのは納得できない.ソフトウェアキーボードのサイズって,ユーザーが設定できたほうが便利じゃないだろうか.

TreeNote更新.まず

・ブックマークされてる行はハイライト表示されるようにした

正直,なんでやってなかったのかわからん.簡単だし.

あとはタッチパネル機での使いやすさのための更新である.

・ツールバーのボタンと境界の棒のサイズを設定で変更できるようにした

タブレットで使ってみたら,細かすぎて操作しにくかったので.

・ソフトウェアキーボードが表示されたとき,画面をずらすのではなくリサイズするようにした

これでやっと,ソフトウェアキーボードでもまともに入力できる感じ.

実はこの修正にはずいぶん苦労した.adjustResizeを普通にやっても効かなくて,原因を探すのにずいぶん手間取ったのである.結局,SpiltPaneLayoutが外部からのサイズ変更を想定していないのが原因だった.作った人はそういう目的では使わなかったんだろうなあ.この対応の副作用として,縦画面で外側の境界を動かしたときに内側がちゃんと追随するようにもなった.

授業も終わってヒマなのでいろいろ更新中だ.今回はHowmmの更新.いわゆるバグフィックス版である.

  • 改行文字の設定がちゃんとできていなかったのを修正

TreeNoteと同じように修正したので,設定したはずなのに消えたりすることはなくなったはず.ただ,バージョンアップすると改行文字の設定が消えるので,設定してた人はもう一度設定してほしい.

  • 画面が回転できるようにした
  • ソフトウェアキーボードが出たとき,画面をリサイズするようにした

これはTreeNoteとは違って簡単であった.AndroidManifest.xmlをちょっと直すだけ.

  • 端末によっては表示するときに強制終了するのを修正

知らなかったのだが,Javaで正規表現を扱うときにMatcher#find(int n)でnが負の数だと例外になるのね.直すのは簡単だったし,Matcher関係を書きなおしてすっきりしたし,それはいいのだが,じゃあなんで今まで顕在化しなかったのか謎である.IS01やIS03やエミュレータでは全然問題は起きてなくて,MeMO Padでだけ強制終了した.

aGrepのソースを見たらやっぱり似たようなところを修正してあって,android 4.2に対応というようなことが書いてあったけど,こんなことが変更になったりするものだろうか?