android ndk hw debuggning memory

时间:2015-09-03 16:09:28

标签: memory-management android-studio android-ndk remote-debugging compiler-optimization

Backgrond

我在C方面非常有经验,对Android和Java来说还很陌生,但这是编程方面的环境问题。

我已经在ANSI-C中开发了一个管理应用程序,可以移植到任何操作系统,只需在依赖于操作系统的代码中添加UI。它使用了相当多的内存,特别是对于庞大的用户文件。我有一个有效的Win32程序,尝试使用带有NDK的Android Studio制作Android应用程序。

Android studio捆绑NDK安装工作正常

我已经安装并制作了一个带有NDK的Win7终极Android Studio 1.3,并在模拟器中编译并运行了ActionbarStyled(非NDK)hello-jni(NDK)示例,流畅而美观。我也在模拟器中成功运行了带有一堆额外c文件的Hello-jni示例(未调用,目前只是垃圾,编译时没有错误,在此步骤中)

然后我尝试连接我的三星TAB3 SM-T110模板(一个需要Win7三星驱动程序SAMSUNG_USB_Driver_for_Mobile_Phones.zip)到我的Win7并尝试了。 ActionbarStyled示例工作得很好。 Hello-JNI样本也是如此。

但是

使用一堆额外的c文件运行Hello-jni示例我收到此错误消息: 启动本机调试会话时出错:java.lang.IllegalArgumentException:无法在设备上找到com.example.hellojni的进程samsung-sm_t110-47900bc50c0c3100

我试着了解问题是什么?是缺乏内存,三星充满了活跃的运行应用程序,模拟器显然不是。

是什么让三星电脑停止申请?错误信息不是那个描述?

支持处理此类问题的其他一些问题

我们正在讨论Android studio 1.3捆绑NDK,早期设置(文章中)有多少适用于这个新的未来NDK标准使用?

内存?

运行纯Hello-jni示例我有大约6Mb内存(使用5Mb),这对我的需求来说非常差,我需要做些什么让我的应用获得更多的内存分配?是否由于内存不足而导致错误消息?

可以使用多大的Android应用程序?我们是否再次进入8位DOS 64Kb细分市场?我从过去就知道,但事实并非如此?如果需要知道处理它。 Library for unrestricted heap memory for bitmaps using NDK on Android这个问题很有意思,但在这里我们讨论的是jni(C-)代码而不是java。

编译器优化?

我有一些非常庞大的C文件,因为它们是机器生成的,将XML文档库转换为C代码(使程序从XSD定义编写C代码)。在一个应用程序中,我大部分时间只使用所有C函数的5%,其余的都在Windows dev studio /编译器中进行了优化。当然,我可以将我的源代码重新组织为一些额外的工作,但我需要知道。 Android Studio NDK中的优化如何支持?

在这个测试中,没有额外的C函数被调用,除了与hello-jni样本中相同的常规函数​​。实际上编译器在两种情况下都应该完全相同(修改后的和原始的hello-jni)。但显然它没有。请详细解释一下环境是如何运作的,所以我知道吗?

一般兴趣

我试图在Android开发人员中找到描述编译器行为,内存管理和环境之类的东西(Java处理这样完全不同,但在C编程中需要注意)。我认为对于NDK的使用,在Android开发者页面的某个地方,而不是在这里获得环境的一般理解,这将是一个有趣的答案。这还包括编译器在不同情况下的优化方式。还有如何制定环境。

0 个答案:

没有答案