草庐IT

flutterBuildDebugandroid-arm

全部标签

android - 为 ARM 编写的原生 android 代码如何在 x86 上运行?

摩托罗拉刚刚发布了一款基于x86的Android手机。对于为ARM(例如netflix)编写的native应用程序/库如何在这款手机上运行,​​我有点困惑。如果有人能解释一下,我将不胜感激。 最佳答案 是的,ARM原生代码使用名为Houdini的仿真功能在Intelx86上运行这个库的作用是动态读取ARM指令并将它们转换为等效的x86指令。这就是为什么许多应用可以在x86上按原样运行而无需实际构建等效库的原因。 关于android-为ARM编写的原生android代码如何在x86上运行?

android - 使用 ARM 的 newlib 交叉编译 GCC : how to specify GCC options like -march?

我已经在MacOSX上为ARM目标编译了GCC和newlib。但是,libc.a是使用-fshort-enums编译的,我不希望这样,因为当我为ARM编译东西时,我使用-fno-short-enums。当然,这会发生冲突:ld:warning:/var/folders/9m/2wnjp9zd71x13cpdpf16y_4r0000gn/T//ccQuEnp6.ouses32-bitenumsyettheoutputistousevariable-sizeenums;useofenumvaluesacrossobjectsmayfail每次我尝试运行“Hello,World!”时可执行文

android - arm64-v8a 是否与 armeabi-v7a 兼容?

对于我的Android应用,我现在正在使用ABI“x86”和“armeabi”。armeabi用于所有ARM设备,包括armv7a和arm64-v8a。现在我想删除“armeabi”并继续使用“x86”和“armeabi-v7a”。我在文档中没有找到任何提示,即ARMv8也与ARMv7兼容-如果我不提供armeabi但现在提供armeabi,任何人都可以确认我的应用程序仍可在运行arm64-v8a的设备上运行-v7a-库? 最佳答案 许多现代Android设备(例如Nexus5x)都具有带有arm64-v8a指令集的AArch64处

android.mk arm-linux-androideabi-g++ 异常和 __cxa_allocate_exception

我正在从源代码重建Android(以闪存到设备上,现在使用模拟器),尝试添加一个命令行工具。我已将我的源代码放在repo/exernal/...并编写了Android.mk。我得到以下未定义:__cxa_allocate_exception__cxa_begin_catch__cxa_end_catch__cxa_end_cleanup__cxa_free_exception__cxa_get_exception_ptr__cxa_rethrow__cxa_throw__gxx_personality_v0我在这里搜索了具有相同未定义的其他问题,但似乎无法找到适用于Android的解决

Android Studio - 如何使用 ARM 而不是 HAXM 制作 AVD?

我是AndroidStudio新手。我的计算机不支持HAXM,所以它不会让我安装它以用于虚拟化。在此网站上的一些类似问题中,人们提到使用ARM而不是HAXM设置虚拟设备。我怎样才能做到这一点?在AVD管理器中,所有预制的硬件配置文件都使用HAXM,当我单击“新建硬件配置文件”时,我看不到任何使用ARM的选项。我查看了SDKManager和API22,我已经安装了“ARMEABIv7aSystemImage”和“GoogleAPIsARMEABIv7aSystemImage”,这些是我需要的吗?如何使用ARM创建自定义虚拟手机,或者有什么方法可以使用预先存在的ARM硬件设备而不是HAXM

android - 如何在安卓设备上查找 ARM 处理器版本?

我尝试了以下命令,它在一些设备上运行良好。adbshellgetprop|grepabi此命令无法获取某些设备的ARM处理器版本。有没有其他方法可以查明我的设备在哪个版本的ARM处理器上运行?谢谢 最佳答案 执行以下命令:adbshellgetpropro.product.cpu.abi 关于android-如何在安卓设备上查找ARM处理器版本?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/que

c - 在 ARM Cortex-R4 上运行无 MMU Linux

我的系统使用的是ARMCortex-R4。它有一个内存保护单元而不是一个内存管理单元。实际上,这意味着内存保护有专用硬件,但物理地址和虚拟地址之间存在一对一的映射。我对我应该选择哪个Linux感到有些困惑-禁用MMU的标准Linux内核或uCLinux。在ARM的评估板上,我运行了在禁用MMU的情况下编译的标准内核。我使用了ARM官方网站上提供的cramfs文件系统。内核启动后,我在shell中,但我无法做太多实验,因为我发现大多数时候,shell停止响应(特别是当我按“tab”自动完成时)。所以我仍然不确定如果我使用正确的文件系统,无MMU内核是否应该顺利运行。另外,我应该为no-V

c - ARM 未对齐内存访问解决方法

我必须将源代码移植到运行Linux的ARM平台。不幸的是,我遇到了未对齐的内存访问问题。源代码使用指针强制转换和大量访问。像下面这样的代码已经像病毒一样在代码库中传播。由于gcc-Wcast-align命令行选项,我可以查明有问题的位置,但有超过一千个实例需要检查。u=(IEC_BOOL);(((*(IEC_LINT*)pSP).H>u);*(IEC_DWORDOS_SPTR*)pSP=(IEC_DWORD)(*(IEC_DWORDOS_SPTR*)pSPb.L)))?1:0);u=(IEC_BYTE)((*(IEC_REAL*)pSP>=b)?1:0);使用echo2>/proc/c

c++ - ARM C++ ABI : Constructor/destructor return values

我一直在阅读Clang源代码,并发现了一些关于ARMC++ABI的有趣之处,我似乎无法理解其理由。来自ARMABIdocumentation的在线版本:ThisABIrequiresC1andC2constructorstoreturnthis(insteadofbeingvoidfunctions)sothataC3constructorcantailcalltheC1constructorandtheC1constructorcantailcallC2.(对于非虚拟析构函数也是如此)我不确定C1、C2和C3在这里引用什么...本节旨在修改来自通用(即安腾)ABI的第3.1.5节,但

ARM 设备上代码优化的 C++ 技巧

我一直在为ARM设备上的增强现实开发C++代码,代码的优化对于实现保持良好的帧率。为了将效率提高到最高水平,我认为收集一般提示很重要使编译器的工作更轻松,并减少程序的循环数。欢迎提出任何建议。1-避免高成本指令:除法、平方根、sin、cos使用逻辑移位来除以或乘以2。尽可能乘以倒数。2-优化内部“for”循环:它们是一个瓶颈,所以我们应该避免在内部进行大量计算,尤其是除法、平方根......3-对一些数学函数(sin、cos、...)使用查找表有用的工具objdump:获取已编译程序的汇编代码。这允许比较两个函数并检查它是否真正优化。 最佳答案