현재 사용 중입니다. -mfloat-abi=softfp -mfpu=vfp
ARMV6 및 옵션으로 VFP를 사용하여 Android 라이브러리를 컴파일 할 수 있습니까?
위의 내용은 실제 VFP를 지원하는 ARMV6 장치가 필요하다고 생각합니다.
-mfloat-abi=soft
을 사용하면 어떻게됩니까? 실제 VFP를 지원하지 않는 ARMV6 장치에서도 작동하지만 mfloat-abi
을 지정하지 않은 것보다 빠르지 않습니까?
현재 사용 중입니다. -mfloat-abi=softfp -mfpu=vfp
ARMV6 및 옵션으로 VFP를 사용하여 Android 라이브러리를 컴파일 할 수 있습니까?
위의 내용은 실제 VFP를 지원하는 ARMV6 장치가 필요하다고 생각합니다.
-mfloat-abi=soft
을 사용하면 어떻게됩니까? 실제 VFP를 지원하지 않는 ARMV6 장치에서도 작동하지만 mfloat-abi
을 지정하지 않은 것보다 빠르지 않습니까?
gcc에 정보 페이지 (내가 .so 파일 2 지방 바이너리를 만들지 않으려는) 말한다 :
이
soft
를 지정하면 GCC 라이브러리 부동에 대한 호출을 포함하는 출력을 생성하는 원인 포인트 작업.softfp
은 하드웨어 부동 소수점 명령어를 사용하여 코드 생성을 허용하지만 은 여전히 soft-float 호출 규칙을 사용합니다.hard
은 부동 소수점 명령어의 생성을 허용하고 FPU 관련 호출 규칙을 사용합니다.
그래서 soft
를 사용하여 당신은 FPU와 목표에 대해 원하는 것이 아니다.
대부분의 현재 배송되는 기기에는 ARMv7-A 이상의 CPU가 있으므로 특정 기기를 타겟팅하지 않으면 두 개의 공유 라이브러리를 구축하는 데 어느 정도 가치가 있는지 알 수 없습니다.
업데이트 : 실제로는 오래된 CPU를 탑재 한 많은 장치가 출시되었습니다. 하이 엔드 제품은 모두 ARMv7-A이지만 로우 엔드 장치에는 많은 양의 볼륨이 있습니다.
ARMv6 + VFP는 Play Store에서 지원하는 구성이 아니므로 가능한 한 작게 구성을 유지해야합니다. 뚱뚱한 바이너리를 사용하거나 빌드를 신중하게 구성하고 Play 스토어의 특정 기기를 나열해야합니다.
Android 2.2 이상을 지원하기 위해 Galaxy S3를 사용하는 동안 테스트를 위해 새로운 Samsung Galaxy Ace를 구입했습니다. ARMV6 (및 VFP)이 있습니다. VFP가없는 ARMV6 장치 목록을 알 수 없으므로 결정을 내릴 수 없습니다. 한편 나는 안드로이드 플레이 스토어에서 ARMV6 승/O를 VFP 장치를 필터링하려고합니다. – frankish
나는이 대답을 받아 들였습니다. 그 이유는 소프트웨어에서 VFP를 시뮬레이트하고 비 VFP 환경보다 빠르게 만들 수 있습니까? 내 대답은 아니오 야 – frankish
무엇이 vfp입니까? 그것은 다른 아키텍처입니까? –
일부 장치에는 부동 소수점 계산을하는 칩이있어 인코딩/디코딩 미디어와 같은 수학 기반 프로세스의 속도가 빨라집니다. ARMv6 장치에 이것이 없으면 무거운 부동 소수점의 소프트웨어 계산이 더 많은 CPU를 사용하고 응용 프로그램의 속도가 느려지므로 내 응용 프로그램이 원활하게 작동하지 않습니다. 나는 소프트웨어 측면에서 VFP를 시뮬레이트하는 방법이 있는지 알아 내려고했지만, 내가 보는 한 그것이 존재하지 않고 아마 비 의미 성일 것입니다. – frankish
나는 본다. 그것에 대해 가르쳐 주셔서 감사합니다. VFP는 무엇을 의미합니까? 마지막 단어는 아마도 부동 소수점이지만 V는 무엇입니까? –