안드로이드에 좀 더 깊이 공부하기 위해서 어떤 공부를 해야할지 정리해봄
위처럼 Android OS는 리눅스위에 올려져 있음
안드로이드 개발자로 기여할 수 있는 부분을 생각해 보았을 때,
애플리케이션 개발자 : 비즈니스로직이나 안드로이드 API, Library를 사용해서 앱 서비스를 개발
AOSP에 기여 :
- 리눅스 커널 : 메모리 관리, 프로세스 관리, 보안, 네트워크 스택 제공 등을 위해 드라이버, 관리자 개발
- HAL : 하드웨어 소프트웨어 간의 인터페이스 제공 ( 어떠한 센서의 인터페이스 개발, 이를 앱단으로 올려주는 프레임워크 개발, 이를 사용하는 앱 개발까지 연결됨)
- ART : 앱 실행환경, GC 등 최적화
- 네이티브 라이브러리 : 그래픽, 웹 브라우징 등 기능(소켓 등을 개발?)
- 애플리케이션 프레임워크 : 앱 개발에 필요한 API 개발(Activity, service 등 우리가 사용하는 프레임워크)
만약 내가 Lidar센서를 차량에 지원하는 기능 개발이 있다면?
1. 리눅스 커널 : 라이다 센서 드라이
2. HAL : 라이다 센서 방향조절(앱 -> 하드웨어), 및 데이터 처리하는 인터페이스 개발
3. 프레임워크 : 앱단에서 사용할 수 있도록 변환
4. 앱개발 : 3차원 모델링 시각적 표현 등
이러한 사실들로 봤을 때, AOSP에 기여하는 경험은 쉽지 않을 것 같다.
개인 개발자가 자신에게만 필요한 Framework를 개발한다고 하더라도, 삼성 등 다른 제품의 OS에 내 Framework만 올려서 사용하는 것도 불가능 하니, 유의미한 공부가 될 지는 모르겠지만 안드로이드와 운영체제에 대한 공부를 하는 것에 의의를 두고 공부해 봐야지..
일단 Linux에 대해 강의를 듣고 공부해야겠다.
'어플 개발일기' 카테고리의 다른 글
24.7.29. AGP 8.5.1 업데이트와 환경설정(SDK, JVM 등) (0) | 2024.07.31 |
---|---|
24.7.28-29. 앱 내에서 게시글 동기화 문제 해결 (0) | 2024.07.29 |
앱 개선사항(3. 소모임 나가기 로직 테스트) (0) | 2024.06.04 |
앱 개선사항(2. 채팅방 뷰 및 알림 등 기능 개선) (0) | 2024.05.31 |
앱 개선사항(1. 서버에 기록 지우기) (0) | 2024.05.02 |