『壹』 剛剛在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可能不能直接使用,那麼就自行編譯吧。
<完>