Androidアプリの開発をしていて、android.jarのソースをみる必要が出てきました。
チョロっと↓みてみると、いかにもLinuxとかMacユーザー向けじゃないですか、と。
Downloading the Source Tree(http://source.android.com/source/downloading.html)
ググったら↓のブログを発見したので、これに沿ってやってみます。
WindowsユーザがAndroid標準ライブラリをEclipseで参照できるようになるまで | 拝啓、シーシュポス
curlコマンド叩こうと思ったらありゃしませんがな、っていう。
$ curl -bash: curl: command not found
Cygwinに追加でパッケージをインストールするのにアタフタしましたが、
素でインストールする時に使ったsetup.exeを使います。自分はProgram Filesの中に入ってました。
たぶんコレかなってのを選んで次へ次へ。
インストールが終わった後に叩いてみたら良さげです。
$ curl curl: try 'curl --help' or 'curl --manual' for more information
次に、上記のcurlコマンドを使ってrepoコマンドというのをインストールします。
$ curl -k https://android.git.kernel.org/repo > /bin/repo % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 245 100 245 0 0 805 0 --:--:-- --:--:-- --:--:-- 1655
よーし終わったぜとか思いつつ見てみたら、、オイオイ的な、、、orz
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> <html><head> <title>301 Moved Permanently</title> </head><body> <h1>Moved Permanently</h1> <p>The document has moved <a href="https://android.googlesource.com/repo">here</a>.</p> </body></html>
メッセージに従って https://android.googlesource.com/repo にしてみると、、
$ curl http://android.googlesource.com/repo > /bin/repo % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 141 0 141 0 0 142 0 --:--:-- --:--:-- --:--:-- 1270
てめぇ、このやろう的な、、
<HTML> <HEAD> <TITLE>Not Found</TITLE> </HEAD> <BODY BGCOLOR="#FFFFFF" TEXT="#000000"> <H1>Not Found</H1> <H2>Error 404</H2> </BODY> </HTML>
Cygwin | あんどろサイト Androidアプリ開発情報をみると、
URLが http://android.git.kernel.org/repo って書いてあるのでそこを指定して叩いてみましたが、
これまた http://android.googlesource.com/repo だよって言われました。
気を取り直して、もう一度http://source.android.com/source/downloading.htmlをチェックしたら、
curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
って書いてあったので、それで叩きます。
今度はそこそこなサイズがダウンロードできた模様です。
$ curl -k https://dl-ssl.google.com/dl/googlesource/git-repo/repo > /bin/repo % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 19731 100 19731 0 0 45463 0 --:--:-- --:--:-- --:--:-- 53762
viewで開いてみると、、、良さげです。
#!/bin/sh ## repo default configuration ## REPO_URL='https://android.googlesource.com/tools/repo' REPO_REV='stable' # Copyright (C) 2008 Google Inc. ... 続く
ということで、repoコマンド使って環境作っていきます。
$ mkdir android_source $ cd android_source/ $ repo init -u https://android.googlesource.com/platform/manifest -bash: /usr/bin/repo: Permission denied 実行権限無いって怒られたので $ chmod 755 /bin/repo からの、、 ]$ repo init -u https://android.googlesource.com/platform/manifest 0 [main] python 7068 C:cygwinbinpython.exe: *** fatal error - unable to remap C:cygwinbincygreadline7.dll to same address as parent: 0x360000 != 0x530000 Stack trace: Frame Function Args 0028A6A8 6102796B (0028A6A8, 00000000, 00000000, 00000000) 0028A998 6102796B (6117EC60, 00008000, 00000000, 61180977) 0028B9C8 61004F1B (611A7FAC, 6124AF94, 00360000, 00530000) End of stack trace 0 [main] python 6880 fork: child 7068 - died waiting for dll loading, errno 11 ...続く
うわ、、マジだりぃ。。。
ググっていくとrebaseってのをやってやる必要がありそうです。
↓の要領に従って頑張りました。。
Cygwinで “unable to remap *.dll” が出るときは rebaseall らしい | XXXannex
なかなかrebaseがうまくいかなくて、/bin/rebaseallのソースをコメントアウトして
grep -E -q -i -v '/d?ash(.exe)?$' /proc/[0-9]*/exename #if [ $? -eq 0 -a -z "$RebaseDebug" ] #then # echo "$ProgramName: only ash or dash processes are allowed during rebasing" # echo " Exit all Cygwin processes and stop all Cygwin services." # echo " Execute ash (or dash) from Start/Run... or a cmd or command window." # echo " Execute '/bin/rebaseall' from ash (or dash)." # exit 2 #fi
叩いたらうまくいかなかったので、Windowsマシンを再起動してから、コマンドプロンプトで(not cygwinコンソール)
C:cygwinbin>ash rebaseall -v ~略~ /usr/lib/dde1.2/tcldde12.dll: new base = 68e00000, new size = 20000 /usr/lib/reg1.1/tclreg11.dll: new base = 68de0000, new size = 20000 /usr/bin/cygz.dll: new base = 68db0000, new size = 30000
ようやく本題に戻ってrepoでinitっと…
って、ちょっ…orz
$ repo init -u https://android.googlesource.com/platform/manifest warning: gpg (GnuPG) is not available. warning: Installing it is strongly encouraged. Get https://android.googlesource.com/tools/repo error: SSL certificate problem, verify that the CA cert is OK. Details: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed while accessing https://android.googlesource.com/tools/repo/info/refs fatal: HTTP request failed
ググってたら↓しちゃえばイイって事だったので、、
$ git config --global http.sslVerify false
んで、もっかい叩いたら、、ようやく、、
$ repo init -u https://android.googlesource.com/platform/manifest warning: gpg (GnuPG) is not available. warning: Installing it is strongly encouraged. Get https://android.googlesource.com/tools/repo remote: Counting objects: 1414, done remote: Finding sources: 100% (78/78) remote: Total 1414 (delta 917), reused 1414 (delta 917) Receiving objects: 100% (1414/1414), 429.88 KiB | 600 KiB/s, done. Resolving deltas: 100% (917/917), done. From https://android.googlesource.com/tools/repo * [new branch] maint -> origin/maint * [new branch] master -> origin/master ~略~ repo initialized in /hogehoge/
んで、ソースコードの取得です。
(死ぬほど取れてきます。。。htcだsamsungだとかbluetoothだとか見ないであろう膨大な量のコードが。。。)
$ repo sync From /home/Az/android_source/.repo/projects/bootable/diskinstaller.git/clone.bundle * [new branch] master -> aosp/master * [new branch] gingerbread -> aosp/gingerbread Downloading bionic: 50% (1MB/2MB) From /home/Az/android_source/.repo/projects/bootable/bootloader/legacy.git/clone.bundle * [new branch] master -> aosp/master * [new branch] gingerbread -> aosp/gingerbread remote: Counting objects: 32, done remote: Finding sources: 100% (32/32) remote: Total 32 (delta 0), reused 32 (delta 0) Unpacking objects: 100% (32/32), done. From https://android.googlesource.com/platform/bootable/diskinstaller * [new branch] donut-release -> aosp/donut-release ~略~
時間掛かり過ぎるのでやめました(キリッ)
↓にしてバージョンを固定にしてinitして、
repo init -u https://android.googlesource.com/platform/manifest -b android-2.3.3_r1
↓4多重で同期、
repo sync -j4
みたいな事になるらしいので、コレ仕掛けて今日は帰ります。
明日Eclipseからソース見れるといいな。。。
—
オライリージャパン
売り上げランキング: 248079
コメント
[…] « android.jarのソースをEclipseに添付する(前編) […]