* 2~3개월 무이자 : 현대,하나
* 2~5개월 무이자 : 신한,국민,삼성,롯데
* 2~6개월 무이자 : 우리,BC,농협
* 전월대비 변동사항 : 비씨 / 우리카드 2~5개월->2~6개월 확장
※ 제휴 신용카드 결제시 무이자+제휴카드 혜택 가능합니다.
※ 알라딘페이는 토스페이먼츠사 정책으로 5만원 이상 할부 선택이 가능하오니 필요시 다른 결제수단을 이용 부탁드립니다.
※ 오프라인결제/Non ActiveX 결제(간편결제)/카카오페이/네이버페이/페이코 등 간편결제/법인/체크/선불/기프트/문화누리/은행계열카드/ 알라딘 캐시와 같은 정기과금 결제 등은 행사대상에서 제외됩니다.
※ 무이자할부 결제 시 카드사 포인트 적립에서 제외될 수 있습니다.
※ 본 행사는 카드사 사정에 따라 변경 또는 중단될 수 있습니다.
2.1 호스트 환경 구성 2.1.1 VirtualBox 설치 2.1.2 우분투 설치 2.2 안드로이드 시스템 빌드 환경 구축 2.2.1 빌드 유틸리티 2.2.2 Repo 설치 2.2.3 안드로이드 시스템의 소스코드 내려받기 2.2.4 안드로이드 시스템 빌드 2.3 안드로이드 SDK 개발 환경 구축 2.3.1 이클립스 개발 환경 구축 2.3.2 안드로이드 SDK starter 패키지 다운로드 2.3.3 이클립스용 ADT 플러그인 설치 2.3.4 안드로이드 SDK 경로 설정 2.3.5 안드로이드 SDK에 플랫폼 및 예제 프로그램 추가하기 2.4 안드로이드 애플리케이션 개발 2.4.1 Hello 애플리케이션 작성 2.5 안드로이드 시스템 소스 레벨 디버깅 2.5.1 애플리케이션 프레임워크 소스 로딩 2.5.2 HelloWorld 프레임워크 소스 레벨 디버깅
3장 init 프로세스
3.1 init 프로세스의 실행 과정 3.2 init 프로세스의 소스코드 분석 3.3 init.rc 파일 분석 및 실행 3.3.1 액션 리스트 3.3.2 서비스 리스트 3.3.3 init.rc 파싱 코드 분석 3.3.4 액션 리스트 및 서비스 리스트의 실행 3.4 디바이스 노드 파일 생성 3.4.1 정적 디바이스 노드 생성 3.4.2 동적 디바이스 감지(HOT PLUG) 3.5 프로세스 종료와 재시작 3.5.1 프로세스 재시작 코드 분석 3.6 프로퍼티 서비스 3.6.1 프로퍼티 초기화 3.6.2 프로퍼티 변경 요청 처리 3.7. 정리
4장 JNI와 NDK
4.1 안드로이드와 JNI 4.1.1 왜 안드로이드에서 JNI를 알아야 하는가? 4.2 JNI의 기본 원리 이해 4.2.1 자바에서 C 라이브러리 함수 호출하기 4.2.2 정리 4.3 JNI 함수 이용하기 4.3.1 JNI 함수를 활용하는 예제 프로그램의 구조 4.3.2 자바측 코드 살펴보기 4.3.3 JNI 네이티브 함수의 코드 살펴보기 4.3.4 컴파일 및 실행 결과 4.3.5 안드로이드에서의 활용 예 4.4 C 프로그램에서 자바 클래스 실행하기 4.4.1 호출 API 사용 예제 4.4.2 컴파일 및 실행 4.4.3 안드로이드에서 활용 예 : Zygote 프로세스 4.5 JNI 네이티브 함수 직접 등록하기 4.5.1 라이브러리 로드 시에 JNI 네이티브 함수 등록하기 4.5.2 안드로이드에서의 활용 예 : app_process 프로세스 4.6 안드로이드 NDK(Native Development Kit)로 개발하기 4.6.1 안드로이드 NDK 환경 설정 4.6.2 안드로이드 NDK 개발 따라하기
5장 Zygote
5.1 Zygote란 무엇인가? 5.1.1 Zygote를 통한 프로세스의 생성 5.2 app_process로부터 ZygoteInit class 실행 5.2.1 AppRuntime 객체 생성 5.2.2 AppRuntime 객체 실행 5.2.3 달빅 가상 머신의 생성 5.2.4 ZygoteInit 클래스의 실행 5.3 ZygoteInit 클래스의 기능 5.3.1 /dev/socket/zygote 소켓 바인딩 5.3.2 애플리케이션 프레임워크에 속한 클래스와 플랫폼 자원의 로딩 5.3.3 SystemServer 실행 5.3.4 새로운 안드로이드 애플리케이션 실행
6장 안드로이드 서비스 개요
6.1 예제 프로그램 : 안드로이드 서비스 동작 이해 6.2 안드로이드 서비스 분류 6.3 안드로이드 애플리케이션 서비스 6.3.1 애플리케이션 서비스의 분류 6.3.1.1 로컬 서비스 6.3.1.2 리모트 서비스 6.4 안드로이드 시스템 서비스 6.4.1 시스템 서비스의 분류 6.4.1.1 네이티브 시스템 서비스 6.4.1.2 자바 시스템 서비스 6.5 시스템 서비스의 실행 6.5.1 미디어 서버의 실행 코드 분석 6.5.2 시스템 서버의 실행 코드 분석 6.6 안드로이드 서비스 프레임워크와 바인더 드라이버 개요 및 용어 정리
7장 안드로이드 바인더 IPC
7.1 리눅스 메모리 공간과 바인더 드라이버 7.2 안드로이드 바인더 모델 7.2.1 바인더 IPC 데이터의 전달 7.2.2 바인더 IPC 데이터의 흐름 7.2.3 바인더 프로토콜 7.2.4 RPC 코드와 RPC 데이터 7.2.5 바인더 어드레싱 7.3 안드로이드 바인더 드라이버 분석 7.3.1 프로세스 관점에서의 서비스 사용 7.3.2 바인더 드라이버 관점에서의 서비스 사용 7.3.3 바인더 드라이버 함수 분석 7.4 컨텍스트 매니저(servicemanager) 7.4.1 컨텍스트 매니저의 동작 7.5 정리
8장 안드로이드 서비스 프레임워크
8.1 서비스 프레임워크 8.2 서비스 프레임워크의 구조 8.2.1 계층별 구성 요소의 배치 8.2.2 계층별 구성 요소의 상호작용 8.2.3 클래스 구조 8.3 동작 메커니즘 8.3.1 서비스 인터페이스 8.3.2 서비스 8.3.3 서비스 프록시 8.4 네이티브 서비스 매니저 8.4.1 서비스 매니저(ServiceManager) 개요 8.4.2 서비스 매니저 클래스 8.4.3 서비스 매니저의 동작 8.5 네이티브 서비스 제작하기 8.5.1 HelloWorld 시스템 서비스 설계 8.5.2 HelloWorld 서비스 인터페이스 8.5.3 HelloWorld 서비스 8.5.4 HelloWorld 서비스 프록시 8.5.5 HelloWorld 서비스 실행
9장 네이티브 시스템 서비스 분석
9.1 카메라 서비스(Camera Service) 9.2 카메라 애플리케이션 9.3 카메라 서비스 프레임워크 9.3.1 카메라 서비스 프레임워크의 계층 구조 9.3.2 카메라 서비스 프레임워크의 클래스 9.4 카메라 서비스 프레임워크의 동작 9.4.1 카메라 서비스 초기화 9.4.2 카메라 서비스 연결 9.4.3 카메라 서비스의 연결 소스 분석 9.4.4 카메라 설정 및 제어 과정 9.4.5 카메라 설정 및 제어 과정 분석 9.4.6 카메라 이벤트의 처리 과정 9.4.7 카메라 이벤트 처리 과정 분석
10장 자바 서비스 프레임워크
10.1 자바 서비스 프레임워크 10.1.1 자바 서비스 프레임워크의 계층별 요소 10.1.2 자바 서비스 프레임워크의 클래스별 상호작용 10.2 동작 메커니즘 10.2.1 자바 서비스 프레임워크 초기화 10.2.2 Binder 10.2.3 BinderProxy 10.2.4 Parcel 10.3 자바 시스템 서비스 구현 10.3.1 알람 매니저 서비스의 구조 분석 10.3.2 HelloWorldService 시스템 서비스의 구현 10.3.3 HelloWorldService 시스템 서비스의 이용 10.3.4 HelloWorldService 시스템 서비스 빌드 10.4 자바 서비스 매니저 10.4.1 자바 서비스 매니저 소개 10.4.2 BinderInternal 10.4.3 자바 서비스 매니저의 동작 10.5 AIDL을 이용한 서비스 프록시와 스텁의 구현
11장 자바 시스템 서비스 동작 분석
11.1 액티비티 매니저 서비스 11.2 액티비티 매니저 서비스를 통한 서비스 생성 코드 분석 11.2.1 Controller 액티비티 startService() 메서드 호출 11.2.2 액티비티 매니저 서비스의 startService() 메서드 호출 과정 (바인더 RPC 활용) 11.2.3 액티비티 매니저 서비스 startService() 스텁 메서드 실행 11.2.4 ActivityThread 클래스의 main() 메서드 실행 11.2.5 액티비티 매니저 서비스 attachApplication() 스텁 메서드 처리