목록 보기
안드로이드 클라이언트 Reflection 극복기
프론트엔드

안드로이드 클라이언트 Reflection 극복기

타다
타다
2013년 7월 31일

두줄요약

안드로이드 데이터 변환에 사용한 Reflection의 스크롤 반응성 저하를 분석했습니다. APT 기반 Accessor 코드 생성으로 직접 호출 방식의 성능과 유지보수성을 확보했습니다.

문제 상황

  • JSON·Thrift·ContentValues·Cursor 데이터를 POJO로 통일하는 변환 계층
  • CursorAdapter의 반복적 Reflection 호출로 인한 ListView 스크롤 반응성 저하

해결 방법

  • Dexmaker 기반 Dalvik 바이트코드 생성 방식 구현 및 동작 검증
  • Annotation Processor로 모델별 Accessor 코드 컴파일 시 자동 생성
  • 필드명 hashCode 기반 switch-case로 getter·setter 직접 호출

트레이드오프

  • Dexmaker의 런타임 코드 재생성, 초기 실행 성능, 스토리지 캐시 무효화 부담
  • APT 방식의 APK 포함 생성 코드와 모델 변경 즉시 반영 특성

성능/운영 포인트

  • Reflection·Dexmaker·APT 비교에서 모든 환경의 APT 방식 우위
  • JSON·Cursor·ContentValues 등 다형 데이터 변환을 Binding 라이브러리로 추상화

다음 읽기

#Android 주제를 이어서 읽기

Android Wear 개발하기

Android Wear 앱의 알림·Micro App 구조와 모바일-Wear 간 데이터 흐름을 공유했습니다.\n기능 제약, 원형 화면, 패키징 조건을 고려한 개발 주의점을 정리했습니다.

타다
타다
프론트엔드

댓글 0개

댓글을 작성하려면 로그인이 필요합니다.

댓글을 불러오는 중...