2017-10-21 14 views
0

私がコンパイルされたプロジェクトの現在のサイズは約100 MBです!今日はどのアーキテクチャをサポートしていますか?

OpenCVのライブラリのバージョン330

を使用してAndroidアプリを開発しています 本当に大きすぎます。 アプリモジュールにproguardを使用すると、APKのサイズが約3〜4 MB減少します。 opencvライブラリでProguardを使用するとエラーが発生します。私はまだ解決策を見つけることができませんでしたが、私は長い間プロガードを使用してきました...

app/sr/mainの下にjniLibsフォルダを作成してライブラリをインポートしました。 このフォルダにはさらに7つのフォルダが含まれています。

  • arm64-V8
  • armeabi
  • armeabi-V7A
  • MIPS
  • MIPS64
  • のx86
  • x86-64で

上記フォルダのそれぞれが含まれ各.soファイル...

これらのフォルダの一部を削除すると、apkのサイズが大幅に縮小されていることに気づきました。 私はアーキテクトの専門家ではありませんが、Armeabiフォルダを削除することはできます(私が理解したところから)、そのようなアーキテクチャをサポートする必要はありません。

私のアプリはAndroid搭載デバイスのためにほぼリリースされているので、サポートするアーキテクチャが何であるか教えてもらえますか? Dあなたは、あなたがPlayストアに一つずつ、それをアップロードすることができ、それを分割して、各アーキテクチャ用に複数のAPKを構築する必要があります

This is what i'm including

+0

はの読み取りを持っていますabis.html - 以前はデバイスの年齢別の内訳がありました...まだそれを探しています –

+0

'opencv_world.so'ファイルをインクルードしていますか? – zindarod

+0

私はopencv_world.soを含めていません....私はそれを含めています:https://i.stack.imgur.com/QIeje.png –

答えて

0

は、みんな、ありがとうございました。あなたはアプリのbuild.gradleに splitブロックを追加することによってそれを行うことができます Build Multiple APKs

で続きを読む:https://developer.android.com/ndk/guides/:

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

だから、ABIsはアプリリリースのためにコンパイルする必要がありますか?助けてくれてありがとう: –

+0

あなたのアプリケーションは大規模なユーザーベースをカバーするように各アーキテクチャのためのアプリをコンパイルすることができます。唯一の欠点は、それぞれをGoogle Playストアにアップロードする必要があることです。 –

+0

okok。ニース。ありがとうございました:) –

関連する問題