2012-06-14 3 views
0

Я хотел бы использовать makefile синтаксис в Android.mk. Я хочу создать специальный файл bin. Но я не знаю, как это сделать. Я попробовал несколько методов, но никто не работал. Кто-нибудь это знает? Спасибо.Как использовать синтаксис makefile в Android.mk

Прямо сейчас, моя реализация:

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 > [email protected] 
     $(hide) rm -f $(PRODUCT_OUT)/temp.bin 

include $(BUILD_PHONY_PACKAGE) 

Но это не работает.

+0

Android.mk не * * makefile вашей сборки JNI - это часть гораздо большего make-файла. Вы можете использовать синтаксис makefile, который вы хотите. Но создаваемая цель обычно находится вне вашего контроля. Расскажите подробнее о «специальном файле bin». –

+0

Спасибо за ответ. Ну, я бы хотел использовать imageMagic для объединения двух png-файлов. И вывести его как необработанный файл. Я хочу контролировать его на Android.mk. – xeonxu

ответ

0

Вы хотите объединить два PNG во время компиляции для своего проекта Android, не так ли? Почему вы хотите использовать NDK для этого? Напишите программу для хост-компьютера (вы можете использовать Cygwin и GCC с ImageMagick), запустите его, а затем поместите сгенерированный PNG в проект. Не нужно делать это в NDK.

Makefile в NDK (или любом другом make-файле) - это то, что вы запускаете, а не пользователь. Все, что сделано в make-файлах, выполняется до того, как вы отправите свое приложение.

Теперь, если вы хотите, чтобы пользователь выполнял объединение PNG, вам не нужен «специальный бит». Вам просто нужен обычный проект NDK, который создает библиотеку (.SO), которую будет вызывать ваше Android-приложение, передавая имена файлов в качестве параметров. Приложение, как только вы его построите и отправите, не будет иметь в нем make-файл - просто скомпилированную библиотеку.

ИЗМЕНИТЬ ИЗ ВОПРОСА вопроса: не тратьте время на Android NDK. Просто запустите соответствующие команды под Cygwin (или * nix shell).

+0

Это не для создания приложения для Android. Моя работа - релиз андроида. И «специальный бит» используется для отображения логотипа при запуске загрузочного диска. Моя цель автоматически генерирует этот файл при построении всей системы Android. – xeonxu

+0

Как часто вам нужно перестроить этот логотип? Вам действительно нужно убедиться, что это актуально на каждой отдельной сборке? –

Смежные вопросы