我想将用C编写的应用程序移植到 android.将应用程序从C转换为 Java将需要大量工作,我更愿意使用该应用程序更好地为该平台,而不是修复转换错误和解决重构问题.

NDK似乎是一条很好的路线,但实际上我不想错过一个平台(如果它占市场的很大一部分)只是因为NDK不支持或不支持它.

Android声称支持MIPS,ARM,X86和其他……但实际上我见过的所有实现都只在ARM(或arm兼容)上.
我在这个网站上查了一下:
http://www.pdadb.net/

使用NDK会不是很糟糕?
是否有任何运行或将运行Android的非ARM设备?
我在哪里可以找到更多相关信息?

提前致谢!

解决方法

此时问题不在于你不会因cpu架构而失去市场份额,因为目前很少有非ARM Android设备,问题是由于要求用户运行Android 2.3,你可能会失去市场份额或者稍后,您必须使用它来创建一个可以访问窗口,传感器和输入子系统的完全本机应用程序.

避免重写代码是一个很好的目标,但由于Android的不同Window和生命周期API,你可能不得不重写部分代码.现在你必须用C而不是Java重写代码的一些重要部分.

您可以尝试使用混合方法,在Java中编写大部分UI,然后调用现有的C代码.

你在制作游戏吗?那么你可能想要处理这些问题并继续使用NDK.如果没有,请尝试在Java中尽可能多地实现该程序,并将NDK用于需要快速执行的复杂,经过测试的代码部分.

Android是否真的存在于ARM之外的其他平台上?的更多相关文章

  1. 添加WebViewClient时,Android WebView忽略target =“_ blank”

    因为我有15个链接,我需要比较.我无法在新浏览器中加载所有网址,因为有一些链接需要在同一个WebView中打开.解决方法我有一个解决方法的想法.使用自定义架构替换应在新窗口中打开的所有链接.然后你可以自己处理.对于最小的中断设置,还可以设置自定义主题并处理所有配置更改:然后在链接处理程序中,您可以使用getIntent().getData()读取url.还请记住,你应该处理http和https,我在上面的简短例子中跳过了.这是一个如何重写网址的JavaScript示例:

  2. android – 尝试commitAllowingStateLoss时的FragmentManager NullPointerException

    上下文:我有一个带片段的活动和3个InnerFragments.当调用FragmentonDestroy()时,我想从FragmentManager中删除内部片段.onDestroy()的代码如下.问题:FragmentManager抛出NullPointerException,可能是在调用commitAllowingStateLoss()时.我不明白为什么.堆栈跟踪:解决方法FragmentMa

  3. Android架构组件ViewModel – 如何在测试Activity上模拟ViewModel?

    我正在尝试设置类似于GithubbrowserSample的UI测试,看起来示例项目只有Frag的模拟viewmodel而不是Activity的示例.这是我的代码,我试图通过模拟viewmodel来测试Activity.但viewmodel未在Activity中的onCreate()之前设置.有人可以帮我解决这个问题吗?解决方法JUnit@Rules在@Before方法之前进行设置,因此您的活动在

  4. 将Trickle移植到android

    >如何告诉编译器链接我之前为android交叉编译的共享库,以便为android生成最终的可执行命令行应用程序.而且这甚至可以在Android上移植涓流?

  5. android – 开发支持蓝牙技术的跨移动应用程序的最佳方法是什么?

    我已经阅读了Phonegaphere的原生功能支持.显然,它没有提到蓝牙支持.我没有找到或找到任何其他具有跨移动平台开发支持的平台.结果,我目前面临两种选择.>为所有平台独立构建>找到合适的跨平台开发解决方案.我的问题是;对于那里的移动开发者,你建议我选择哪个选项,这里没有列出?

  6. 在android中创建聊天应用程序的最佳做法是什么

    我打算创建一个Android聊天应用程序.实际上聊天将成为应用程序的一项功能.我想知道有关Android聊天应用程序的最佳实践.我熟悉的两个选项是C2MD,每隔几秒就会对服务器db进行一次自定义轮询.现在,我知道C2MD本来应该是伟大的,但根据我的理解,它并不可靠.我试图实现它,它似乎没有工作.此外,如果由于某种原因谷歌结束时发生了某些事情(就像他们的服务器已关闭–不太可能但可能发生)我无法联系他

  7. Android Build Tools无论如何都只构建x86_64. APK通过adb安装,但在Play商店中显示不兼容

    所以这发生了.无论我在build.gradle上做什么,所有的APK都会以native_code=’x86_64’标志出来,所以当我将应用程序部署到商店时,结果是有15K不兼容的设备,只有19兼容.我首先想到,不知何故,安装NDK是原因,或者我修改后的构建脚本.但是当我通过GenerateSignedAPK向导时,它仍然会发生.分裂块也最初缺失,并没有帮助.最奇怪的是,当我通过控制台推送安装时,IT工作!

  8. android – PANIC:’arm’CPUS缺少模拟器引擎程序

    我得到了与下面链接中提到的相同的问题.但是这个问题已被搁置,我仍在寻求解决方案.https://stackoverflow.com/questions/27146511/panic-missing-emulator-engine-program-for-arm-cpus-eclipse所以我想提出这个问题并在这里问一下.直到昨天,模拟器工作正常.但是从今天起,我在尝试打开模拟器时收到以下错误我的A

  9. android – 为什么我们需要onUpgrade(); SQLiteOpenHelper类中的方法

    我正在遵循这个教程可以任何身体请让我清楚这段代码.问题onUpgrade()的目的是什么;方法?重要为什么我们在这个方法中删除表并重新创建?提前致谢.解决方法onUpgrade基本上用于处理任何新版本应用程序的新数据库更改.在onUpgrade中并不总是需要删除表,这取决于您的用例.如果要求不要保留旧版本应用程序中的数据,那么drop应该会有所帮助,但是如果它更改架构那么它应该只有更改脚本.

  10. 如何在Android中的MVP架构中的两个演示者之间共享数据?

    演示者不应直接相互沟通.也许我应该将List抽象为存储库/交互器?如何在演示者之间共享列表?

随机推荐

  1. bluetooth-lowenergy – Altbeacon库无法在Android 5.0上运行

    昨天我在Nexus4上获得了Android5.0的更新,并且altbeacon库停止了检测信标.似乎在监视和测距时,didEnterRegion和didRangeBeaconsInRegion都没有被调用.即使RadiusNetworks的Locate应用程序现在表现不同,一旦检测到信标的值,它们就不再得到更新,并且通常看起来好像信标超出了范围.我注意到的一点是,现在在logcat中出现以下行“B

  2. android – react-native动态更改响应者

    我正在使用react-native进行Android开发.我有一个视图,如果用户长按,我想显示一个可以拖动的动画视图.我可以使用PanResponder实现这一点,它工作正常.但我想要做的是当用户长按时,用户应该能够继续相同的触摸/按下并拖动新显示的Animated.View.如果您熟悉Google云端硬盘应用,则它具有类似的功能.当用户长按列表中的任何项目时,它会显示可拖动的项目.用户可以直接拖

  3. android – 是否有可能通过使用与最初使用的证书不同的证书对其进行签名来发布更新的应用程序

    是否可以通过使用与最初使用的证书不同的证书进行签名来发布Android应用程序的更新?我知道当我们尝试将这样的构建上传到市场时,它通常会给出错误消息.但有没有任何出路,比如将其标记为主要版本,指定市场中的某个地方?解决方法不,你不能这样做.证书是一种工具,可确保您是首次上传应用程序的人.所以总是备份密钥库!

  4. 如何检测Android中是否存在麦克风?

    ..所以我想在让用户访问语音输入功能之前检测麦克风是否存在.如何检测设备上是否有麦克风.谢谢.解决方法AndroidAPI参考:hasSystemFeature

  5. Android – 调用GONE然后VISIBLE使视图显示在错误的位置

    我有两个视图,A和B,视图A在视图B上方.当我以编程方式将视图A设置为GONE时,它将消失,并且它正下方的视图将转到视图A的位置.但是,当我再次将相同的视图设置为VISIBLE时,它会在视图B上显示.我不希望这样.我希望视图B回到原来的位置,这是我认为会发生的事情.我怎样才能做到这一点?编辑–代码}这里是XML:解决方法您可以尝试将两个视图放在RelativeLayout中并相对于彼此设置它们的位置.

  6. android – 获得一首歌的流派

    我如何阅读与歌曲相关的流派?我可以读这首歌,但是如何抓住这首歌的流派,它存放在哪里?解决方法检查此代码:

  7. android – 使用textShadow折叠工具栏

    我有一个折叠工具栏的问题,在展开状态我想在文本下面有一个模糊的阴影,我使用这段代码:用:我可以更改textColor,它可以工作,但阴影不起作用.我为阴影尝试了很多不同的值.是否可以为折叠文本投射阴影?

  8. android – 重用arm共享库

    我已经建立了armarm共享库.我有兴趣重用一个函数.我想调用该函数并获得返回值.有可能做这样的事吗?我没有任何头文件.我试过这个Android.mk,我把libtest.so放在/jni和/libs/armeabi,/lib/armeabi中.此时我的cpp文件编译,但现在是什么?我从objdump知道它的名字编辑:我试图用这个android.mk从hello-jni示例中添加prebuild库:它工作,但libtest.so相同的代码显示以下错误(启动时)libtest.so存在于libhello-j

  9. android – 为NumberPicker捕获键盘’Done’

    我有一个AlertDialog只有一些文本,一个NumberPicker,一个OK和一个取消.(我知道,这个对话框还没有做它应该保留暂停和恢复状态的事情.)我想在软键盘或其他IME上执行“完成”操作来关闭对话框,就像按下了“OK”一样,因为只有一个小部件可以编辑.看起来处理IME“Done”的最佳方法通常是在TextView上使用setonEditorActionListener.但我没有任何Te

  10. android – 想要在调用WebChromeClient#onCreateWindow时知道目标URL

    当我点击一个带有target=“_blank”属性的超链接时,会调用WebChromeClient#onCreateWindow,但我找不到新的窗口将打开的新方法?主页url是我唯一能知道的东西?我想根据目标网址更改应用行为.任何帮助表示赞赏,谢谢!

返回
顶部