Menu > AnyParticularFeelings

適当なつぶやき。

注意
特に書き方には拘らず、ネタだったりツブヤキだったり考えだったりを適当に書くところ。
書式も気にせずに書くので、読みにくかったらすんません。


  • AndroidはVMが一番いいんじゃないか?

    開発中、何度もとっかえひっかえ端末のテストをするのは億劫なので、
    AndroVM(http://androvm.org/blog/)という環境を利用している。
    縦横切り替えを行うテストは厳しいが・・・それ以外はメモリやCPUの変更もできて
    最新の端末を揃えなくとも最新機種の動作が確認できるので重宝する。

    AndroVMにはGooglePlayが入った環境もあり既存のGoogleアカウントでログインも可能だ。
    起動していれば勝手にメールは受信するし、ブラウザを開く感覚でVMを起動している。

    ま、当然ながら自分でビルドしてもvboxイメージを作ることは可能なので、
    カーネルを弄ったりする人からすれば
    「わざわざ他人がビルドしたものを使う意味はない」
    だろうが、アプリを作る程度だと重すぎるエミュよりは断然イイと思う。
    インストール・起動・初期化もお手軽だし。

    っていうか、VM起動中は自分の端末を見なくなったな。。。
    半年に1回くらい買い換えているのは必要ないんじゃないかな。。。
    -- 2012-11-10 18:52:46
  • なんか左のメニューが増えてきたな
    このサイトでは、私が気になったものを調べて、それを気が向いたらここに掲載している。
    その性質上、全然関係なさそうな記事が出来上がったりしているのはいいんだが、
    メニュー構成とか考えるのは若干だるい。

    「System」の項目は最初「BigBlueButton」になる予定だった。
    しかしよくよく考えるとそれは不適当で、GitやらRedmineやら作る予定だった。
    となると品名を使うのはダメだ。何か共通点を題名にしないと・・・などと考え、
    「System」に決めるまで1時間を要したという話。

    仕事でも趣味でも、フレームワーク部分の考察は面白いと同時に出来が悪いと始末が悪い。
    なので頑張って考えるが、ほとんどは生産性に貢献しないんだよなぁ^^;
    -- 2012-10-20 11:19:00
  • 這い寄るハイエナの先に
    本当の動物ではなくて、まるで狙いすましたかのような人がいたんで^^;
    最近できた少しの暇を利用してソースをポチポチ書いていると、PCの修理依頼がやってきました。
    こういう依頼はほとんどが“壊れていない”ので気軽に受けると、HDDの寿命が迫っていた様子。
    Windowsなのでセーフモード起動してみるも10分そこらで落ちる。。。
    スキャンディスク。4時間放置。
    昨今のHDD大容量化はとてつもない時間を浪費させてくれるものだ!!!
    メーカー品だったのでWebからマニュアルを見てみると、リカバリーディスクを作れとお達しがありました。
    私  「ねぇ、リカバリーディスクって購入時に作ったりした?」
    依頼主「リカバリーディスクって何?」
    私  「ですよねー」
    動かないHDDからどうやってリカバリーディスク作るんだ?w -- 2012-09-22 13:09:03
  • 久々にAndroidに戻ってきた
    途中でCの意味不明なマクロを作っていたように、とある事情でAndroidから離れていた。
    これからは少しの期間だが時間もできるので、xyzzyやAndroidの記事をまた書いていこうと思う。

    とりあえず、この日誌(?)をブログっぽく入れられるようにしてみたので、置き換え&初投稿である。 -- 2012-09-19 01:51:39
  • オイシイ Framework.jar の置き換え方
    仕事柄、何度も何度もビルドしては焼く羽目になるので、
    とうとう面倒になって smali を使って Framework.jar を書き換えるマクロ組んじゃった。
    掲載するのは面倒なのでちゃらっと書くと
    1.端末から引っこ抜いた Framework.jar を baksmali でsmali形式に逆アセして準備。
    2.部分的に引っこ抜いたFrameworkの処理をEclipseでビルド。
    3.できあがった apk は放置して、classes.dex を同じく baksmali でsmali形式に逆アセ。
    4.用意しておいた Framework.jar の逆アセsmali に部分修正分を上書き。
    5.合わせた smali形式を smali 使って classes.dex に書き戻す。
    6.拾っておいた端末の Framework.jar に aapt 使って classes.dex 差し替え。
    7."Root権限で" adb つないで chmod とかしつつ Framework.jar を push
    8.adb reboot

    これでいける。
    試しに MediaStore に適当にログ仕込んで動作させたらログ表示されてた。
    初回の Framework.jar の smali化 が若干時間かかるものの、
    それさえ終わってしまえばもう2度とやる必要はない。
    Eclipse に 外部ツール として適当にbatとかvbsとかshとかで食わせておいて、
    外部ツール実行時の引数に「${project_loc}\bin\classes」でも渡しておけば
    クリック1発、30秒でFramework.jarの入れ替え完了。

    やっぱプログラマたるもの、三大美徳を蔑ろにしちゃいかん。 -- 2012-05-31 00:00:00
  • DialogFragmentって微妙じゃないか?
    DialogFragmentってActivityから見た管理はとてもいいんだけど、
    縦横切り替えで自動復帰させるときに public class じゃないとエラーになる。
    自動的に デフォルトコンストラクタ が呼ばれる仕様だからね。
    個人で作ってる場合は除いて、やっぱり機能毎にDialog作ったりするわけだし、なんだかなぁと思う。 -- 2012-03-29 01:00:00
  • AsyncTaskLoaderの動きがオカシイ。

    縦横切り替えを行った際は、内包しているLoaderにたいしてawaitする仕組みになっている。
    でもこのawaitしている区間でloadInBackground()を返した場合は、LoaderManagerがmCallbacksをnullにしている。
    このため誤ってloadInBackground()をreturnしてしまうと、
    LoaderManager#onLoadComplete()が
    LoaderManager.LoaderCallbacks#onLoadFinished()を呼び出すことができず、
    結果、アプリとしてはonLoaderReset()もonLoadFinished()も返ってこないため、
    ずっと処理中と判断せざるを得ない。

    これ、縦横切り替えだと日本の端末ではメーカーにより動作が異なる。

    しかし残念ながらHomeキーによる非アクティブだと全機種起こりえる。
    なんせ「バックグランド処理」だからな。普通は止めない。

    reset()やabandon()以外の理由でloadInBackground()が完了したときの話。
    コールバックが返せないときのシーケンスを考慮に入れていないのではないだろうか。。。 -- 2012-03-29 00:00:00

最終更新:2012年11月10日 18:41