2009-06-05 2 views
3

블랙 베리와 RIM 모두에서 실행해야하는 프로젝트에 JiBX을 사용할 것을 고려하고 있습니다. JiBXJ2ME 사용이 커뮤니티에서 고려한 것처럼 보이지만 (JiBX jira 티켓 당) Android는 비교적 새로운 것입니다.안드로이드의 JiBX (또는 다른 빌드 타임 바이트 코드 라이브러리 조작)

질문 : 따라서 안드로이드에서 JiBX를 사용하거나 빌드 타임에 클래스 바이트 코드를 수정해야하는 다른 라이브러리를 사용하여 성공한 사람이 있습니까?

(런타임 바이트 코드 도구를 사용하는 것과 비교하여) Android에서 이러한 라이브러리를 실행하는 방법에 대한 토론이 있지만 실제로이 작업을 시도하는 사람들에 대한 보고서는 너무 많지 않습니다.

답변

0

좋아, XMLPull API 위에 XML 구문 분석 코드를 작성하기로 결정했습니다. 멋진 기법이 없습니다.

내 스키마가 현재보다 복잡해지면 (그리고 시간이있다) ANTLR 기반 XML 파서 생성기를 작성하여 개별 스키마에 대한 파서의 실제 Java 코드를 생성하는 실험을하고 싶다.

현재 모바일 용 자바 세대는 모바일 용 바이트 코드 생성보다 훨씬 안전하고 우수합니다.

1

안드로이드가 바이트 코드를 실행하지 않기 때문에 작동하지 않습니다. Android의 Java 런타임은 클래스 파일 대신 .dex 파일을 실행하는 레지스터 기반 가상 시스템 (Dvalik)을 사용합니다. 이론적으로 자바 바이트 코드 대신 생성 할 수 있습니다.

+4

Dalvik은 특수 바이트 코드 형식 인 .dex를 실행하지만 dx라는 Google 제공 도구가 표준 Java 바이트 코드를 .dex 형식으로 변환합니다 (here). 따라서 이론적으로 표준 컴파일 자바 바이트 코드를 생성하는 포스트 컴파일 링 타임 바이트 코드 조작을 수행하는 lib는 여전히 android에서 작동합니다. dx 도구는 결과 바이트 코드가 .dex 인 모든 것을 변환합니다. –

1

예, JiBX를 사용하여 Android 애플리케이션에서 프로토 타입을 작성했습니다. jibx jar를 Android 프로젝트 라이브러리로 추가하면 자동으로 dex로 패키지됩니다. 실제로 JiBX 바인딩은 Android에서 잘 작동합니다. 3 병만 있으면됩니다. Jibx-run.jar, jibx-ws-0.9-bata.jar 및 제 genereated 바인딩 jar. 그러면 안드로이드 응용 프로그램은 비누 클라이언트 호출을 할 수 있습니다. 객체 바인딩에 대한 xml은 내부적으로 jibx에 의해 처리됩니다.

관련 문제