Articles of arm

Android构建系统,NEON和非NEON构建

我想为armv6构建我的库,如果设备支持它,我会在运行时启用一些霓虹灯代码。 霓虹灯代码使用霓虹内在函数,为了能够编译它,我必须启用armeabi-v7a,但这会影响常规的c代码(在某些低端设备上它会被破坏)。 因此,如果android构建系统没有过度干扰,我就不必提问,但似乎我没有办法为armv6编译一个文件而为arm7-neon编译另一个文件。 如果这是可行的,任何人都可以提供任何线索吗? 编辑 在尝试回复并浪费互联网墨水之前,应该清楚这些是要点: 1)只制作一个lib。 2)制作在armv6(pre-neon设备,例如armeabi)上运行的构建。 3)允许此构建还包含NEON代码(可以基于运行时cpu检测执行; cpu检测超出了问题的范围)。 4) NEON代码来自ac / cpp文件,使用neon intrinsics编写。 省略这些要求的任何部分完全失去了问题的重点

arm-linux-androideabi-gcc无法创建可执行文件 – 为android armeabi设备编译ffmpeg

我正在尝试为android armeabi设备编译ffmpeg。 我正在关注roman10.net的教程 他给定的构建脚本为armv7-a设备构建了ffmpeg。 我想为armeabi建造它。 我的最终目标是在android armeabi和armv7-a设备上运行ffmpeg命令。 所以我改变了脚本的CPU部分 #arm v7vfpv3 CPU=armv7-a OPTIMIZE_CFLAGS=”-mfloat-abi=softfp -mfpu=vfpv3-d16 -marm -march=$CPU ” PREFIX=./android/$CPU ADDITIONAL_CONFIGURE_FLAG= build_one 至 #arm v6 CPU=armv6 OPTIMIZE_CFLAGS=”-marm -march=$CPU” PREFIX=./android/$CPU ADDITIONAL_CONFIGURE_FLAG= build_one (我认为将它改为armv6会构建与armeabi设备兼容的ffmpeg。我错了吗?) 疑惑1: 我还需要更换工具链吗? 即从arm-linux-androideabi-4.4.3到arm-eabi-4.4.0 ????? 疑惑2: 当我尝试运行./build.sh(不更改工具链)时,它会给我以下错误: /home/chaitanya/android/android-ndk-r5b/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-gcc is unable to create an executable file. C compiler test failed. If you think configure made a mistake,.. blaah […]

Android NDK:我应该在Application.mk中为APP_ABI设置什么?

我想知道我应该把哪些架构放在Android游戏的Application.mk文件中。 我想支持所有可以在Google Play和其他types的Android商店下载游戏的平台。 我会说我应该设置: APP_ABI := armeabi x86 (as many x86 devices are coming soon as far as I know) 但我想知道我是否应该设置: APP_ABI := armeabi armeabi-v7a x86 要么 APP_ABI := all 请澄清。

如何编译和链接生锈的代码到Android apk打包应用程序

我正在尝试将Rust代码添加到android NDK示例(native-activity); 每当我将Rust代码(编译为.a)链接到.so时,它都无法运行。 我从这里获取信息,以获得一个知识渊博的防锈编译器和’独立工具链’ https://github.com/mozilla/rust/wiki/Doc-building-for-android 有人在Rust IRC频道上建议我需要在某处提到“拇指”; 是否可以选择传递给rustc,或者我是否必须首先以不同的方式构建它? 我当然可以在桌面版本上调用另外的rust&c。 是否有人在.apk中使用锈蚀代码; 它必须简单..很难破解复杂项目的makefile。 (我认为通过阅读伺服源来解决这个问题非常困难) 我已经证实这个过程可以生成一个可用的包装而不会生锈; 如果我链接未经剥离的防锈代码 – 即使没有达到(即使链接没有告诉我任何错误),它也无法运行。 如果我删除对’rusty_android()’的调用,它就可以了。 如果我将对garbage_android的调用移动到未到达的点,它仍然无效。 我可以用’nm’validation’rusty_android’是否在.so …中没有被剔除。 这是我目前的构建过程:它取自android native-activity示例; 我添加了一个带有单个externfunction的锈源文件,返回一个值,并尝试从样本的C main调试打印 ANDROID_CXX = /opt/ndk_standalone/bin/arm-linux-androideabi-gcc android: $(ANDROID_CXX) -I/home/ME/android-ndk-r9b/sources/android/native_app_glue -c jni/main.c -o obj/local/armeabi/objs/native-activity/main.o rustc –target=arm-linux-androideabi hello_android.rs -C android-cross-path=/opt/ndk_standalone –crate-type=staticlib -o rusty_android.a $(ANDROID_CXX) -shared -o libs/armeabi/libnative-activity.so obj/local/armeabi/objs/native-activity/main.o obj/local/armeabi/libandroid_native_app_glue.a another.o rusty_android.a -llog -landroid -lEGL -lGLESv1_CM ant […]

将android移植到自定义arm设备需要什么知识/专业知识?

我正在开发一个当前运行linux内核和microwindows窗口系统的系统。 我可以使用当前的Linux系统驱动程序代码。 我想将android移植到它上面,就像一个爱好项目一样。 你能告诉我什么对linux-kernel的理解需要移植它吗? 请给我参考(书籍,教程)以建立理解。 谢谢,Sunny。 PS我对linux有基本的了解。 设备的配置是 450 Mhz ARM9, 64 MB RAM, 256 MB NAND 480×272分辨率。

如何在Android项目中使用ARM汇编代码?

我对Assembly和ARM并不是特别有经验,但我能够在其中编写一些例程,我想看看它们是如何在配备ARM的Android设备(Nexus S)上运行的。 将汇编代码文件包含到Android项目中的过程是什么? 我是否只能从本机代码或Java中调用它?

Android 4及更高版本仅支持armeabi-v7a安全吗?

我开发了一个主要使用C ++的应用程序,并且像往常一样由NDK编译到.so库。 我们知道必须分别为每个CPU架构构建本机应用程序; 所以我为armeabi和armeabi-v7a提供了不同的文件。 (我特意遗漏了x86和mips ,因为没有很多具有这些架构的Android设备被发布。) 但是,大小非常大,每个文件占用大约90 MB的空间,我想减少它。 我知道我可以省略armeabi-v7a ,因为向后兼容,但在这种情况下,应用程序将运行得非常慢。 考虑到我的应用程序仅支持android ICS及更高版本( minSdkVersion=”14″ ),我可以安全地删除armeabi并假设所有这些新设备都使用armeabi-v7a吗? 或者有些设备仍然可以使用旧的armeabi而不是armeabi-v7a架构?

架构mips,arm,x86的Qt版本缺失

我正在尝试使用Qt-Project V.5.1开发适用于Android的应用程序。 安装qt-windows-opensource-5.1.0-msvc2012_opengl-x86_64-offline安装程序后,在安装过程中可以选择每个组件,我尝试将其设置为android构建。 在Qt Creator中,我打开工具 – >选项 – > Android并填写我的Android SDK,Android NDK,Ant和opnJDK位置并勾选“自动创建Android工具包套件”。 checkbox 我在这里得到一个警告说: Qt versions for architectures mips, arm, x86 are missing. To add the Qt versions, select Options > Build & Run >Qt versions. 当我转到Qt版本选项卡时,既没有Android选项,也没有mips arm或x86的选项。 (实际上只有QT 5.1.0 MSVC2012 OpenGl 64位选项)。 添加按钮只允许我指定qmake文件。 我能find的唯一一个是“QT 5.1.0 MSVC2012 OpenGl 64 Bit”选项已经引用的那个。 谁能告诉我如何在Build and Run选项卡中获取Android选项? 提前致谢。

ARM,MIPS,x86的Android os.arch输出?

为了识别Android设备的平台,似乎java系统属性“os.arch”就足够了: Log.i(“mytag”, “os.arch: ” + System.getProperty(“os.arch”)); 大多数ARM设备都会响应: os.arch: armv7l x86模拟器响应: os.arch: i686 真正的英特尔和MIPS设备的输出有哪些? x86 Android设备:?????? mips Android设备:?????? 还有其他平台和变种吗? 编辑Google TV: 看起来Google TV使用’none’来构建代码。 Vizio Co-Star:os.arch:armv7l,Build.CPU_ABI / Build.CPU_ABI2:none / unknown Logitech Revue:os.arch:i686,Build.CPU_ABI / Build.CPU_ABI2:none / unknown 编辑澄清意图: 这里的目标是将实际设备列表的编译与其输出进行众包。 AOSP代码的预期输出很有意思,但设备制造商(如上面的旧Google TV设备)可能会偏离提供AOSP代码预期的输出。

什么是iOS / Android ARM设备最快的FFT库?

什么是iOS / Android ARM设备最快的FFT库? 人们通常在iOS / Android平台上使用什么库? 我猜vDSP是iOS上最常用的库。 编辑:我的代码是http://anthonix.com/ffts并使用BSD许可证。 它运行在Android和iOS上,比libav,FFTW和vDSP更快。 EDIT2:如果有人可以访问POWER7机器(或其他机器),请给我发电子邮件。 非常感谢。 干杯,