8th Kandroid Conference
"The Gate of the AOSP #1 : Debugging and Internals"
행사일정
일시 : 2011년 10월 17일(월) 오전 9시 ~ 오후 6시
장소 : (주)포스코P&S 타워 3층 (역삼역3번출구)
좌석 : 총좌석 : 240 / 잔여석 : 0 (※ 작고 아담한 공간입니다.)
예약 취소자가 발생할 수 있습니다.
대기자 등록을 원하시는 분은 아래의 링크를 클릭하세요
  • 대기자 등록하기
  • 대상 : 안드로이드 플랫폼/애플리케이션에 관심있는 분
    주최 : www.kandroid.org
    프로그램
    사회 : kandroid.org 운영자 양정수(닉네임,들풀)
    입장 : 08:30 ~ 09:00
    참가방법
    사전결제 : 77,000원/1일 (부가세 포함 / 발표자료집 및 중식 제공) [사전등록 바로가기]
    (※ 중식은 사전결제하신 분에 한하여 제공합니다.)
    연락처
    contact.kandroid@gmail.com, Tel : 010-7161-9990
    (※ 문의는 가급적 Email로 해 주시기 바랍니다. 더불어 전화는 평일 오후 6시 ~ 오후 7시 사이만 가능합니다.)

    이번 컨퍼런스와 관련해서 의견이나 질문 있으신 분들은 아래의 링크를 클릭하신 후,
    덧글 남겨주시면 답변 드리도록 하겠습니다. (☞ 의견 및 질문 남기기)

    시간 발표 내용 발표자
    09:00 ~ 09:40
    안드로이드 커널의 디버깅 테크닉 Function Tracer(Ftrace) Technology Session

    세션목표 : 안드로이드 플랫폼을 상용 모바일 디바이스에 탑재후에 많은 개발자들이 디버깅 문제, 프로파일링 문제, 튜닝 문제, 트레이싱 문제 등의 최적화 이슈에 직면하게 됩니다.

    본 세션에서는 플랫폼 및 APP 개발자들이 커널의 Ftrace기술을 이용하여 Linux OS를 쉽고 효과적으로 Tracing을 할수 있기 위한 방법론들을 공개합니다. (이번 세션에서는 목차에 보이듯이 청중의 포지션을 감안하여 Kernel의 Ftrace개발 참여를 위해 필요한 수준의 기술지식들은 소개 정도만 할것이므로, 베테랑 커널 개발자분들은 오해의 소지가 없으면 합니다.)

    특히, 안드로이드 플랫폼을 기반으로 상용 제품을 준비하는 개발자 분들에게 소프트웨어 품질 경쟁력을 확보하기 위해 안드로이드 플랫폼 OS 내부를 기반 지식 없이도 쉽게 Tracing할 수 있는 Know-How를 제시합니다.
    이론편 (Ftrace for Platform Developers)
  • Introduction & Overview
    - 멀티코어 지원을 위한 안드로이드 커널 기능들
    - 디버깅을 위해 안드로이드폰 루팅하기
    - User-space Zygote에 Strace 연동시키기
    - Native 프로세스에 GDB 디버깅 환경 구축
    - Ftrace란 무엇인가?
    - Ftrace로 할 수 있는 일들은 무엇인가?
    - Ftrace의 환경설정 및 맛보기 데모

  • Understanding Ftrace
    - Dynamic function with GCC’s profiling option
    - Ftrace에서 지원되는 Trace 기능들
    - 분석이 필요한 커널함수만 필터링 방법
    - 문맥교환 스케쥴링 분석하기
    - 커널함수 실행을 그래프 형태로 출력하기
    - 이벤트 트레이서(Event Tracer) 활용하기
    - Plugins VS. Events 의 장단점은 무엇인가?
  • 임근식(Geunsik Lim)

    - 닉네임(invain:인베인)
    - www.kandroid.org 운영진
    09:50 ~ 10:30
    활용편 (Ftrace for App Developers)
  • Trace-cmd (CLI Utility )
    - 리눅스 커널 비전문가를 위한 툴들
      (trace-cmd/kernel-shark)
    - 애플리케이션 개발자를 위한 trace-cmd
    - ARM용 Trace-cmd & Kernelshark 소스 컴파일 하기
    - Trace-cmd 실행파일이 필요로 하는 라이브러리 구조
    - Trace-cmd 명령 실행 방법
    - Trace-cmd으로 특정 CPU의 함수 프로파일링 하기
    - 인트럽트 Off 영역의 디버깅 방법
    - 스케쥴링 Latency의 디버깅 방법

  • Kernelshark (GUI Utility)
    - GUI기반 로그파일 분석 유틸리티 - KernelShark
    - KernelShark의 그래프 정보 영역 마크
    - Kernelshark으로 로그파일 분석하기
    - Study: Ftrace을 이용하여 Contacts의 성능 저하 분석
  • 10:40 ~ 11:20
    Performance Monitoring 기반의 플랫폼 디버깅 기술

    세션목표 : ARM SoC에서 Hardware 적인 Debug Architecture를 살펴 보고 이를 Linux Kernel에서 어떻게 지원하고 있는 지 살펴보는 시간을 가집니다.

    이와 관련 배경지식을 약간 첨부 하고, 실제적으로 Userspace에서 사용되는 Perf와 Oprofile을 어떻게 Cross Compile하고 사용하는 지 살펴보는 시간을 갖습니다.
    ARM SoC Debug Architecture and Debug Formats
  • ARM SoC Debug Architecture
    - Invasive and Non-invasive debug

  • Debug Formats
    - ELF and DWARF
  • 이광우(Kwangwoo Lee)

    - www.kandroid.org 운영진
    11:30 ~ 12:10
    Perf Architecture and Tools
  • Perf Architecture in Linux Kernel
    - How it works?

  • Build Tools and Usage
    - Perf and Oprofile
  • 12:20 ~ 13:00
    Android Application Quality 향상을 위한
    Static Code Analysis 및
    Android Testing 적용 방안과 사례

    세션목표 : Android Application 개발과정에서 발생하는 Bug는 개발 후반부로 갈 수록 수정하기 위한 비용과 노력이 많이 들기 때문에 신속히 식별하고 처리할 수 있어야 합니다.

    본 세션에서는 Static Code Analysis Tool인 PMD, Findbugs에 대해 알아보고 이를 활용할 수 있는 방법과 CI(Continuous Integration)을 통한 Analysis 자동화 방안 및 실 적용 사례를 전달 하고자 합니다. 또한, Android Test Framework을 이용한 다양한 Test방법과 CI를 통한 자동화 방안도 함께 살펴 보도록 하겠습니다.

    이를 통해 개발 단계에서의 Android Application Bug를 최소화 하여 Android Application의 Quality를 높일 수 있는 방법을 소개 하고자 합니다.

  • Static Code Analysis
    - Introduction to Static Code Analysis
    - Findbugs / PMD 적용방안
    - Continuous Integration을 통한 Findbugs,
      PMD 수행 자동화 방안

  • Android Testing
    - AndroidTestCase , ActivityTestCase 등
      Android Test Case에 대한 소개
    - Continuous Integration을 통한 Testing 자동화 방안
  • 허규

    - SK Telecom, 매니저
    - New Media Device팀
    13:00 ~ 14:00 점심 시간
    14:00 ~ 14:40
    안드로이드 멀티미디어 프레임워크의 내부 동작

    세션목표 : 곧 발표되는 아이스크림 샌드위치 (Ice-cream Sandwich) 릴리즈에서는 멀티미디어 프레임워크의 구조와 기능에 꽤 다양한 개선이 이루어지는 것으로 알려져 있습니다.

    따라서 이번 세미나에서는, 현재까지 공개되어있는 진저브레드 (Gingerbread) 릴리즈의 멀티미디어 프레임워크의 전체 구조 및 내부 동작 원리를 이해하고, 이를 바탕으로 실제 업무에서 도움이 되는 디버깅 기법과 개선 방향에 대한 정리를 함으로써, 추후에 공개되는 새로운 안드로이드 릴리즈의 멀티미디어 프레임워크를 보다 빨리 이해하고, 필요한 부분에서의 개선 작업에 도움이 될만한 기반을 다지고자 합니다.
    이론편 (멀티미디어 프레임워크의 구조 및 동작)
  • 미디어 프레임워크의 디렉토리 구조
  • 미디어 프레임워크의 소프트웨어 모듈 및
        소스코드 구성의 이해
  • 멀티미디어 코덱과 파서의 이해
  • 멀티미디어 플레이어 소스의 동작 분석
  • 김태용(Taeyong Kim)

    - 모바일 솔루션 아키텍트
    - 윈드리버 시스템스 이사
    - www.kandroid.org 운영진
    14:50 ~ 15:30
    활용편 (멀티미디어 프레임워크의 디버깅 테크닉)
  • 미디어 프레임워크의 소스 코드 분석 기법
  • 멀티미디어 동작 방식의 이해를 위한 로깅
  • 미디어 플레이어의 포팅 방식
  • 개선된 미디어 플레이어의 제작
  • 15:30 ~ 16:00 휴식 시간
    16:00 ~ 16:40
    안드로이드 애플리케이션 프레임워크 내부 동작

    세션목표 : 안드로이드 기술에 대한 이해는, 최신 트렌트들을 이해하는 방향도 중요하지만 안드로이드 전체 소스를 이해하는 방향으로 나아가야 한다고 생각합니다.

    안드로이드 전체 소스 코드(AOSP)를 이해함에 있어서 애플리케이션 프레임워크 코드에 대한 이해는 매우 중요한 의미를 갖습니다.

    이에 이번 세션에서는 애플리케이션 프레임워크를 이해하기 위한 기초지식과 내부동작구조의 핵심 개념과 서비스에 대한 이론적 분석, 그리고 이러한 이론적 이해를 검증하기 위한 방법으로써 디버깅 기술의 활용방법에 대해 살펴보고자 합니다.
    이론편 (애플리케이션 프레임워크의 구조 및 동작)
  • Binder IPC Mechanism in Android
  • Memory Models in Android
  • Threading Models in Android
  • Event and Message Loop in Android
  • Anatomy & Physiology of an Application Framework
  • 양정수(Yang, Jeong Soo)

    - 닉네임(들풀)
    - www.kandroid.org 운영자
    16:50 ~ 17:30
    활용편 (애플리케이션 프레임워크 디버깅 테크닉)
  • JDWP(Java Debug Wire Protocol) Overview
  • Building Custom Device(Emulator)
        for system_server Debugging
  • Building Custom Project in Eclipse
        for system_server Debugging
  • Building Android Core libraries and Source Attatchment
  • Debugging Issues of system_server
  • 제안 : kandroid s/w membership