‘壹’ 刚刚在linux下编译好了ogre 3D渲染引擎,怎样将它移植到android中啊。
目前为止,Ogre 1.7.3暂时不支持Android,虽然Android是以Linux为底层内核,但是Android NDK编译Ogre 1.7是不可能的。但是可以检查Ogre的最新代码 1.8版本(https://bitbucket.org/sinbad/ogre/src/)在OgreMain/src文件夹下面可以看到Android文件夹,说明Ogre 1.8是支持Android的,但是Ogre 1.8没有最终release。不过Google Code上有个Gamekit(http://code.google.com/p/gamekit/),集成了Ogre 1.8和物理与声音引擎,由于使用不稳定的Ogre 1.8,可以使用NDK编译在Android上使用。
‘贰’ 请教linux 迁移到 android 方法
比如以移植一个helloworld程序作为例子。
#include<stdio.h>
voidmain()
{
printf("HelloWorld! ");
}
输入命令进行静态编译:arm-none-linux-gnueabi-gcc hello.c -static -o hello.out
然后利用adb push 将helllo.out放进android设备的/system/bin目录中,
用chmod 755 /system/bin/hello.out 更改其为执行权限。
输入: hello.out 即可看到屏幕上输出HelloWorld!
‘叁’ linux下的应用程序移植到android系统,求思路!
如果是JAVA之类的代码,可能移植难度要低些。移植程序是个苦活,与其没完没了的调试,还不如按照原来的设计思路和功能重新写代码呢。
‘肆’ 如何移植 linux 到安卓手机
移植toolbox到普通Linux系统中
toolbox是Android中专用的busybox,从嵌入式Linux转过来都会大大地吐槽功能简陋。但实质上也有很多特有的很好用的功能。比如getevent命令来调试所有的输入事件。已经静态编译出来了(下载地址:toolbox 静态编译),这里记录一下移植过程。
原本以为会很难,所以一直放很久才开始做,最终很简单,只需要稍加修改Android.mk就可以编译出一个静态链接的toolbox。以下diff文件就是改动信息。
diff --git a/system/core/toolbox/Android.mk b/system/core/toolbox/Android.mk
index 086ba0d..d5aef3b 100755
--- a/system/core/toolbox/Android.mk
+++ b/system/core/toolbox/Android.mk
@@ -91,6 +91,7 @@ LOCAL_SRC_FILES := \
grep/grep.c grep/fastgrep.c grep/file.c grep/queue.c grep/util.c
LOCAL_SHARED_LIBRARIES := libcutils libc libusbhost
+LOCAL_STATIC_LIBRARIES := libc libcutils
LOCAL_C_INCLUDES := bionic/libc/bionic
@@ -102,6 +103,7 @@ LOCAL_C_INCLUDES += external/libselinux/include
endif
+LOCAL_FORCE_STATIC_EXECUTABLE := true
LOCAL_MODULE := toolbox
# Including this will define $(intermediates).
然后进行编译就自动编译成了静态链接的了。
$ file out/target/proct/xxx/system/bin/toolbox
out/target/proct/xxx/system/bin/toolbox: ELF 32-bit LSB executable, ARM, \
version 1 (SYSV), statically linked, stripped
$12341234
当然,我没有编译所有的CPU架构的,只是编译了ARMv7的,所以比较低的架构或者其它CPU可能不能直接使用,那么就自行编译吧。
<完>