본문 바로가기
[Developer]/Android

AndroidCodec 2nd Morning

by 반가운 해피빈이 2011. 5. 24.

 

안드로이드에서 미디어라고 말하는 것은 세가지 이다.

카메라, 음성, 영상.

 

코덱을 공부하기위해 필요한 첫 단계는 각 파일의 위치에 대한 구조를 파악하는 것이 우선이다.

 

init.rc에서 loglevel을 정한다.

 

꼭보아야 하는 파일 리스트

튜닝 관련하여

  1. /proc/sys/*
  2. /sys/*
  3. 커널 파라미터

 

디바이스는 메이저 넘버와 마이너 넘버가 적혀있어야 한다.

 

core/init/devices.c

이 부분에 각 시스템 프로퍼티 설정을 한다.

 

system/vold/ 이곳은 sdcard에서 읽는 부분과 연관이 있는 부분이다.

 

cts는 api의 호환성 테스트 용이다.

 

또한 코덱을 위해선 build, external, framework, hardware, out을 보자.

 

**build

envsetup.sh을 통해서 빌드의 환경을 설정한다.

/core 안에 prelink-linux-arm.map 파일을 기억하라.

여기에 필요하다고 느끼는 so파일을 첨가시키자.

이 때 각 파일별로 할당되는 메모리 크기가 다양하기 때문에 꼭 첨가시에는 최적의 크기를 테스트해서 적용해야 한다.(파일 사이즈와 일치하지 않는다.)

 

version_defaults.mk 파일에서 버전을 설정한다.

 

에뮬레이터를 내가 만든 플랫폼으로 교체하고 싶으면 내가 빌드한 system.img파일로 교체하면 된다.

 

frameworks/base/core/jni에 보면 중요한 cpp파일이 많이 있다. jni의 핵심 디렉토리이다.

 

빌드순서

build/envsetup.sh

chooseproduct sec_smdkv210

[generic] sec_smdkv210

mmm packages/apps/Browser

 

Binder는 시스템의 영역을 보호하고 있기 때문에 app이 crash나도 시스템 전체에 영향을 주진 않는다.

 

멀티미디어를 처리하는 Service Manager.

안드로이드 root filesystem에서 실행파일은 /system/bin/servicemanager이다.

 

frameworks/base/libs/utils는 Android Binder관련 핵심 디렉토리이다.

Binder의 사용은

IPC와 RPC용으로 사용한다.

 

관련 중요 헤더파일들

utils/RefBase.h .....

 

이 글은 스프링노트에서 작성되었습니다.

댓글0