Android 에서 SDK 를 봉인 할 때 자주 사용 하 는 주석 요약

머리말
작업 중 에 우 리 는 협력 업 체 가 호출 할 수 있 도록 기능 모듈 을 라 이브 러 리 로 밀봉 해 야 합 니 다.건장 한 Android Library 를 어떻게 잘 쓰 는 지 에 대해 많은 신경 을 써 야 합 니 다.주 해 를 사용 하면 SDK 가 개발 자 에 게 노출 된 인터페이스 에 제한 을 주어 개발 자가 API 를 잘못 사용 하지 않도록 할 수 있 습 니 다.SDK 를 봉인 할 때 자주 사용 하 는 몇 가지 주 해 를 소개 하 겠 습 니 다.필요 한 분 들 은 참고 하 셔 도 됩 니 다.
1.IntDef 와 StringDef
저 희 는 가끔 int 상수 나 String 상수 로 매 거 진 것 을 대체 할 때 가 있 습 니 다.특히 SDK 를 작성 할 때 는 IntDef 나 StringDef 를 통 해 인터페이스 가 받 아들 일 수 있 는 인 자 를 제한 할 수 있 습 니 다.
예 를 들 어 지정 한disableChannel인 터 페 이 스 를 닫 는 데 사용 되 는channel 인터페이스 가 있다.우 리 는 먼저 자신의 주 해 를 정의 할 수 있다@RequirePayChannel

public static final int CHANNEL_UNIONPAY = 0x11000;
public static final int CHANNEL_ALIPAY = 0x12000;
public static final int CHANNEL_WECHAT = 0x13000;
@Retention(RetentionPolicy.SOURCE)
@IntDef({CHANNEL_UNIONPAY,CHANNEL_ALIPAY,CHANNEL_WECHAT})
public @interface RequirePayChannel {}
이렇게 하면@RequirePayChannel를 통 해 받 아들 일 수 있 는 인 자 를 지정 할 수 있다.

public void enableChannel(@RequirePayChannel int channel) {
 // do something
}
이렇게 하면 일부 IDE 는 자동 으로 제안 인 자 를 제공 할 것 이다.지점 범위 밖의 인 자 를 입력 하면 오류 알림 이 발생 하여 컴 파일 할 수 없습니다.

특히 여기 서 우 리 는 사용 했다disableChannel().그것 은 컴 파일 러 가 처리 할 때의 처리 방법 을 지정 했다.기본 컴 파일 러 는 상수 값 을 대응 하 는 값 으로 바 꿉 니 다.이 주 해 를 지정 하지 않 으 면 컴 파일 이 완료 되면 이러한 class 파일 을 얻 을 수 있 습 니 다.

이렇게 하면 IDE 가 의미 있 는 정 보 를 제시 하지 못 하 게 할 수 있다.또한 특정한 int 수치 로 지정 해 야 합 니 다.그렇지 않 으 면 컴 파일 할 수 없습니다.

따라서 컴 파 일 러 가 이 주해 에 대해 추가 적 인 최적화 처 리 를 하지 않도록 지정 해 야 한다.
2.DrawableRes,StringRes 와 DimenRes
지정 한 자원 파일 의 인 터 페 이 스 를 작성 할 때 자원 주 해 를 통 해 이 방법 이 받 아들 일 자원 형식 을 지정 할 수 있 습 니 다.잘못된 자원 을 지정 하면 컴 파일 할 수 없습니다.다음 코드 에서 저 희 는@Retention(RetentionPolicy.SOURCE)방법 으로Animation자원 의 ID 만 지원 합 니 다.

public void setLogo(@DrawableRes int resurceId) {
 // do something
}
잘못된 자원 을 제공 하면 IDE 가 잘못 보 고 됩 니 다.
Retention@DrawableRes의 사용 방법 도 비슷 하 다.
3.NonNull 과 Nullable
빈 값 을 한 방법 에 전달 하면 잠재 적 인setLogo을 일 으 킬 수 있다.우 리 는 이러한 상황 을 극력 피해 야 한다.Drawable매개 변수 가 빈 값 을 받 아들 일 지 여 부 를 지정 할 수 있다.우리 가 빈 값 을 들 어 올 때 IDE 는 응답 하 는 경 고 를 할 것 이다.우 리 는 이렇게 그것 을 사용 할 수 있다.

public void setContext(@NonNull Context context) {
 // do something
}
빈 값 을 입력 하면 경고 가 표 시 됩 니 다.(그러나 코드 는 컴 파일 을 통 해 가능 합 니 다)
@StringRes 매개 변수 나 방법 을 수식 하 는 데 사용 되 는 반환 값 이 비어 있 을 수 있 으 며 개발 자 에 게 주요 빈 값 검 사 를 알 립 니 다.

@Nullable
public Context getContext() {return null;}

총결산
이상 은 이 글 의 전체 내용 입 니 다.본 논문 의 내용 이 여러분 의 학습 이나 업무 에 어느 정도 도움 이 되 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 댓 글 을 남 겨 주 셔 서 저희 에 대한 지지 에 감 사 드 립 니 다.

좋은 웹페이지 즐겨찾기