기존 이솝 임베디드 포럼의 지식인 서비스가 게시판 형태로 변경되었습니다.

안녕하세요


이번에 안드로이드 kikat 4.2.2 의 surface flinger를 분석 하고 있습니다.


그런데 인터넷에 자료를 찾은 것 중에  surfaceflinger를 초기화 하는 함수가 SurfaceFlinger::readyToRun() 에서

한다고 하는데 실제 kikat에서는 이 부분이 없습니다.


소스가 많이 변경 된 것같은데...


예전 readyToRun() 함수에서 하는일을 kikat에서는 어디서 하는지 알려 주실수 있나요 ?


아시는 분 알려 주시면 감사 하겠습니다,


전호철

2014.07.08 19:25:45
*.162.60.27

SurfaceFlinger:init() 에 있네요.

고도리

2014.07.09 06:55:01
*.200.239.210

근래 많은 부분이 변경이 되어서 인터넷 자료를 가지고는 찾기 힘드실 겁니다.


일단, 인터넷의 자료 중 중요한 부분만 익히시고, 그게 어떻게 kk에 적용이 되었는지

파악하시기 바랍니다.


참고로, 말씀드리면 인터넷에의 자료 중 한글 자료는 좀 예전자료가 많습니다.

구글이나 baidu에서 검색하셔서 중국 자료를 찾으시는게 좀 나을 듯 합니다.



sakago2862

2014.07.10 23:49:04
*.111.135.254

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은 제외하구요)

List of Articles
번호 제목 글쓴이 날짜 조회 수

사용자 로그인