2017-10-21 2 views
0

Ich entwickle eine Android-AppWelche Architekturen unterstützen Sie heute?

opencv Bibliotheksversion 330.

Die aktuelle Größe des kompilierten Projekts ist etwa 100 MB! Ist wirklich zu groß. Mit APGUARD für das App-Modul wird die APK-Größe um ca. 3 oder 4 MB reduziert. Mit Proguard auf der Opencv-Bibliothek bekomme ich einen Fehler. Ich habe nicht in der Lage, die Lösung zu finden, noch habe ich für eine lange Zeit mit proguard worden ...

ich die Bibliothek importiert durch den jniLibs Ordner unter app/sr/main zu schaffen. Jetzt enthält dieser Ordner 7 weitere Ordner!

  • arm64-v8
  • armeabi
  • armeabi-V7A
  • Mips
  • mips64
  • x86
  • x86-64

Jede der oben aufgelisteten Ordner enthält die entsprechende .so Datei ...

Ich bemerkte, dass das Entfernen einiger dieser Ordner der Größe der apk drastisch reduziert ist. Ich bin kein Experte der Architektur, aber ich könnte Armee-Ordner entfernen, da (von dem, was ich verstehe), es keine Notwendigkeit, diese Art von Architektur zu unterstützen.

Da meine App fast fertig ist, für Android-Geräte, würde ich wissen, wenn mir jemand sagen kann, welche Architekturen zu unterstützen sind ?????

Danke, Jungs: D

This is what i'm including

+0

Haben Sie einen Lese von: https://developer.android.com/ndk/guides/ abis.html - da gab es einen% age alters von Geräten ... immer noch auf der Suche nach –

+0

Gehören Sie zu 'opencv_world.so' Datei? – zindarod

+0

Ich schließe opencv_world.so nicht mit ein .... ich nehme das mit: https://i.stack.imgur.com/QIeje.png –

Antwort

0

Sie müssen dann mehrere apk für jede Architektur aufzubauen, indem es Aufspaltung Sie es eins nach dem anderen auf den Play Store laden können. Lesen Sie mehr bei Build Multiple APKs

Sie es, indem Sie die split Block in Ihrer App build.gradle tun können:

android { 
    ... 
    splits { 

    // Configures multiple APKs based on ABI. 
    abi { 

     // Enables building multiple APKs per ABI. 
     enable true 

     // By default all ABIs are included, so use reset() and include to specify that we only 
     // want APKs for x86, armeabi-v7a, and mips. 

     // Resets the list of ABIs that Gradle should create APKs for to none. 
     reset() 

     // Specifies a list of ABIs that Gradle should create APKs for. 
     include "x86", "armeabi-v7a", "mips" 

     // Specifies that we do not want to also generate a universal APK that includes all ABIs. 
     universalApk false 
    } 
    } 
} 
+0

Also welche ABIs muss ich für die App-Version kompilieren? Danke für die Hilfe :) –

+0

Sie können die App für jede Architektur kompilieren, so dass Ihre Anwendung große Benutzerbasis abdecken wird. Der einzige Nachteil ist, dass Sie jeden von ihnen in Google Play Store hochladen müssen. –

+0

okok. Nett. Vielen Dank :) –

Verwandte Themen