기존 이솝 임베디드 포럼의 지식인 서비스가 게시판 형태로 변경되었습니다.
안녕하세요
이번에 안드로이드 kikat 4.2.2 의 surface flinger를 분석 하고 있습니다.
그런데 인터넷에 자료를 찾은 것 중에 surfaceflinger를 초기화 하는 함수가 SurfaceFlinger::readyToRun() 에서
한다고 하는데 실제 kikat에서는 이 부분이 없습니다.
소스가 많이 변경 된 것같은데...
예전 readyToRun() 함수에서 하는일을 kikat에서는 어디서 하는지 알려 주실수 있나요 ?
아시는 분 알려 주시면 감사 하겠습니다,
kikat 오면서 조금 바뀐부분이 있습니다.
일단 init.rc에 sufaceflinger 서비스를 시작합니다(예전에 시스템 서버가 올라가면 했는데 이젠 여기서 하는듯합니다)
service surfaceflinger /system/bin/surfaceflinger
class main
user system
group graphics drmrpc
onrestart restart zygote
서비스?가 시작 되면 main_surfaceflinger함수가 불려지게 되고
sp<SurfaceFlinger> flinger = new SurfaceFlinger();
flinger->init();
flinger->run();
이 순서로 main함수사 수행을 하고 끝냅니다
kikat에서 젤 중요한 부분은 vsync인듯합니다(이건 JB MR부터 이던가,,,,)
이 부분을 중점적으로 보시면 전체적인 SurfaceFlinger를 이해 할듯합니다(hal은 제외하구요)
SurfaceFlinger:init() 에 있네요.