التحميل v8a v7a studio armeabi android android-ndk cpu-architecture freepascal abi

android - studio - armeabi-v7a vs arm64-v8a



Diferencia entre armeabi y armeabi-v7a (1)

Definitivamente puedes ejecutar armeabi shared library en v7, y puedes llamar a sus funciones exportadas desde otro módulo. Por lo tanto, para estar seguro, crearía un archivo .so separado de su código Pascal, siguiendo el armeabi (tal vez con algunos envoltorios C / C ++), y utilizaría esta biblioteca compartida con sus bibliotecas armeabi y armeabi-v7a. La forma más fácil de cargar todo en el orden correcto es usar

System.loadLibrary("pascal"); // armeabi System.loadLibrary("c++"); // the platform will choose armeabi or armeabi-v7a

Por lo que puedo ver en la documentación, la diferencia entre los dos tipos de arquitectura ARM compatibles en el NDK de Android solo se encuentra en el conjunto de instrucciones de CPU admitidas. ¿Es eso realmente así? ¿No hay diferencia en las convenciones de llamada, la secuencia de llamadas del sistema o alguna otra cosa?

Me pregunto qué pasará si compilo un módulo en un archivo de objeto ARM (con un compilador que no sea NDK - Free Pascal específicamente), especificando ARMv6 como la arquitectura, y luego lo vinculo a las bibliotecas compartidas armeabi y armeabi-v7a. Los bits FPC no deben realizar llamadas al sistema ni llamadas a Java, excepto a través de mi propia interfaz basada en C.

EDIT: una biblioteca de hello world, compilada con FPC para ARM, se vincula y se ejecuta bajo el emulador ARMv7a.