2012-06-14 3 views
0

Android.mk에서 메이크 파일 구문을 사용하고 싶습니다. 특수 bin 파일을 생성하고 싶습니다. 그러나 나는 그것을 어떻게하는지 모른다. 몇 가지 방법을 시도했지만 아무도 일하지 않았습니다. 아무도 몰라? 감사합니다. .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는 JNI 빌드의 * 메이크 파일이 아닙니다. 훨씬 더 큰 메이크 파일의 일부입니다. 원하는 모든 makefile 구문을 사용할 수 있습니다. 그러나 목표물은 일반적으로 통제 범위 밖에 있습니다. "특수 bin 파일"에 대해 자세히 알려주십시오. –

+0

답장을 보내 주셔서 감사합니다. 자, imageMagic을 사용하여 두 개의 png 파일을 결합하고 싶습니다. 그리고 그것을 원시 파일로 출력하십시오. Android.mk로 제어하려고합니다. – xeonxu

답변

0

안드로이드 프로젝트를 컴파일 할 때 두 PNG를 결합하고 싶습니다. 맞습니까? 왜 당신은 NDK를 사용하고 싶습니까? 호스트 컴퓨터 용 프로그램을 작성하고 (Cygwin과 GCC를 ImageMagick과 함께 사용할 수 있음), 실행 한 다음 생성 된 PNG를 프로젝트에 배치하십시오. NDK에서 그렇게 할 필요가 없습니다.

NDK (또는 다른 makefile)의 Makefile은 사용자가 아닌 실행 파일입니다. makefile에서 수행되는 작업은 앱을 출시하기 전에 완료됩니다.

이제 사용자가 PNG 결합을 원할 경우 "특수 보관함"이 필요하지 않습니다. 당신은 안드로이드 애플 리케이션이 매개 변수로 파일 이름을 전달하여 호출 할 라이브러리 (. SO)를 생산 정기적 인 NDK 프로젝트가 필요합니다. 일단 앱을 빌드하고 선적하면, 컴파일 된 라이브러리 인 makefile이 포함되지 않습니다.

OP의 질문 편집 : Android NDK로 시간을 낭비하지 마세요. Cygwin (또는 * nix 셸)에서 관련 명령을 실행하기 만하면됩니다.

+0

안드로이드 앱을 제작하는 것이 아닙니다. 내 작품은 안드로이드 ROM을 릴리스합니다. 그리고 '특수 저장소'는 부팅 ROM이 실행될 때 로고를 표시하는 데 사용됩니다. 내 안드로이드 시스템을 구축하는 동안 내 목적은 자동 으로이 파일을 생성합니다. – xeonxu

+0

얼마나 자주 로고를 재구성해야합니까? 매번 빌드 할 때마다 최신 버전인지 확인해야합니까? –