タグ

ブックマーク / blog.kmckk.com (12)

  • KMC Staff Blog:Androidのemulatorのlocalhost制限を解除する

    2011年08月02日 Androidemulatorのlocalhost制限を解除する 前回の「Androidemulator-x86でrubyを動かす」の記事でemulatorの中でWEBサーバを動かしたときに、WEBサーバのportをqemuの-redir オプションでリダイレクトしても、localhostでしか接続することができませんでした。 この件を調べました。 qemuの-redirオプションでportをリダイレクトした時に、オリジナルのqemuではlocalhostでなくても接続することができます。しかし、Androidemulatorではこれがlocalhostからのみに制限されているようです。つまり前回の例では、http://localhost:8001/ では接続できますが、http://192.168.1.26:8001/ では接続できません。 普通はlocal

  • KMC Staff Blog:Androidのデバッグダンプからソース上の問題発生箇所を調べる方法

    2011年02月22日 Androidのデバッグダンプからソース上の問題発生箇所を調べる方法 今回もAndroidのアプリケーション開発者でなくて、ポーティングなどでシステム部分の問題を追いかける人が知っておくとよい話です。(English version of this page) 実機でいろいろいじくって動かしていると、いつまでもandroidの起動アニメーションのままになって立ち上がってこなくなってしまうことがあります。このときにシリアルのコンソールからlogcatを見てみると、以下のようにあるプロセスが例外を起こして落ちてしまっていたりします。 ログのこの部分はdebuggerdが出しています。(debuggerdのしくみは以前に紹介しました。) I/DEBUG ( 3037): *** *** *** *** *** *** *** *** *** *** *** *** ***

  • KMC Staff Blog:Android2.3(Gingerbread)のソースのダウンロードとビルド

    2010年12月21日 Android2.3(Gingerbread)のソースのダウンロードとビルド 12/18にAndroid2.3(Gingerbread)のソースが公開されました。さっそくビルドして動かしてみたので、その方法を簡単に紹介します。 こちらを参照してください。 2011年05月02日 KZM-A9-DualでAndoridのGingerbreadを動かす最短の手順 準備 2.2までと異なり2.3では64bitLinuxがビルド推奨環境になっています。私はUbuntu 10.04(x86_64)を使用しています。 また、けっこう高性能なPCが必要になるようです。私は最近ビルドマシンを新調してもらいました。(CPU: Intel Core i7 950 @3.07GHz, メモリ12GB) ノートPC上の仮想マシンでは厳しいと思います。 JDK6をインストールしておきます。

  • KMC Staff Blog:Androidのrepo syncのTips

    2010年12月28日 Androidのrepo syncのTips Androidのソースコードをダウンロードするにはrepo sync を行いますが、 これには相当時間がかかります。 その時間を節約するためのちょっとしたTipsを紹介します。 (English version of this page) 既存のリポジトリからコピーすることでダウンロード量を減らす もし既存のソース(例えばandroid-2.2_r1.1)をダウンロードしていたならば、そのリポジトリを利用することでダウンロードする量を減らすことができます。 $ mkdir android-2.3.1_r1 $ cd android-2.3.1_r1/ $ repo init -u git://android.git.kernel.org/platform/manifest.git -b android-2.3.1_r1

  • KMC Staff Blog:Androidのビルド時間でJDKを比較

    2011年05月17日 Androidのビルド時間でJDKを比較 ccacheを使うことで、Androidの再ビルドの時にCとC++のコンパイル時間は大きく短縮することができました。後はJavaのビルド時間をなんとか縮めたいものです。 そこで今回はUbuntuにするにインストールできる3種類のJDKでAndroidのビルド時間を比較してみました。 (English version of this page) 3つのJDK 以下の3つのJDKで試しました。 Ubuntuのapt-getで得られたsun-jdk OracleのサイトからダウンロードしたJDK openjdk Ubuntuのapt-getで得られたsun-jdk 家のサイトに書いてある方法(http://source.android.com/source/initializing.html)でインストールできます。 $ sud

  • KMC Staff Blog:Androidのビルドでccacheを使う

    2011年05月02日 Androidのビルドでccacheを使う Makefile関連(*.mk)を変更した場合には一度クリーンしてからmakeする必要があります。 これは時間のかかることですが、ccacheを使うと時間短縮できます。 Androidではこれを簡単に使うことができます。 (English version of this page) ccacheとは ccache ccacheは最初のコンパイル時にコンパイル結果を別のディレクトリに保存しておきます。そして次のコンパイルの時に、前回とファイルの内容やコンパイルオプションが一致するかどうかをチェックして、一致する場合には実際にコンパイルする代わりに保存しておいた内容を使用します。 ccacheがサポートするのはC/C++/Objective-C/Objective-C++で、Javaはサポートされていません。 高速化されるのは

  • KMC Staff Blog:AndroidでのJavaプログラムの起動やZygoteまわりのメモ

    2011年03月03日 AndroidでのJavaプログラムの起動やZygoteまわりのメモ 以前調べたことをもう一度掘り起こしてみました。 Zygoteの簡単な説明 Androidではアプリケーションや多くのその他のプログラムはJavaで記述されています。これらのプログラムはDalvikVMの上で動きます。 それらのJavaのプログラムを起動するたびにDalvikVMを起動するのではなく、Zygoteと呼ばれるDalvikVMの大元のプロセスに要求を出すと、そのプロセスがforkシステムコールを使って自分自身のコピーの子プロセスを生成し、その子プロセスで指定されたJavaのプログラムを実行するようになっています。 Zygoteは通常必要となる全てのダイナミックリンクライブラリとJavaのクラスライブラリをロードした状態で待機しています。子プロセスはそれをコピーした状態から開始されるので起

  • KMC Staff Blog:gccのトランクにandroid用の変更がマージされた

    2010年06月08日 gccのトランクにandroid用の変更がマージされた 先日gccの4.5.0がリリースされたので、開発用のトランクでは今は次の4.6に向けてコードのマージが行われています。 この変更点に、Android用の変更を見つけたので紹介します。 説明によれば -mandroidというオプションが追加されたようです。 gccの家のgitのリポジトリからトランクのソースを持ってきて見てみました。 $ grep -r android * としてみると、gcc/config/arm/eabi.h がマッチしました。 コマンドラインオプション -mandroidをつけるとAndroid特有の環境に合うように内部的にオプションが追加されるようです。例えば cc1 --> -fno-exceptions 追加 cc1plus --> -fno-exceptions -fno-rtti

  • KMC Staff Blog:AndroidのNDKツールを使ってrubyをビルドして動かす

    2010年08月26日 AndroidのNDKツールを使ってrubyをビルドして動かす 前回の知識を使ってNDKのツールで先日リリースされたruby-1.9.2をビルドしてAndroid上で動かしてみました。 (2011.7.21) アップデート記事を書きました。 RubyAndroid用にビルドする 開発環境にはUbuntu 9.04 (x86_64)を使っています。 準備 ruby 1.9.2をクロスビルドするためには、そのホストruby 1.9.2がインストールされている必要があります。(ビルド中に実行されるrubyスクリプトが1.9.2用になっているため。) $ tar xvf ruby-1.9.2-p0.tar.bz2 $ mkdir obj $ cd obj $ ../ruby-1.9.2-p0.android/configure $ make $ sudo make in

  • KMC Staff Blog:AndroidのNDKのツールを使って実行ファイルをビルドする簡単な方法

    2010年08月24日 AndroidのNDKのツールを使って実行ファイルをビルドする簡単な方法 AndroidのNDKはJavaからJNIを経由して呼び出すダイナミックリンクライブラリを作るためのツールですが、ここに含まれるコンパイラとインクルードヘッダ、ライブラリを使って普通にmainから始まる実行ファイルをビルドすることもできます。ここではその簡単な方法を紹介します。 Makefileの記述 Makefile NDK_TOPにはNDKをインストールしたディレクトリを指定します。 NDK_TOP=/path/to/your/android-ndk-r4b CC = $(NDK_TOP)/build/prebuilt/linux-x86/arm-eabi-4.4.0/bin/arm-eabi-gcc LIBS = -llog TARGET_ARCH_CFLAGS = -march=arm

  • KMC Staff Blog:GCCでリンク時に不要なコードとデータを削除する方法

    2010年04月26日 GCCでリンク時に不要なコードとデータを削除する方法 これもまた、ELC(Embedded Linux Conference)でのセッションの紹介です。 ELCのスライドのページのDenys Vlasenkoさんの"Link time dead code and data elimination using GNU toolchain"を見てください。 組み込みシステムではやはりコードやデータのサイズの削減が必要になる場面がしばしばあります。これを毎回手作業でやるのではscaleしません。このセッションではGNU Tool chainでこれを行う方法を紹介しています。 必要なバージョンはgcc 4.x 以上、binutils 2.18以上。 gcc 4.5から入ったlto(link time optimization)はこのセッションの話とは別です。 通常はリンクす

    nharuki
    nharuki 2010/08/09
  • KMC Staff Blog:Android SDKのgoldfishのCPUをarm1136に置き換える方法

    2009年08月05日 Android SDKのgoldfishのCPUをarm1136に置き換える方法 AndroidのSDKではgoldfishという仮想ハードウェアをqemuで動作させています。この環境は実際のハードウェアがなくても動作させることができるのでとても便利です。goldfishはCPUがARMv5TEアーキテクチャのarm926なのですが、これをARMv6アーキテクチャのarm1136に置き換える実験をしてみたところ意外にすんなり動きました。 その手順をここで紹介します。 2009年11月のEclairのソースリリースでだいぶ状況が変わっています。こちらも参照してください。 以下の作業はUbuntu 9.04上で行いました。Androidのビルドの方法はこちら(http://d.hatena.ne.jp/embedded/20090510/p1)を参照してください。 きん

  • 1