node.js android数据,Node.js on Android

From: http://blog.amt.in/nodejs-on-android

I'm trying to make the recently popular (well, maybe not so recently) Node.js run on Android. So far, I've succeeded

in getting it to run on the ISO1, a smartphone running Android 1.6, but only by doing the following.

Here

are the basic steps:

Root

the IS01

Use

qemu to build a Linux on an ARM environment

Use

the ARM Linux environment to build Node.js

Copy

the Node.js binary to the IS01

Rooting

the IS01

This

step requires root permissions on Android to get Node.js running, since we need to create a lib directory in which to place shared libraries.

To

root the device quickly, we'll follow the directions in the MobileHackerz Blog: Getting

Root Permissions for the au IS01, build 01.00.09(Japanese).

Following

the directions there is an easy way to get root.

Things

to watch out for:

Turn

USB debugging on.

Settings => Applications => Development => USB debugging

Install

ChainsDD Superuser.

Install it from the Android Market

Try

repeatedly until it works.

Using

qemu to build Linux on an ARM environment

Using

qemu allows us to emulate an ARM CPU, and build a virtual environment. We'll install debian on qemu, and from there build Node.js. This will get us a Node.js binary that can run on an ARM processor.

For

details about building the qemu environment, I used Himajime’s

site for ARM emulation.

The

procedures are as follows. I'm using Ubuntu 10.4.

Install

qemu

$ sudo apt-get install qemu qemu-kvm-extras

Get

and execute the image

Now

we grab the installed Debian image file.

$ wget http://people.debian.org/~aurel32/qemu/armel/debian_lenny_armel_small.qcow2

$ wget http://people.debian.org/~aurel32/qemu/armel/initrd.img-2.6.26-1-versatile

$ wget http://people.debian.org/~aurel32/qemu/armel/vmlinuz-2.6.26-1-versatile

Run

Debian on qemu

Execute

the following command to start Debian on qemu.

$ sudo qemu-system-arm -M versatilepb -kernel vmlinuz-2.6.26-1-versatile

-initrd initrd.img-2.6.26-1-versatile -hda debian_lenny_armel_small.qcow2

-append "root=/dev/sda1" -m 256 -redir tcp:2222:10.0.2.15:22 -redir tcp:8124::8124

Keep

the following in mind:

The

above has been formatted to display, but should be executed on one line

Memory

is allocated by specifying -m 256

Connections

via ssh over port 2222 on localhost are enabled by specifying -redir tcp:2222:10.0.2.15:22

Access

over port 8124 is checked by specifying -redir tcp:8124::8124

Using

the ARM Linux environment to build Node.js

We

can build Node.js using the usual method. We could also use nave to manage multiple versions of Node.js, or build as-is from the source code.

$ sudo apt-get install build-essential libssl-dev curl

$ mkdir tmp

$ cd tmp

$ wget http://nodejs.org/dist/node-v0.3.1.tar.gz

$ tar -xvzf node-v0.3.1.tar.gz

$ cd node-v0.3.1

$ ./configure

$ make

$ sudo make install

The

build options for the V8 engine need to be changed.

$ vi node-v0.3.1/deps/v8/SConstruct

# For node-v0.3.1, add '-march=armv5t' to 'CCFLAGS', around the 128th line.

126 'gcc': {

127 'all': {

128 'CCFLAGS': ['$DIALECTFLAGS', '$WARNINGFLAGS', '-march=armv5t'],

129 'CXXFLAGS': ['$CCFLAGS', '-fno-rtti', '-fno-exceptions'],

130 },

Use

tar to archive the Node.js executable and shared libraries, and move them to Android.

$ tar pcvf node.tar /usr/local/bin/node /lib/librt* /usr/lib/libssl.so.0.9.8

/usr/lib/libcrypto.so.0.9.8 /lib/libdl* /usr/lib/libstdc++*

/lib/libm.so.6 /lib/libm-2.7.so /lib/libgcc_s.so.1 /lib/libpthread*

/lib/libc.so.6 /lib/libc-2.7.so /lib/ld-linux.so.3 /lib/ld-2.7.so

/usr/lib/libz.so.1*

Get

root on the terminal in Android, and execute the following commands:

$ su

# tar xvf node.tar

# /usr/local/bin/node --version

v0.3.1

This

is translated version of a Japanese article originally

written by Tom Hughes-Croucher who is working in joynet.

This

article was translated by @jedschmidt.

Special

Thanks to @jedschmidt &

Tom Hughes-Croucher!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值