1

私は、GooglePlay でいくつかのゲームを公開している Android 開発者です。実際には、GooglePlay に存在する multiapk サポートを使用して、OS バージョン用の 2 つの apk ファイル (1 つはマルチタッチ サポート 2.0 以降、もう 1 つはマルチタッチ サポート 1.5 以降) を持っています。

2 つの APK には HD デバイス用の高解像度アセットがありますが、一部の古い携帯電話ではメモリの問題が発生し、HD 画像の読み込みと再スケーリングが発生します。

この問題を解決するには、低解像度のアセット (より多くの互換性、より良いメモリ割り当て) を使用して apk をビルドし、高解像度のアセットのみを使用して別の apk をビルドします。

APK 1: ゲーム (低解像度グラフィックス) APK 2: ゲームの高解像度アセット

ユーザーがゲームをダウンロードすると、ゲームが開始されると、ゲームは画面の解像度をチェックし、高解像度のアセットをダウンロードしてインストールするかどうかをユーザーに尋ねます。

維持するのが難しすぎるため、複数のapkを使用したくありません(4つのapk)。それを行うために使用できるソリューションはありますか?

拡張パックのようなものですが、内部メモリにあります (アプリの構造)

ありがとう。リカード。

4

1 に答える 1

0
  1. 作業の過負荷を制限するためにできることは、2 つのAndroid Librariesを用意することです。1 つは小さいグラフィックス用で、もう 1 つは HD 用で、コンパイル時にアプリケーションでいずれかのライブラリを使用するようにします。もちろん、ドローアブルの名前とレイアウトと ID がまったく同じであることを確認する必要があります。これにより、より多くのapkが作成されますが、すぐに実行できます. プログラムで OS バージョンを検出することにより、これを 2 つの APK に制限できることに注意してください。

    if (VERSION.SDK_INT < VERSION_CODES.ECLAIR) {
        // use single touch
    } else {
        // use multi touch
    }
    
  2. また、ドローアブルを含む jsut を市場からダウンロードした HD パックのアイデアを使用することもできます。次のコードを使用して、2 番目のアプリからリソースにアクセスできます。

    Resources res = context.getPackageManager().getResourcesForApplication("com.example.foo")
    

    次に、正しいものをロードするか、単にリフレクションを使用するために、正しいドローアブル ID を正確に知る必要があります。

  3. もう 1 つのオプションは、ドローアブルをすべて含むアーカイブを保存し、それらを独自のサーバーからアプリケーション サンドボックスにダウンロードして、リソースではなくディスクから読み取ることです。

于 2012-06-06T07:52:13.317 に答える