我想在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)
但它不起作用。
答案 0 :(得分:0)
你想在编译时为你的Android项目组合两个PNG,对吗?为什么要使用NDK呢?为主机编写程序(可以使用Cygwin和GCC与ImageMagick),运行它,然后将生成的PNG放入项目中。无需在NDK中这样做。
NDK(或任何其他makefile)中的Makefile是您运行的,而不是用户。无论在makefile中做什么都是在你发布应用程序之前完成的。
现在,如果您希望用户进行PNG组合,那么您不需要“特殊箱”。您只需要一个常规的NDK项目,它会生成一个您的Android应用程序将调用的库(.SO),并将文件名作为参数传递。该应用程序,一旦你构建并发布它,就不会有makefile - 只是一个编译过的库。
来自OP的问题编辑编辑:不要浪费时间使用Android NDK。只需在Cygwin(或* nix shell)下运行相关命令。