2018 De ce să folosiți codul armeabi - v7a din nou codul android de armeabi

Androids .help Comunitatea Android Android.

În proiectul meu curent, folosesc mai multe fișiere .so. Ele sunt în dosarul armeabi și armeabi - v7a. Din păcate, unul dintre fișierele .so este de 6 MB și trebuie să reduc dimensiunea fișierului. În loc de fișierul APK de grăsime, aș vrea să folosesc doar fișierele armeabi și să șterg folderul armeabi - v7a.







Conform documentației NDK, codul armeabi - v7a este distribuit prin codul armeabi, care poate conține comenzi suplimentare de procesor. Toate acestea depășesc competențele mele, însă mă întreb de ce aș vrea să am armeabi - v7a și codul armeabi. Ar trebui să existe un motiv bun pentru a fi corect?

Pe dispozitivele mele de testare, totul arată perfect ca un loc de muncă. Ei au un procesor ARM v7. Este sigur să presupunem că totul funcționează acum?

Top 5 răspunsuri

Depinde de ceea ce face codul dvs. nativ, dar v7a are suport pentru operațiunile hardware în virgulă mobilă, ceea ce face o mare diferență. armeabi va funcționa bine pe toate dispozitivele, dar va fi mult mai lent și nu va profita de capabilitățile procesoarelor noilor dispozitive. Faceți niște repere pentru o anumită aplicație, însă eliminarea fișierelor binare armeabi-v7a nu este o idee bună. Dacă trebuie să reduceți mărimea, puteți avea două apk-uri separate pentru dispozitivele vârstnice (armeabi) și noi (armeabi-v7a).







EABI = interfață binară de aplicație încorporată. Acestea sunt caracteristici care trebuie să fie potrivite executabilului pentru a fi executate într-un mediu de execuție specific. De asemenea, definește diferitele aspecte ale compilării și comunicării necesare pentru a asigura interacțiunea dintre instrumentele compilate folosite pentru arhitectura ARM. În acest context, când vorbim despre armeabi, vorbim despre arhitectura ARM și despre GNU / Linux. Android urmează ordinul direct al byte-urilor ARM GNU / Linux ABI.

Aplicația armeabi va lucra la ARMv5 (de exemplu, ARM9) și Armv6 (de exemplu, ARM11). Puteți utiliza hardware-ul plutitor-punct, în cazul în care vă construi o aplicație utilizând opțiunile CCG corespunzătoare, cum ar fi -mfpu = VFPv3 -mfloat -Abi = softfp care spune compilatorului pentru a genera instrucțiuni în virgulă mobilă pentru hardware-ul VFP și permite convenție soft float de asteptare. armeabi nu acceptă convențiile dure mânerul de apelare (adică, registrele FP sunt folosite pentru a stoca argumente pentru funcția), dar FP operare în HW -prezhnemu sprijinit.

Aplicația armeabi - v7a va funcționa pe dispozitive Cortex A #, cum ar fi Cortex A8, A9 și A15. Acesta susține procesoarele multi-core și suportă -mfloat-abi = hard. Deci, dacă construiți o aplicație folosind -mfloat-abi = greu, multe dintre funcțiile de apeluri vor fi mai rapide.

Întrebări recente







Articole similare

Trimiteți-le prietenilor: