2009-02-20

cupcake on Android Dev Phone 1

masterを特にいじらなくてもcupcakeがそこそこまともに動くようなので試してみました。

http://blog.makezine.com/archive/2009/01/taking_android_cupcake_for_a_spin.html

repo syncして、makeしただけ。fastboot -w flashallしても無事起動しました。


SIMないと相変わらず画面がロックされてますが、

# echo "keyguard.no_require_sim=1" > /data/local.prop
# sync
# reboot

でok。


init.svc.dhcpcdが起動してないですけど、これはWifiの設定間違ってるかも。


実験版IME http://blogger.splhack.org/2009/02/android-ime.html も動いてます。「あ〜お」しか変換できないですけど。ちゃんと変換できるように辞書とか調整したいところ。

Note pad


連絡先


↑ADP1につないだddmsでとったscreen capture

日本語ロケール。ロケールのテキスト入力設定で、インストールしてあるIMEを選択できるんですね。iPhoneぽく入力中に切り替えられるのかな? 絵文字入力パッドとか。

vsprops

プロパティ シート vsprops

vcprojでConfigurationごとにちまちま設定していたなんて...

Configuration InheritedPropertySheets="hoge.vsprops"

SCons, swtoolkit などでvcprojを生成するのもまた一興。


しかし、何故、私は積極的にrake(もしくは近代的なAnt,Jam,SCons,etc,etc)を使わないのだろう。疑問。


IDEでちまちま設定したくない、とか (そーいやXcode使うのは抵抗ないなぁ)。


MYDIR:= $(dir $(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST)))

(3.81だとこんなの要らないですけど)とか、

OBJS=$(addprefix $(OBJDIR)/,$(CSRCS:.c=.o) $(CXXSRCS:.cpp=.o))

とかを書きたくてたまらない、とか。

複雑怪奇なターゲットの連鎖を簡潔に書けちゃったりすると気持ちいい、とか。


いずれも正しいとしても、GNU make(もしくはBSD系make)を使い続けなければならない決定的な理由がない、はず。

makeしか動かない環境なんてなく、しかも、makeで足らなくて bash,sed,awk,grep,... とか駆使することになるわけで。


yamlできれいに設定できちゃったりすると気持ちいいに違いない。


(iTerm + zsh / bindkey -v + vim が主環境な人)

2009-02-18

Androidでファイルコピー

busyboxとかを入れずにファイルをコピーする方法。
cat /data/local/tmp/libhoge.so > /system/lib/libhoge.so

↑ はrootでかつrwでmountされてないとできないですけど。

adbで何故かpushできなくて、一旦/data/local/tmpとか書けそうなところにpushしたのはいいものの、cpがなくてコピーできずにbusybox拾ってきてcross compileしてpushしてcpしたりした人向け。


lsがなくてecho *した、とか思い出しますね。

2009-02-14

vim / iTerm

vim @7.2.093_1+cscope+gdb+huge+ruby MacPortsに追従
iTerm @0.9.6_20090209 svnを使うように変更
http://git.sourceforge.jp/view?p=splhack/MacPorts.git

iTermのrepositoryがcvs2svnでsubversionに変換されてますね。
http://iterm.svn.sourceforge.net/viewvc/iterm/trunk/

2009-02-09

Android Dev Phone 1 バックアップ方法

http://antonmelser.org/open-source/backup-install-restore-adp1.html から抜粋。


  1. http://www.gotontheinter.net/content/new-images-jf から JFv1.31_ADP1.zip を取得して展開。
  2. format済みのSDカードをADP1に刺す。
  3. カメラボタンを押しながら、電源ボタン押下でADP1起動。バックボタンを押してFASTBOOTにする。
  4. JFv1.31_ADP1 のリカバリイメージで起動
    fastboot boot data/recovery.img

    (fastbootはAndroidソースをmakeすればできます。OS Xならout/host/darwin-x86/bin/fastboot)

  5. 画面のメッセージ通り、ALTを押しながらB押下でバックアップ開始。
    (Performing backup.....  Backup complete!)

  6. SDカードの nandroid ディレクトリにバックアップができているのでPCに移動させる



JFv1.31はnandroidのスクリプトが入ってて、キー押すだけで起動されるわけです。便利。感謝。

2009-02-04

Android 実験版 IME

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

てな感じで。どうでしょうか。


http://code.google.com/p/android-migemo-ime/

adb install -r SoftKeyboard.apk

でインストールできるはずです。cupcakeで入ったInputMethodの仕組みを使ってますんで当然ながらcupcake以降用です。


仕組み

cupcakeのsoftware keyboardは、development/samples/SoftKeyboard のようで。

入力文字列を元に候補を表示して選択、なんていう機能が最初から実装されてました。CandidateViewとか。

ので、入力されたアルファベット文字列から日本語候補を作れば、とりあえずIMEとして使えるようになります。

JNIでnativeのlibraryでも呼ぼうかと思いましたが、ふとmigemoを思い出したところ、Java実装を見つけました(J/Migemo)。

入力文字列を喰わせて、返ってきた文字列候補をCandidateViewに入れてみた次第。動いてます。




res/rawからのリソース読み込み。1MBくらいしか読めないようで。元のmigemo-dictはもっと大きいので、とりあえず「お」の後でぶったぎってあります。ということで、「か」以降は変換できませんので注意 :-) (ひらがな、カタカナにはなります)

分割したり、逐次読み込みとか、いくらでも工夫のしがいはありますけども。




Java版POBox移植するのがいいかも。

2009-02-03

Android Dev Phone 1 その13

SHIFT + MENU で /sdcard/bugreports にバグレポート生成。


でたらめにキー叩いてたら、突然振動したので何かと思いました。

バグレポート生成開始時に1回振動、終了時に2回振動、でした。


いったい誰がこんなことをやってるかと調べてみると

frameworks/policies/base/phone/com/android/internal/policy/impl/PhoneWindowManager.java

が、ACTION_BUG_REPORT intentをブロードキャストすると。えーと、受ける人は?


LockScreen.java とかでSIMありなりチェックしてたりするわけですね。

2009-02-02

Ruby for Android その8

http://code.google.com/p/android-ruby/

system/core/rootdir を参考に rb files もインストールするようにしてみました。

Android.mk diff


http://code.google.com/p/android-ruby/downloads/list

バイナリも更新。インストールでbusyboxに頼ったりしてますけど、これはなんとかしたいところ。

release-1.0(G1,ADP1)、cupcake(いまのmasterくらい)でも多分きっと動きます。