Google은 흑인 공동체를 위한 인종 간 평등을 진전시키기 위해 노력하고 있습니다. Google에서 어떤 노력을 하고 있는지 확인하세요.

상수 내보내기

인터페이스가 자바와 호환되지 않는 경우(예를 들어 유니언을 사용하기 때문에) 상수(enum 값)를 자바 환경으로 내보내는 것이 좋습니다. 이 시나리오는 패키지의 인터페이스 파일에서 주석이 있는 enum 선언을 추출하고 [PACKAGE-NAME]-V[PACKAGE-VERSION]-java-constants라는 이름의 자바 라이브러리를 생성하는 hidl-gen -Ljava-constants …에서 지원됩니다. 내보낼 각 enum 선언에 다음과 같이 주석을 추가합니다.

    @export
    enum Foo : int32_t {
      SOME_VALUE,
      SOME_OTHER_VALUE,
    };
    

필요에 따라 이 유형을 자바 세계로 내보내는 항목의 이름은 주석 선언의 매개변수 name를 추가하여 인터페이스 선언으로 선택한 이름과 다를 수 있습니다.

    @export(name="JavaFoo")
    enum Foo : int32_t {
      SOME_VALUE,
      SOME_OTHER_VALUE,
    };
    

자바 규칙 또는 개인적인 선호도에 따라 일반적인 접두사를 enum 유형의 값에 추가하도록 요청하는 경우 주석 지정 매개변수 value_prefix를 사용합니다.

    // File "types.hal".

    package android.hardware.bar@1.0;

    @export(name="JavaFoo", value_prefix="JAVA_")
    enum Foo : int32_t {
      SOME_VALUE,
      SOME_OTHER_VALUE,
    };
    

결과 자바 클래스는 다음과 같이 표시됩니다.

    package android.hardware.bar.V1_0;

    public class Constants {
      public final class JavaFoo {
        public static final int JAVA_SOME_VALUE = 0;
        public static final int JAVA_SOME_OTHER_VALUE = 1;
      };
    };
    

마지막으로, types.hal 선언된 enum 유형에 대한 자바 유형 선언은 지정된 패키지의 Constants 클래스 내에 그룹화됩니다. 인터페이스의 하위 클래스로 선언된 Enum 유형은 해당 인터페이스의 자바 클래스 선언으로 그룹화됩니다.