안드로이드 개발 정보
(글 수 568)
자바에서 구조체를 지원 할 수 있게 나온 라이브러리입니다.
개인적으로는 바이트 통신 할때 유용하게 사용하고 있습니다.
사용법은 API DOC을 참조하시면 되시고 대략 다음과 같습니다.
C
enum Gender{MALE, FEMALE};
struct Date {
unsigned short year;
unsigned byte month;
unsigned byte day;
};
struct Student {
enum Gender gender;
char name[64];
struct Date birth;
float grades[10];
Student* next;
};
JAVA
public enum Gender { MALE, FEMALE };
public static class Date extends Struct {
public final Unsigned16 year = new Unsigned16();
public final Unsigned8 month = new Unsigned8();
public final Unsigned8 day = new Unsigned8();
}
public static class Student extends Struct {
public final Enum32<Gender> gender = new Enum32<Gender>(Gender.values());
public final UTF8String name = new UTF8String(64);
public final Date birth = inner(new Date());
public final Float32[] grades = array(new Float32[10]);
public final Reference32<Student> next = new Reference32<Student>();
}
엔디안, Pack 설정
public class IO extends Struct{
@Override
public ByteOrder byteOrder() {
return ByteOrder.LITTLE_ENDIAN;
}
@Override
public boolean isPacked() {
return true;
}
}