sysctlbyname("hw.cpusubtype", ...)
을 쿼리하여 iOS 장치가 어떤 종류의 CPU를 실행하는지 알아내는 것은 상당히 쉽지만 CPU가 실제로 가지고있는 기능을 파악할 수있는 확실한 방법이없는 것 같습니다 (VFP, NEON, Thumb 등) . 누군가 이렇게 할 수있는 방법을 생각할 수 있습니까?런타임시 iOS에서 VFP/NEON/Thumb/...을 감지하는 방법이 있습니까?
기본적으로 필요한 것은 Linux/Android의 getauxval(AT_HWCAP)
과 유사합니다.이 마스크는 CPU에서 지원하는 기능의 비트 마스크를 반환합니다. 주의 할
몇 가지 :
- 정보 는 운영 체제에서 실행시 검색해야합니다. 전처리 기가 정의되지 않습니다.
- 뚱뚱한 바이너리는 해결책이 아닙니다. 나는 정말로 을 수행한다.은 ARM v6 바이너리에서이 내용을 알아야 할 필요가있다.
미리 감사드립니다.
나는'man sysctl'을 보았지만 나 자신을 발견하지 못했습니다. 팻 바이너리가 해결책이되지 못하는 이유는 (a) 크기가 크게 증가했기 때문입니다. (b) 앱에서 사용할 아키텍처 버전이 실제로는 아니지만 고객이 결정한 것입니다. 따라서 ARM v6 바이너리를 선택하면 해당 바이너리가 v7 및 v7에서 작동해야합니다. 마찬가지로 ARM v6 및 v7s 코드가 포함 된 뚱뚱한 바이너리도 v7에서 작동해야합니다. –
합리적인 수의 iOS 장치를 감안할 때, 각각의 사용 가능한 CPU 기능을 문서화하고 나열하고, 런타임에 UIDevice 클래스를 사용하여 어떤 장치를 검색 하는지를 간단하게 파악할 수 있습니다 사용 가능한 기능 목록을 검색합니다. – mbrenon