1

ネイティブコードを使用するAndroidアプリケーションを開発しています。私が使用しているネイティブライブラリには、ARMv6アーキテクチャ用とv7用の2つのバリアントが付属しています。したがって、私のlibsフォルダーには、v6lib用の「armeabi」とv7lib用の「armeabi-v7a」の2つのフォルダーがあります。ここでの主な問題は、このライブラリが約8 MBであるため、デバイスによってはこれらのライブラリの1つだけが必要な場合に16 MBのライブラリがあります。8MBの肥大化があるため、apkがかなり大きくなります。

バージョンコードが異なる2つの別々のapkを作成した場合(1つはv6 libを使用し、もう1つはバージョンコードが異なるv7 libを使用)、Google Playはこれら2つのapk間のデバイスサポートの違いを認識せず、一方を他方に置き換えようとします。

私はこの問題が議論されているこの質問を見ましたが、解決策は提供されていません。

Google Playでこれら2つのAPKを並べて公開するにはどうすればよいですか?

どんな助けでも大歓迎です。

4

4 に答える 4

2

これは (まだ) 不可能です。http://developer.android.com/guide/google/play/publishing/multiple-apks.html#SupportedFiltersを参照してください。

サポートされているフィルター [...]

  • OpenGL テクスチャ圧縮形式 [...]
  • 画面サイズ (およびオプションで画面密度) [...]
  • API レベル [...]

上記以外の Google Play フィルタを有効にするその他のマニフェスト要素は、通常どおり各 APK に適用されます。ただし、Google Play では、バリエーションに基づいて複数の APK を公開することはできません。したがって、上記のフィルターが各 APK で同じである場合、複数の APK を公開することはできません (ただし、APK はマニフェスト ファイルの他の特性に基づいて異なります)。たとえば、純粋に特性が異なる複数の APK を提供することはできません。

編集:私の頭に浮かぶ1つのソリューションはプラグインベースです。コアロジック、UI、およびそのすべてを備えた1つのアプリを展開し、同じ証明書で署名されているがネイティブライブラリのみを含むいくつかの異なる「アプリ」を提供します。MXPlayer は、このアプローチを使用して、単一の APK を肥大化させることなくさまざまなアーキテクチャをサポートします: https://sites.google.com/site/mxvpen/download (セクション「コーデック」を参照)。

于 2012-07-13T12:23:59.933 に答える
0

私の場合、同じ APK で異なるライブラリをコンパイルして Proguarded したため、サイズを小さくするのに役立ちました。しかし、ここでも大きな違いはありませんが、役に立ちました。

また、これがあなたのニーズに合っているかどうかはわかりませんが、異なる APK が必要な場合は、異なるパッケージ名で十分だと思いますが、ここでも単一の APK が推奨されます。

それは私の小さな情報でした。詳細情報とヘルプがあれば教えてください。

于 2012-07-13T12:23:29.277 に答える