2011-03-07 1 views
2

빌드 대상을 개별적으로 실행하는 경우 컴파일 및 최적화가 가능한 build.xml이 있습니다. "ant compile"다음에 "and optimize"가옵니다.build.xml을 사용하여 빌드 대상 만 삽입 하시겠습니까?

문제는 내가 일반적으로 수행 할 "개미 릴리스"를 실행하고 싶다는 것입니다. 릴리스 바이너리를 생성하는 데 필요한 모든 것이 있지만 체인에 빌드 대상을 삽입해야합니다 - 대상을 "최적화"라고하고 "dex"단계가 바이트 코드를 빌드하기 바로 전에 클래스 파일에 대해 프로 가이드 최적화/축소기를 실행합니다.

템플릿 파일 /opt/android-sdk-linux_x86/platforms/android-8/templates/android_rules.xml에는 "depends ="compile, optimize ""라고 말하도록 수정할 수있는 다음 규칙이 포함되어 있습니다. (매번 새로운 android_rules.xml 파일을 사용하여) 나오는 모든 SDK마다 파일을 다시 수정해야합니다.

<!-- Converts this project's .class files into .dex files --> 
<target name="-dex" depends="compile"> 
    <dex-helper /> 
</target> 

템플릿 xml을 수정하고 대신 모든 컴파일 규칙을 build.xml에 넣는 대신 사용할 수 있습니까?

답변

5

build.xml 파일의 포스트 컴파일 후크를 사용하지 않는 이유는 무엇입니까? 그것은 읽습니다 :

[This is typically used for code obfuscation. 
Compiled code location: ${out.classes.absolute.dir} 
If this is not done in place, override ${out.dex.input.absolute.dir}] 
<target name="-post-compile"> 
</target> 

명시 적으로 수정을 요구하는 것을 감안할 때, 나는 그것이 sdk 버전에서 지원 될 것이라고 생각합니다.

프로젝트에 대해 자동으로 생성 된 build.xml 파일을 보려면 android update project을 실행해야 할 수 있습니다.

는 SDK 도구로

8 Proguard와 지원이 내장되어 REV 당신은 당신의 default.properties에 라인을

proguard.config=proguard.cfg 

을 추가해야합니다 (그리고 있습니다

+1

오 남자. 그것이 거기에 있다는 것을 깨닫지 못했습니다. 감사! - 테스트를 거쳤습니다 - 작동합니다! –

1

그냥 경우에 당신은 그것을 놓쳤다. 당연히 난독 화 규칙을 설정하는 proguard.cfg 파일)

다른 대상을 추가 할 필요가 없습니다.

는 (이 어쨌든 Windows 버전의 사실이다, 나는 리눅스 같은 상상. '규칙'XML은 이제 main_rules.xml이라고합니다)이 완벽

+0

나는 그것에게 소용돌이를 주었지만, Fedora 14는 아직도 개미 1.7 (1.8이 아니었다.)을 사용하고있다. 새 SDK에서 필요함). 아아, 나는 따라 잡을 때까지 기다려야 할 것이다. 그러나 나는이 훨씬 간단한 방법을 사용할 것을 고대하고있다. NickT 고마워. –