2013-08-14 10 views
0

현재 사용 중입니다. -mfloat-abi=softfp -mfpu=vfpARMV6 및 옵션으로 VFP를 사용하여 Android 라이브러리를 컴파일 할 수 있습니까?

위의 내용은 실제 VFP를 지원하는 ARMV6 장치가 필요하다고 생각합니다.

-mfloat-abi=soft을 사용하면 어떻게됩니까? 실제 VFP를 지원하지 않는 ARMV6 장치에서도 작동하지만 mfloat-abi을 지정하지 않은 것보다 빠르지 않습니까?

+0

무엇이 vfp입니까? 그것은 다른 아키텍처입니까? –

+0

일부 장치에는 부동 소수점 계산을하는 칩이있어 인코딩/디코딩 미디어와 같은 수학 기반 프로세스의 속도가 빨라집니다. ARMv6 장치에 이것이 없으면 무거운 부동 소수점의 소프트웨어 계산이 더 많은 CPU를 사용하고 응용 프로그램의 속도가 느려지므로 내 응용 프로그램이 원활하게 작동하지 않습니다. 나는 소프트웨어 측면에서 VFP를 시뮬레이트하는 방법이 있는지 알아 내려고했지만, 내가 보는 한 그것이 존재하지 않고 아마 비 의미 성일 것입니다. – frankish

+0

나는 본다. 그것에 대해 가르쳐 주셔서 감사합니다. VFP는 무엇을 의미합니까? 마지막 단어는 아마도 부동 소수점이지만 V는 무엇입니까? –

답변

0

gcc에 정보 페이지 (내가 .so 파일 2 지방 바이너리를 만들지 않으려는) 말한다 :

soft를 지정하면 GCC 라이브러리 부동에 대한 호출을 포함하는 출력을 생성하는 원인 포인트 작업. softfp은 하드웨어 부동 소수점 명령어를 사용하여 코드 생성을 허용하지만 은 여전히 ​​soft-float 호출 규칙을 사용합니다. hard은 부동 소수점 명령어의 생성을 허용하고 FPU 관련 호출 규칙을 사용합니다.

그래서 soft를 사용하여 당신은 FPU와 목표에 대해 원하는 것이 아니다.

대부분의 현재 배송되는 기기에는 ARMv7-A 이상의 CPU가 있으므로 특정 기기를 타겟팅하지 않으면 두 개의 공유 라이브러리를 구축하는 데 어느 정도 가치가 있는지 알 수 없습니다.

업데이트 : 실제로는 오래된 CPU를 탑재 한 많은 장치가 출시되었습니다. 하이 엔드 제품은 모두 ARMv7-A이지만 로우 엔드 장치에는 많은 양의 볼륨이 있습니다.

ARMv6 + VFP는 Play Store에서 지원하는 구성이 아니므로 가능한 한 작게 구성을 유지해야합니다. 뚱뚱한 바이너리를 사용하거나 빌드를 신중하게 구성하고 Play 스토어의 특정 기기를 나열해야합니다.

+0

Android 2.2 이상을 지원하기 위해 Galaxy S3를 사용하는 동안 테스트를 위해 새로운 Samsung Galaxy Ace를 구입했습니다. ARMV6 (및 VFP)이 있습니다. VFP가없는 ARMV6 장치 목록을 알 수 없으므로 결정을 내릴 수 없습니다. 한편 나는 안드로이드 플레이 스토어에서 ARMV6 승/O를 VFP 장치를 필터링하려고합니다. – frankish

+0

나는이 대답을 받아 들였습니다. 그 이유는 소프트웨어에서 VFP를 시뮬레이트하고 비 VFP 환경보다 빠르게 만들 수 있습니까? 내 대답은 아니오 야 – frankish