金子邦彦研究室プログラミングJavaScript による Web プログラミングAndroid システムを、Ubuntu 上でコンパイル (クロスコンパイル)

Android システムを、Ubuntu 上でコンパイル (クロスコンパイル)

開発環境

関連する外部ページhttp://source.android.com/source/initializing.html

  1. Android Studio のインストール

    Android Studio のインストール」のWebページを見て下さい

  2. Android Studio 下のファイルを使うように PATH の設定

    .bashrc に次を追加

    export PATH=$PATH:/usr/local/android-studio/sdk/tools:/usr/local/android-studio/sdk/platform-tools
    
  3. Oracle Java 6 のインストール
    sudo add-apt-repository -y ppa:webupd8team/java
    sudo apt -y update
    sudo apt-get upgrade
    sudo apt -y install oracle-java6-installer
    sudo apt -y install oracle-java6-set-default 
    
  4. java-6-oracle の選択
    sudo update-java-alternatives -s java-6-oracle
    

    [image]
  5. 開発用パッケージのインストール
    sudo apt -y update
    sudo apt -y install git-core gnupg flex bison gperf build-essential \
      zip curl libc6-dev libncurses5-dev x11proto-core-dev \
      libx11-dev libreadline6-dev libgl1-mesa-dev \
      libgl1-mesa-dev tofrodos \
      python-markdown libxml2-utils xsltproc zlib1g-dev \
      libsdl-dev libesd0-dev libwxgtk2.6-dev 
    

Android ソースコードのダウンロード

関連する外部ページhttp://source.android.com/source/downloading.html

  1. repo コマンドのインストール
    mkdir /tmp/bin
    cd /tmp
    curl https://commondatastorage.googleapis.com/git-repo-downloads/repo > /tmp/bin/repo
    sudo cp /tmp/bin/repo /usr/local/bin/repo
    sudo chmod 755 /usr/local/bin/repo
    

    [image]
  2. Repo クライアントの設定
    sudo mkdir /data/local
    sudo chown -R $USER /data/local
    cd /data/local
    /usr/local/bin/repo init -u https://android.googlesource.com/platform/manifest
    
  3. Android のソースコードのダウンロード
    cd /data/local
    repo sync
    

    [image]
  4. ダウンロード終了の確認

    [image]

ビルド

  1. 初期化
    cd /data/local
    source build/envsetup.sh 
    

    [image]
  2. ターゲットの選択
    lunch aosp_arm-eng
    

    [image]
  3. ビルド
    make -j4
    
  4. ビルド終了の確認
  5. デバイスのフラッシュ
    adb reboot bootloader
    fastboot flashall -w 
    
  6. エミュレータ
    which emulator
    emulator
    
  7. .bashrc に ccahche の設定
    cd
    echo "export USE_CCACHE=1" >> .bashrc
    echo "export CCACHE_DIR=${HOME}/.ccache" >> .bashrc
    prebuilts/misc/linux-x86/ccache/ccache -M 100G
    

    クロスコンパイルしてみる

    https://elinux.org/Android_Tools export PATH=$(pwd)/prebuilts/gtools/linux-x86/arm/arm-eabi-4.6/bin:$PATH $ export ARCH=arm $ export SUBARCH=arm $ export CROSS_COMPILE=arm-eabi- arm-eabi-gcc -o hello hello.c -Wl,-rpath-link=/Users/nirnimesh/NIR/android/mydroid/cupcake/out/target/product/generic/obj/lib -L/Users/nirnimesh/NIR/android/mydroid/cupcake/out/target/product/generic/obj/lib -nostdlib /Users/nirnimesh/NIR/android/mydroid/cupcake/out/target/product/generic/obj/lib/crtbegin_dynamic.o -lc https://android-tricks.blogspot.jp/2009/02/hello-world-c-program-on-using-android.html 以下、書きかけ

    1. ツールチェーンのソースコードのダウンロード
      ${NDKROOT}/build/tools/download-toolchain-sources.sh /tmp/ndk-$USER/src
      
    2. ソースコードのダウンロードの結果の確認

      エラーメッセージが出ていないこと

    3. ビルド用の sysroot の準備
      ${NDKROOT}/build/tools/gen-platforms.sh --arch=arm rc-dir=/tmp/ndk-$USER/src --dst-dir=/data/local
      

      [image]