我特别感兴趣如何便携式之间的各种手机。我们有一个应用程序有一些计算沉重的代码,我们想分享在。如果我们可以把它写在C,我们就会有一个单一的代码基础,但是如果本仅支持的一个子集的处理器的电话制造商正在创造,或者如果我们要重新编译为每个处理器,这不是一个可行的解决方案。

谢谢你的任何经验。

有帮助吗?

解决方案

问题是否所有(1.5版+)电话会支持输出当前本:

所有我可以说是没有什么在文件中建议,否则(除非也许如果你读一个暗示"这种释放 支持ARMv5TE指示设置"),我跟安卓新闻相当密切,并没有听说过任何手机被发布使用一个非臂构(虽然 有些人砍死在一起的建立EeePC).看 安卓来源, 有痕迹只有一个其他平台,x86。作为未来计划的谷歌和 OHA?你必须问他们。他们最近宣布了一些 开发天, 但很可能所有的景点都不见了现在的(第一个是今天)。我登记了相当初期的伦敦的天(17)因此,如果我在,我会得到一个答案有(我渴望确切知道太)。

其他提示

我不是很熟悉的瓦特/ iPhone开发的,但如果你看看上的的Android NDK页面,下的开发工具部分,它列出了可用的平台保证头部,所以如果iPhone支持这些功能,也可以创建你的代码,比这两个平台上的本机库之间的接口我不明白为什么这是行不通的。

在NDK基本上的 Java本地接口为Android的实现。它给你GCC 4.2.1(全套的工具,据我可以告诉)与目标arm-eabi。无论结果代码将在iPhone或我不知道其他的设备上运行;我从来没有编码的iPhone。下面是file不得不说的东西我与NDK内置也许你们可以比较一下:

  

libpuzzles.so:ELF 32位LSB的共享对象,ARM,版本1(SYSV),动态链接,而不是汽提

strip被包括;我只是还没有在这里运行它。)下面是gcc -vg++ -v(他们是相同的):

  

使用内置的规格。

     

目标:臂EABI

     

配置有:/opt/digit/android/git/android-ndk/out/arm-eabi-4.2.1/toolchain/src/gcc-4.2.1/configure前缀= /选择/数字/机器人/git/android-ndk/build/prebuilt/linux-x86/arm-eabi-4.2.1 --target =手臂-EABI主机= x86_64未知-Linux的GNU --build = x86_64未知-Linux的GNU --enable语言= C,C ++ - 禁用libssp --enable线程--disable-NLS --disable-libmudflap --disable-libgomp - 禁用的libstdc __- V3 --disable-sjlj的例外 - -disable共享--with浮子=软--with-FPU = VFP --with拱=的ARMv5TE --enable-目标optspace --with-ABI = AAPCS --disable-NLS前缀= /选择/digit/android/git/android-ndk/build/prebuilt/linux-x86/arm-eabi-4.2.1 --with-SYSROOT = /选择/数字/机器人/ GIT中/机器人-NDK /建造/平台/蛋糕/拱形臂--program - 转换 - 名称= S,^,臂EABI - ,

     

主题模型:单一

     

gcc版本4.2.1

假设代码将运行,在API级别管理这是一个单独的和有趣的问题。 Android将只让你通过JNI调用API的本机代码。我不熟悉iPhone的做法,但我知道这不是Java,所以我猜它更像是标准的动态链接或dlopen()?我的意思是,你必须要么使你的JNI功能(例如Java_com_example_Foo_YourMethod(JNI_Env*, jobject, ...)应对来自未尝不是一个JVM被称为(有你的iPhone的代码假一JNI_Env例如?),或者,更可怕的,通过提供启动适用于iPhone,然后一个原生API包括JNI包装,其中非JNI的平台可以忽略,这是我收集的是这种事。希望的帮助的常用方法。

我有一个很好的经验写在NDK与帧缓冲处理跨面包JNI / C应用程序,并在JAVA渲染。

皮蒂,其一个机器人只溶液

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top