0

Android.mk でmakefile構文を使用したいと思います。特別なbinファイルを生成したいからです。しかし、私はそれを行う方法がわかりません。いくつかの方法を試しましたが、誰もうまくいきませんでした。誰か知ってる?ありがとう。

現在、私の実装は次のとおりです。

include $(CLEAR_VARS)
INTERNAL_OBMRES_FILES := $(TOPDIR)frameworks/base/core/res/assets/images/android-logo-mask.png \
    $(TOPDIR)frameworks/base/core/res/assets/images/android-logo-shine.png

LOCAL_MODULE := obmRes.bin
LOCAL_MODULE_TAGS := optional
LOCAL_REQUIRED_MODULES := $(RGB2565)
BUILT_OBMRES_TARGET := $(PRODUCT_OUT)/obmRes.bin

obmRes.bin:$(BUILT_OBMRES_TARGET)
$(BUILT_OBMRES_TARGET): $(INTERNAL_OBMRES_FILES)
        $(hide) convert $(TOPDIR)frameworks/base/core/res/assets/images/android-logo-mask.png $(TOPDIR)frameworks/base/core/res/assets/images/android-logo-shine.png -compose dstover -size 256x64 -composite -depth 8 rgb:$(PRODUCT_OUT)/temp.bin
        $(hide) $(RGB2565) < $(PRODUCT_OUT)/temp.bin > $@
        $(hide) rm -f $(PRODUCT_OUT)/temp.bin

include $(BUILD_PHONY_PACKAGE)

しかし、うまくいきません。

4

1 に答える 1

0

Android プロジェクトのコンパイル時に 2 つの PNG を組み合わせたいと思いませんか? なぜそのために NDK を使用したいのですか? ホスト コンピューター用のプログラムを作成し (Cygwin と GCC を ImageMagick で使用できます)、それを実行し、生成された PNG をプロジェクトに配置します。NDK でそれを行う必要はありません。

NDK の Makefile (またはその他の Makefile) は、ユーザーではなく、あなたが実行するものです。makefile で行われることはすべて、アプリを出荷する前に行われます。

ここで、ユーザーに PNG 結合を実行させたい場合は、「特別なビン」は必要ありません。Android アプリが呼び出すライブラリ (.SO) を生成し、ファイル名をパラメータとして渡す通常の NDK プロジェクトが必要です。アプリをビルドして出荷すると、アプリにはメイクファイルが含まれず、コンパイルされたライブラリだけになります。

OPの質問編集からの編集:Android NDKで時間を無駄にしないでください。Cygwin (または *nix シェル) で関連するコマンドを実行するだけです。

于 2012-06-14T15:26:46.687 に答える