2015年3月5日木曜日

RaspberryPiでPhoneGap(Cordova)の開発環境を構築する。


昔のRapberryPiだとCPUパワーが不足していて実用的ではなかったけど、
RaspberryPiになって2倍高速化から使えるんじゃないか?と思って構築してみた。

Step1. まずはnode.jsのインストール。

 
curl -L git.io/nodebrew | perl - setup


#2015.02.16時点最新
nodebrew install v0.12.0(ビルドすると1時間くらい)





nodebrew install-binary v0.11.14 (ビルド済みのを使う場合はこっち)

nodebrew use v0.12.0

これでnodejsのインストール完了。

ちなみにnodebrewというのはNodejsのバージョン管理ツールで
気軽にバージョンが切替できるしくみになっている。


Step2.Java jdkのインストール

#openjdkだとandriod studioが動いてくれないので、Oracle版を使うようにする。

sudo apt-get oracle-java7-jdk
sudo update-alternatives --config java
sudo update-alternatives --config javac

Step3.AndroidStudioとAndroid-sdkのインストール  Android-sdkのビルド

作業している途中でARMは自前ビルドが必要と分かったので、ビルドすることにする。

RaspberryPiデスクトップ上からAndroid Studioを実行してアップデートを開始する。(20分くらい)

~/.profile にパスを追加しておく
export ANDROID_HOME=/home/pi/share/android-sdk-linux/
export PATH=$ANDROID_HOME/platform_tools:$ANDROID_HOME/tools:$PATH

export PATH=/home/pi/bin:$PATH

設定したら再読み込みしとく。
source .profile


自前でAndroidSDKをビルドする場合、
sudo apt-get install git gnupg flex bison gperf build-essential zip curl  libncurses5-dev x11proto-core-dev libx11-dev libreadline6-dev libgl1-mesa-glx libgl1-mesa-dev python-markdown libxml2-utils xsltproc zlib1g-dev

mkdir ~/bin
PATH=~/bin:$PATH
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo
 
mkdir android
cd android
mkdir src
cd src
repo init -u https://android.googlesource.com/platform/manifest
repo sync
 
~ここまで40分くらい(syncがものすごい時間かかる。。)~ 
 
2     $ . build/envsetup.sh
3     $ lunch sdk-eng
4     $ make sdk 


build/core/envsetup.mk (@ line 76)
   ifneq (,$(findstring Power,$(UNAME)))
           HOST_ARCH := ppc
   endif
   
   ifneq (,$(findstring arm,$(UNAME)))
           HOST_ARCH := arm
   endif
   
   BUILD_ARCH := $(HOST_ARCH) 
 
build/core/main.mk (@ line 178)
   requires_openjdk := false
   ifeq ($(LEGACY_USE_JAVA6),)
   ifeq ($(HOST_OS), linux)
   ifneq ($(HOST_ARCH), arm)
   requires_openjdk := true
   endif
   endif
   endif 
 
build/core/combo/TARGET_linux-arm.mk (@ line 91)
   android_config_h := $(call select-android-config-h,target_linux-arm)  

   $ cd ~/android/src/external/expat
   $ mm
    . .
   $ cd ~/android/src/external/libpng
   $ mm
    . .
   $ cd ~/android/src/system/core/liblog
   $ mm
    . .
   $ cd ~/android/src/system/core/libutils
   $ mm
    . .
   $ cd ~/android/src/system/core/libcutils
   $ mm
    . . 
 
   $ cd ~/android/src/build/libs/host
   $ mm
   $ cd ~/android/src/build/tools/acp
   $ mm 
 
   $ cd ~/android/src/external/zlib
   $ vi Android.mk
   $ mm
    
   $ cd ~/android/src/system/core/libziparchive
   $ vi Android.mk
   $ mm 
 
   $ cd ~/android/src/frameworks/base/libs/androidfw
   $ mm
    . . 
 
   $ cd ~/android/src/prebuilts/misc/linux-arm/bison
   $ ln -s /usr/bin/bison . 
 
 
   $ cd ~/android/src/frameworks/base/tools/aapt
   $ mm
    . .
   $ cd ~/android/src/frameworks/base/tools/aidl
   $ mm
    . .
   $ cd ~/android/src/build/tools/zipalign
   $ mm 
 
      

Step4. Phonegap(Cordova) Helloworldをやってみる。

Step3のインストール最中にhello world を作ってみる。
npm install cordova -g

cordova create hello com.example.hello HelloWorld
cd hello
cordova 

cordova serve

参考:
 http://cordova.apache.org/docs/en/4.0.0/guide_cli_index.md.html
  http://www.timelesssky.com/blog/building-android-sdk-build-tools-aapt-for-debian-arm


コメントを投稿

Androider