[안드로이드 앱 개발] 1.안드로이드 이해하기
by 습작 | 13.10.28 01:21 | 12,732 hit

* 개요안드로이드는 리눅스 기반의 모바일 운영체제로 스마트폰 운영체제 중에서 애플의 iOS와 더불어 세계 시장을 양분하고 있는 대표적인 운영체제(OS)이다. 구글이 안드로이드사를 인수하면서 본격화되었는데 구글과 함께 여러 하드웨어, 소프트웨어 및 통신 업체들의 연합인 OHA(Open Handset Alliance)에서 공개 표준을 만들어 가고 있다.안드로이드 관련 개발 정보는 http://developer.android.com/index.html 에서 찾을 수 있다.

리눅스 커널 2.6기반에서 모바일 환경과 어울리지 않는 무거운 기능은 제거하고, 알람 및 디비거 등의 기능은 추가한 형태이다. 아래 그림은 리눅스 커널과 안드로이드의 아키텍처를 비교한 것으로 규모만 보더라도 달라진 OS임을 가늠해 볼 수 있다.



안드로이드는 아파치 2.0 라이센스로 공개되어 있는 소스를 수정해서 사용하더라도 수정 내용을 다시 공개해야할 의무도 없고 상업적인 용도로도 사용할 수 있다. 단, 특정 하드웨어와 연관된 소스라던가, Google Maps, Android Market 등 구글 자체 서비스 적인 부분은 오픈 소스가 아닌 부분도 존재한다.리눅스커널에는 다양한 장치를 연결해주는 디바이스드라이버, 전원관리, 스레드 관리, 메모리 관리 등이 포함된다.라이브러리는 기본 libc, 2D용 SGL, 3D용 OpenGL, 벡터폰트용 Freetype, 미디어, DB용 SQLite, 인터넷을 위한 SSL과 Webkit등이 포함된다.안드로이드에서는 Java를 기본언어로 사용하지만  Java VM을 직접 사용하지 않고 전용 Dalvik VM을 각 프로세스별로 할당 시켜 각각의 앱들을 효율적으로 동작시킨다.(dex포맷) 또한, 공식언어로 Java를 사용하지만, NDK를 활용하여 C로 어플을 개발할 수도 있다응용 프레임워크를 안드로이드 API라고 부르며 이 API 들이 하드웨어 접근을 추상화시켜주고, UI에 위젯을 정의하며, 라이브러리와 통신할 수 있는 래퍼를 제공한다. 액티비티 관리자, 윈도우 관리자, 뷰시스템, 패키지 관리자, 전화, 통지, 위치 관리자, CP등이 있다.안드로이드 계층 구조 최상단에 개발자들이 만든 응용이 위치하게 된다. 안드로이드 실행 파일은 같은 패키지에 속한 자바클래스와 리소스의 집합일뿐 프로세스와 1:1로 대응되는 것은 아니며 안드로이드 응용 프로그램 들간에는 COM이나 CORBA와 같이 서로의 기능을 공유할 수도 있다.
* 안드로이드 어플의 구조


안드로이드 앱은 따로 정해진 진입점이 없으며 액티비티, 서비스, BR(Broadcast Receiver), CP(Content Provider) 4가지 컴포넌트로 구성할 수 있다. 각 컴포넌트는 일부만으로 구성할 수도 있고 여러개를 가질 수도 있다. 이 구성 정보는 매니페스트에 저장하며 이 파일에서 최초 실행시 어떤 액티비티를 띄울것인지 지정한다.액티비티는 UI를 구성하는 기본단위로 하나의 화면을 의미하며 여러 뷰로 구성된다.서비스는 UI없이 음악 재생, 네트워크 감시등 백그라운드에서 계속적으로 수행되는 컴포넌트로 액티비티와 연결해서 사용한다.BR는 UI없이 시스템으로 전달되는 배터리신호, 카메라 , 네트워크 시그널 등을 수신하여 적절한 액티비티를 띄우는 역할을 한다.CP는 데이터베이스와 주소록 같이 자신의 데이터를 다른 응용프로그램을 위해서 제공하는 역할을 수행한다.각 컴포넌트는 독립적으로 수행되므로 상호간 통신을 위해서 Intent를 사용하며 이 Intent에 메시지의 상세 내용을 담아 전달한다.* 안드로이드 어플 개발에 대한 동기 부여스마트폰, 태블릿, PMP를 비롯한 다양한 응용 기기들의 등장으로 그 활용도가 지속적으로 확대되고 있다.좋은 어플에 대한 사용자들의 열린 비용 지불 문화가 정착되어 가고 있다.개발자들에게 오픈 마켓을 통한 적절한 생태계가 제공되고 있다.오픈소스와 다양한 예제를 통해서 어렵지 않게 아이디어를 실제 어플 구현으로 연결시킬 수 있다.개발 장비 구입, 개발 환경 구축등  스터디를 위한 별도 환경이 필요치 않고 기존 자원을 최대한 활용할 수 있다.그럼에도 불구하고, 오픈 마켓에 올려져 있는 수많은 어플 가운데, 내 어플이 주목받기란 녹록치 않은 도전이다. 또한, 사용자들이 좋은 어플에 기꺼이 비용을 지불하는 문화라고는 하지만, 주요 인기 어플들은 대부분은 무료 어플이고 해당 어플들은 광고에 수익을 의존하고 있는 것도 현실이므로 지혜로운 시간 투자와 좋은 아이디어 발굴이 긴요하다 할 수 있겠다.
추천 3

댓글 11

벽하거사 2013.11.14 16:12
많은 도움이 되었습니다.
고맙습니다..
『유나아빠』 2013.11.01 11:53
좋은하루되세요~   
천방지축 2013.10.29 10:41
감사합니다....
사막의장미 2013.10.29 10:34
쉽지는 않겠네요ㅋㅋㅋ
세계를품다 2013.10.29 08:15
ㅎ 난감
Oollalla 2013.10.29 00:21
좋은 정보 감사합니다.
라떼로주세요 2013.10.28 18:12
이해 못해도 괜찮겠죠??^^
길태 2013.10.28 15:52
좋은정보감사
서현서진서율아빠 2013.10.28 15:37
감사3
알람방구 2013.10.28 13:47
감사합니다.
뽀대 2013.10.28 13:40
쿨럭 나랑먼얘기같소 ㅋ

이거슨 꿀팁 다른 게시글

게시물 더보기

이거슨 꿀팁 인기 게시글

  1. 알뜰폰 1Mbps 3Mbps 무제한요금제 최저가2개2,495
  2. 알뜰폰 쓸 때 인터넷과 결합하려면2,639
  3. 해외여행 갈 때 데이터로밍 간편하고 싸게 쓰…2,506
  4. 기프티콘은 컬쳐랜드 쿠폰거래소에서 이용하…2,392
  5. 클리오 루즈힐 블룸 다이아 립스틱 5종 홈쇼…2,493
  6. 데이터 10GB+1Mbps 무제한 6,500원부터 쓸수…2,353
  7. 알뜰폰 요금제 검색하면서 2만명 넘게 선택한…2,521
  8. 3월 알뜰폰 가성비 평생요금제 2가지 6GB 6천…2,098
  9. 3Mbps 속도 데이터무제한 최저가 검색2,100
  10. 컬쳐랜드에 쿠폰거래소가 새롭게 생겼어요2,062

2024.06.12 00:00 기준