티스토리 뷰

카테고리 없음

AOSP 간략한 소개

희나람 2013. 7. 1. 05:19

AOSP[ http://source.android.com/ ]


AOSP 간단한 소개

 안드로이드는 구글의 주도 하에 진행되고 많은 장치(device)를 위한 오픈 소스 소프트웨어 스택입니다. AOSP 싸이트에서 소스코드 및 정보를 얻을 수 있습니다. 여기서는 안드로이드 SW 스택의 여러 커스텀을 만들 수 있고, 안드로이트 플렛폼에서 작동하는 장치와 악세사리 빌드(build), 당신의 장치가 안드로이드 호환성 정의에 호환되는지 확실하게 할 수 있습니다.


* 소프트웨어 스택이란?

(1) OS와 어플과 같이 결과물을 함께 생성하는 프로그램들의 집합입니다. 일반적인 결과물을 향해 순차적으로 일하는 어떤 어플리케이션 그룹이거나, 그룹에 의해 일하는 실용적이거나 진부한 어떤 집합을 이야기할 수 있을 것입니다.

참고 [ http://www.pcmag.com/encyclopedia/term/51702/software-stack ]



 소스(Source)란을 살펴봤습니다.

 구글에서 근무하는 엔지니어, PM, UI디자이너, QA가 안드로이드 유지에 기여한다고 합니다. 여기서는 불안전한 버전을 안전한 버전과 구분하기 위해 “code lines"라는 숫자를 사용한다고 하네요.

 위 차트에서 보면 하나의 라인에서 여러 가지(branch)가 생겨납니다. release cut을 통해 git을 하기도 하고 안하는 걸 볼 수 있습니다. 많은 다른 개발자들이 참여하기도 하지만, 동시에 구글에서도 개발하여 branch하는 것을 볼 수 있네요. 그리고 구글 내부 개발이 있는데, 이게 비밀로 가는 까닭은 OEM이나 다른 어플 개발자들이 현재 공개 버전에서 안전하게 개발했으면 하는 이유라고 하네요.


 그리고 프로젝트 룰이 있습니다.

 기여자(Contributor)의 경우는, 정해진 툴(git,repo,gerrit)과 코드스타일, 코드 리뷰 프로세스를 사용해야합니다.

 입증자(Verifier)의 경우, 승인자와 동일하기도 합니다. 높은 품질의 상당한 코드를 summit합니다.

 프로젝트 리드(Project Leads)는 일반적으로 구글 직원이 맡게 됩니다. 책임들이 좀 있는 편인데, 구글 직원들에게 적용되는 것이겠죠? 아무튼 프로젝트를 총괄하는 사람으로 보면 되겠습니다.


 그렇다면 기부는(Contributing)?

 크게 3가지 입니다. 버그 리포트, 앱 개발, 코드 기부입니다. 코드 기부의 경우 버그나 기능을 선택해서 제출할 수 있다고 하네요.


 summit 패치를 할려면 어떻게 해야할까. [ http://source.android.com/source/submit-patches.html ]

 git를 이용해서 패치를 합니다. 60자 이하로 요약해서 commit message를 작성하고 그걸 어떻게 해결했는지 설명이 필요합니다. 히스토리는 getrrit에 업로드 합니다. (getrrit은 웹 기반의 코드리뷰 툴입니다.) 업로드한 패치를 원래대로 바꿀 수도 있습니다.


 만약 안드로이드 소스에서 버그를 발견한다면?

 몇 가지 방법을 지킨 뒤 보고 하면 됩니다. 좋지 않은 버그 레포트와 좋은 버그 레포트가 있는데요, 좋은 버그 레포트는 되도록이면 전체 소스코드를 다 넣고, 문제점을 적어주고, 에러 구문을 다 입력해줍니다.


 코드 스타일도 어떻게 해야하는 지 이야기가 나옵니다. 역시 많은 사람들이 코딩을 해주는 것 이다보니 코드 스타일이 통일될 필요가 있겠지요.



 안드로이드가 어떻게 오픈소스를 제어하는지 볼 수 있는 흥미로운 자료인 것 같습니다.

 다음번엔 디바이스랑 악세사리, 호환성 관련 문서도 요약해서 적어봐야겠네요.