2013-10-23 3 views
5

iOS 개발을 위해 RoboVM을 관심있어 왔습니다. 누군가가 iOS에서 실행할 때 JavaFX (또는 사용하는 기술)의 제약을 지적 할 수 있습니까?RoboVM 사전 컴파일러의 기본 제약

예를 들어 Spring을 사용할 수 있습니까? RoboVM은 사전 컴파일러를 사용하고 Spring은 런타임 종속성 주입을 사용하므로 절대 불가능합니다. 누군가 정교하게 만들 수 있습니까?

JPA 및 기타 Java EE 기술은 어떻습니까?

답변

8

RoboVM은 JVM에서 기대하는 것, 즉 의존성 주입에 Spring이 사용하는 리플렉션을 포함하여 대부분의 것을 지원합니다. RoboGuice과 같은 것이 RoboVM에서 잘 작동합니다.

RoboVM에서 지원하지 않는 가장 주목할만한 기능은 런타임 바이트 코드 생성 및 로딩입니다. 바이트 코드 조작에 의존하는 라이브러리는 RoboVM에서 사용할 수 없습니다.

RoboVM에서 빠진 또 다른 사항은 동적 JNI 지원입니다. JNI는 여전히 지원되지만 네이티브 코드는 컴파일시에 정적으로 링크되어야하며 런타임시 동적 인 것과는 달리 일반 JVM이 정적으로 링크되어야합니다. 그 이유는 일반 JNI는 동적 라이브러리를 기반으로하지만 동적 라이브러리는 iOS에서 허용되지 않기 때문입니다.

RoboVM의 런타임 클래스 라이브러리 (java.*, javax.* 등)는 Android 런타임 클래스 라이브러리의 비 UI 부분을 기반으로합니다. 따라서 Android에서 작동하고 Android UI 클래스를 사용하지 않는 모든 기술은 이론적으로 RoboVM에서 작동해야합니다.

+0

감사합니다. AspectJ는 작동하지 않습니다. – HighTML

+2

정적 직조를 사용하면 작동 할 수 있습니다. – ntherning