Node.js on Android
来源:互联网 发布:sql主键自增长 编辑:程序博客网 时间:2024/05/29 11:48
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 --versionv0.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!
- Node.js on Android
- Port Node.js to Android running on Genymotion Emulator (x86)
- Installing Node.js on pi
- web Update node.js & npm on Mac
- Installing node.js on ubuntu server 15.10
- node-haystack Episode 10: Node.js add-on
- node js porting to android
- node.js 加载adds on module no found
- How do you install Node.JS on CentOS?
- [Azure体验篇]Node.js on Azure Website
- Latest node.js & npm installation on Ubuntu 12.04
- How To Install Node.js on an Ubuntu 14.04 server
- Install MongoDB and Node.js on a Raspberry Pi
- Node.js installation with nvm on Raspberry pi
- node.js 中 emit() 和 on() 的一个小发现
- How To Install Node.js on a CentOS 7 server
- node.js+android http请求响应
- node.js+android http请求响应
- Visual+C+++6.0(支持win7).zip下载
- fprintf文件格式化输出遇到的问题及其解决
- .emacs 文件简单配置亲测
- SPRING TOOL SUITE (STS),启动TOMCAT报 45 秒 超时
- An attempt by a client to checkout a Connection has timed out.
- Node.js on Android
- 终极完美《简易商城购物车系统》揭秘--MVC设计模式
- 亮度分量帧内预测的主函数
- UEFI 实战(1) 开发环境
- httpSession生命周期
- Behavioral Patterns 行为模式总结
- .emacs 文件参考内容大全
- html标签属性大全
- 1. 收到一块PandaboardES开发板一块