2010年9月22日水曜日

android ソースコード取得と参照

Eclipse から android のソースを参照できるようにしました。

その手順をメモしておきます。

ちなみに、環境は Windows Vista Ultimate SP2 32bit です。

android 2.2 のソースを参照できるようにしました。

  1. Cygwin 入手
    以下のサイトより、setup.exe をダウンロード。

    http://www.cygwin.com/

  2. Cygwin 導入
    setup.exe を実行。
    パッケージ選択画面で、以下の 9 つについて、Bin? 列にチェックを入れる。

    Archive > zip: Info-ZIP compression utility
    Devel > bison: A parser generator that is compatible with YACC
    Devel > flex: A fast lexical analyzer generator
    Devel > git: Fast Version Control System - core files
    Devel > gperf: Perfect fash function generator
    Devel > ruby: Interpreted object-oriented scripting language
    Python > python: Python language interpeter
    Util > gnupg: GNU's tool for secure communication and data storage
    Web > curl: Multi-protocol file transfer command-line tool

  1. repo スクリプトのダウンロード
    Cygwin を起動し、curl コマンド使ってダウンロードします。

    $ cd ~
    $ mkdir bin
    $ curl http://android.git.kernel.org/repo >~/bin/repo
    $ chmod a+x ~/bin/repo

  2. ダウンロードするバージョンを確認
    repo init コマンドの -b で指定する値を確認します。
    tags に欄にある名称が指定できるようです。

    http://android.git.kernel.org/?p=platform/manifest.git;a=summary


  1. repo init 実行

    $ cd ~
    $ mkdir android_src
    $ cd android_src
    $ ~/bin/repo init -u git://android.git.kernel.org/platform/manifest.git -b android-sdk-2.2_r2

    が、エラーとなりました。。

          3 [main] python 4860 C:\myprog\cygwin\bin\python.exe: *** fatal error - unable to
    remap \\?\C:\myprog\cygwin\lib\p
    ython2.6\lib-dynload\time.dll to same address as parent: 0x380000 != 0x3B0000
    Stack trace:
    Frame     Function  Args
    00229CC8  6102749B  (00229CC8, 00000000, 00000000, 00000000)
    00229FB8  6102749B  (61177B80, 00008000, 00000000, 61179977)
    0022AFE8  61004AFB  (611A136C, 6123FC1C, 00380000, 003B0000)
    End of stack trace
          3 [main] python 7144 fork: child 4860 - died waiting for dll loading, errno 11
    Traceback (most recent call last):


    いろいろとググってみた結果、
    以下の手順で回避できました。

    a. 全ての Cygwin を停止。
    b. コマンド・プロンプトを起動し、以下を実行。
    > cd <Cygwin導入フォルダ>\bin
    > ash.exe
    $ /usr/bin/rebaseall


    再度、repo init 実行。
    途中に、メールアドレスの入力が求められます。
    それと、カラー表示の有無が問われるので、Y と答えておきました。

    実行が完了すると、.repo ディレクトリが作成されています。

    $ ls -la
    total 8
    drwxr-xr-x+ 1 xxxx None    0 2010-09-22 18:23 .
    drwxr-xr-x+ 1 xxxx None 4096 2010-09-22 18:40 ..
    drwxr-xr-x+ 1 xxxx None 4096 2010-09-22 18:40 .repo

    $

  2. ソースコード取得
    .repo ディレクトリが存在する場所で、repo sync を実行します。

    $ cd android_src
    $ ~/bin/repo sync

    ソースのダウンロードが開始されます。
    完了するまでに相当かかりますので、気長に待ちましょう。

  3. sources 作成
    ダウンロードしたソースは、ばらばらに配置されているので、ひとまとめにします。

    development/ide/eclipse/.classpath というファイルの中を見ると、
    <classpathentry kind="src" path="packages/apps/AccountsAndSyncSettings/src"/>
    といった行が複数あるので、このなかで kind="src" となっている path のディレクトリを
    ひとまとめにすればよいようです。

    但し、path が out/~ で始まるものはサンプルのソースだったりするようなので、
    これは除外するようにします。

    ということで、Cygwin で以下を実行します。

    $ cd android_src
    $ mkdir ../sources
    $ awk '{if($2=="kind=\"src\""){print $3}}' development/ide/eclipse/.classpath | awk -F\" '{print $2}' | grep -v ^out | while read SRC
    do
    if [ -d $SRC ]; then
        echo "copy $SRC/* --> ../sources"
        cp -R $SRC/* ../sources
    fi
    done
    $
    

    作成された sources ディレクトリを丸ごと、
    <android導入フォルダ>\platforms\android-8 に移動します。

    これで Eclipse からソースが参照できるようになります。

  4. 確認
    Eclipse が起動していたら、再起動します。

    試しに、あるソース・ファイルから、ListActivity を選択して、
    F3 (Open Declaration) を押すと、ソースが見られるようになりました~


2010年9月17日金曜日

CyanogenMod 6.0.0 に Simeji インストールしました

カスタムROM CyanogenMod 6.0.0 に更新してから、

2~3日経過してようやく気づいたんですが、日本語が入力できません!

前々から、その存在だけは知っていた Simeji をインストールすることにしました。


さっそく、android マーケットより、Simeji を検索して、インストールを開始!

インストール後、設定 --> 言語とキーボード を見ると、Simeji が追加されています。

さっそくチェックを入れて、有効にします。

有効にするとき、「注意」が表示されますが、気にせず、OKを押します。
(でも、わざわざ表示されると逆に気になりますよね・・・)




長押しで入力方法の選択を表示させると、Simeji が追加されていますので、
Simeji を選択します。

おお~ 日本語入力だけでなく、IPhone と同じようにフリック入力も可能になりました。




ん?なんか入力するたびに、小刻みに振動している・・・

もう一度、設定 --> 言語とキーボード から Simeji の設定を確認。




キー操作バイブにチェックが入っています。

これをはずすと、入力都度のバイブがなくなりました~

2010年9月15日水曜日

API Demos を動かすの巻

ヤフクオクで、HT-03A を入手して以来、

ちっとも開発っぽいことに使っていないので、

とりあえず、android 2.2 に付属してくるサンプル・アプリ API Demos をデプロイしてみて、

動かしてみようと思います!


まずは、設定 --> アプリケーション --> 開発 で USB デバッグが ON になっていることを確認。




ON になっていることを確認できたら、HT-03A と PC を USB ケーブルでつないだ状態で、

eclipse を起動し、Run を実行すると、以下の画面が表示されます。




おお~! HT-03A が選択できるようになっています。

では、HT-03A を選択し、OK ボタンを押すと、API Demos がインストールされます。
(左上に API Demos が追加されました)




起動してみます。




ちゃんと起動されました!

カスタムROM の android 2.2 ですが、なかなか順調です O(≧▽≦)O

2010年9月14日火曜日

HT-03A 2.2 にバージョンアップ(成功編)

手順を2点追加したところ、2.2 のバージョンアップが成功しました。

といっても、まだ全然使用していないので、どんな不具合があるか分かりませんが、
とりあえず、無事、起動まで確認できました!
※ 2010.10.26 追記。1ヵ月程度、開発機として使用していますが、
    特に問題は起きていないです。
※ 2010.11.04 追記。GPSが機能しないことに気付いて、
    Google Addon を 20100816 から 20101020 に更新しました。
    (まあ変にいじったことが原因なのかもしれないんですけど。。)
    gapps-mdpi-tiny-20101020-signed.zip を適用してみた

追加した2つの手順は以下の通りです。
これがどのように寄与したかは分かりません・・・
  • PCとHT-03AをUSBケーブルでつながない。
    最初はつないだまま作業していたので、念のため、つながないようにしました。

  • 更新 zip 適用前に、Wipe する。
    参考サイトには、Wipe するとあったので、正しく行うようにしました。
    (ほとんど何もしていなかったんですけど、やっぱり必要なんでしょうか。。)

では、修正版の手順です。
新規追加手順は青字にしています。

  1. RA-sapphire を起動 (HOME+電源キー同時押し)

  2. バックアップ取得。
    Backup/Restore --> Nand backup

  3. カスタムROM CyanogenMod と Google Addon をダウンロード。
    以下のサイトより、2ファイルをダウンロード。

    サイト:
      http://wiki.cyanogenmod.com/index.php?title=Latest_Version

    ファイル:
      update-cm-6.0.0-DS-signed.zip
      gapps-mdpi-tiny-20100816-signed.zip

  4. SDカードにファイルを配置。

  5. PCとHT-03Aを結ぶUSBケーブルを外す。

  6. RA-sapphire を起動 (HOME+電源キー同時押し)

  7. Wipe 実行。
    Wipre --> Wipe data/factory reset


  8. update-cm-6.0.0-DS-signed.zip 適用。
    Flash zip from sdcard -->SDCARD:update-cm-6.0.0-DS-signed.zip

  9. gapps-mdpi-tiny-20100816-signed.zip 適用。
    Flash zip from sdcard -->SDCARD:gapps-mdpi-tiny-20100816-signed.zip

  10. 起動。
    Reboot system now

無事、起動するようになりました~
とりあえず Wi-Fi つながることは確認できました~~

2010年9月13日月曜日

HT-03A 2.2 にバージョンアップ(失敗編)

android のバージョンを 1.5 から 1.6 に更新したばかりですが・・・

最新バージョンじゃないことが、気に入りません。。

開発に入ろうにも、どうも気が入らないので、

やっぱり最新の 2.2 に更新しちゃおうと思います!ъ( ゜ー^)

カスタムROMの 2.2 に更新するので、
もし参考にされている方がいましたら、自己責任でお願いします!


んでもって、いつものように、Android Custom Cookbook を参考にさせて頂きました。


手順書/Rom導入(CM5.0~_for_Magic)


基本的に参考サイト通りなんですが、一応、手順をメモしておきます。


  1. RA-sapphire を起動 (HOME+電源キー同時押し)

  2. バックアップ取得。
    Backup/Restore --> Nand backup

  3. カスタムROM CyanogenMod と Google Addon をダウンロード。

    サイト:
      http://wiki.cyanogenmod.com/index.php?title=Latest_Version

    ファイル:
      update-cm-6.0.0-DS-signed.zip
      gapps-mdpi-tiny-20100816-signed.zip

  4. SDカードにファイルを配置。

  5. RA-sapphire を起動 (HOME+電源キー同時押し)

  6. update-cm-6.0.0-DS-signed.zip 適用。
    Flash zip from sdcard -->SDCARD:update-cm-6.0.0-DS-signed.zip

  7. gapps-mdpi-tiny-20100816-signed.zip 適用。
    Flash zip from sdcard -->SDCARD:gapps-mdpi-tiny-20100816-signed.zip

  8. 起動。
    Reboot system now

が、起動しません!

まじですか・・・

以下のように画面は出てくるんですが、それより先に行きません。


DDMS で何しているのか覗いてみると、
以下のように、signature に関するエラーが多数出力されています。


09-13 15:01:38.384: INFO/PackageManager(265): /system/app/ApplicationsProvider.apk changed; collecting certs
09-13 15:01:38.474: WARN/PackageManager(265): Signature mismatch for shared user : SharedUserSetting{43d38fb8 android.uid.shared/10000}
09-13 15:01:38.474: ERROR/PackageManager(265): Package com.android.providers.applications has no signatures that match those in shared user android.uid.shared; ignoring!


なんでだろ・・・

とりあえず、2. で取得したバックアップ・データをリストア して、

また今度リトライしてみます~(ノ◇≦。) ビェーン!!