|
지인으로 부터 안드로이드 플랫폼 서적이 나왔다는 소식을 듣고 주문을 했습니다. 작년 인사이드 안드로이드 이후 오랜만에 나온 플랫폼 책이고 판매량 1위라 나름 기대가 높았습니다… 하지만 기대에 못 미치는 것 같아 아쉬운 점을 몇 자 적어봅니다. 제목이 “안드로이드의 모든 것”지만 다루는 주제가 많지 않더군요... 또한 각 장이 유기적으로 연결되지 못하고 따로따로 놀고 있어 내용 간의 연결이 잘 이루어지지 않습니다. 소스를 삽입하는 것은 좋은데 소스가 너무 많아 지면을 증가시키고 있습니다. 그리고 소스를 넣었다면 소스에 대한 설명이 있어야 하는데 그냥 소스만 보여주고 자세한 설명 없이 넘어가는 부분들이 너무나 많이 보입니다. 설명보다는 소스가 대부분인 섹션도 있네요… 차라리 생략할 부분은 과감히 생략하는 편이 집중력 있게 읽기 좋을 것 같습니다. 어쩌면 제가 내공이 부족해서 이해를 못하는 점도 있겠지요.. 마지막으로 그림이 많지만 이해에 별로 도움이 되지 않습니다. 그림을 삽입을 했다면 그림이 어떤 의미를 포함하고 있는지 설명이 필요한데 자세한 설명 없이 그냥 “이 그림은 무엇을 설명한 그림이다..” 정도로 넘어가는 부분들이 눈에 많이 보입니다. 그림이 직관적이면 이해에 도움이 되겠지만 난해한 그림은 오히려 이해를 어렵게 하는 것 같습니다.. 그림도 흐릿해서 보기 힘듭니다. 저자의 세세한 정성이 아쉽네요.. 아직 다 읽지 못해서 아쉬운 사항은 이 정도입니다.. 주변에서도 평이 갈리네요….
|
|
이 책은 안드로이드 어플리케이션 프로그래밍 책이 아니다. 이 책은 리눅스를 기반으로 만들어진 안드로이드 플랫폼 입장에서 C언어로 만들어진 커널 디바이스 드라이버, 미들웨어인 C++프레임워크, 앱 개발을 위한 자바 프레임 워크 구조를 소개 한다.
안드로이드는 업데이트가 굉장히 빠르다. 개발자 입장에서 이것은 좋은 점이라고 할 수 없다. 최신 안드로이드 버전으로 개발하려고 하면 그 때는 이미 또 다른 최신 버전이 나와 있는 상태일 것이다. 안드로이드 운영체제 자체는 무료이지만, 운영체제를 자사의 하드웨어에 맞게 커스터마이징을 하는 작업에는 많은 비용, 시간, 인력이 필요하다. 이러한 어려운 개발자 입장에서 안드로이드 최신 버젼을 따라가기보다 안드로이드의 내부구조를 파악하여 개발할 때 보다 수월하게 제작하는데 도움을 줄 것이다.
수많은 안드로이드 응용프로그램 개발 서적이 대형서점에 쏟아져 나왔지만, 정작 안드로이드 프로그램이 탑재되어 동작되어야 할 새로운 기계에 안드로이드 플랫폼을 올려야 하는 개발자는 서점이 아니 인터넷을 찾아야 했다. 그럼에도 불구하고 그 어디에서도 속 시원한 답을 얻지 못하는 경우가 많다.
여러 플랫폼에서 드라이버부터 프레임워크 개발까지 다루는 안드로이드 플랫폼 개발자에게 추천하고 싶은 책이다. 앱 개발자도 안드로이드 내부에서 돌아가는 리눅스 관련기술, 입력 디바이스, 센서 하위 시스템, GPS 하위 시스템, 오디오 하위 시스템, IPC Binder, 카메라 시스템, GDI를 집중적으로 다루고 있으므로 앱을 최적화하고 적은 메모리 사용, 과다한 CPU점유율 방지하는데 도움이 될 것이다. |
|
저는 안드로이드 책을 여러권 독파한 건 아니지만 이 책은 시중에 나와있는 안드로이드 책과는 다른 내용에 집중하는 듯 합니다. 다른 책들이 개발에 필요한 상위 계층의 가이드라인을 제시한다면 이 책은 그보다 좀 더 아래 단, 안드로이드 내부 구조와 시스템에 대해 좀 더 집중하고 있는 책입니다. 안드로이드에 대해 보다 원론적인 지식을 얻고자 하는 분들에게 추천하고 싶습니다. 깊이있는 공부를 위해서는 이런 책 하나쯤 소장해도 나쁘지 않을 것 같네요. |
|
일단 이 책은 안드로이드를 이용한 어플리케이션 개발 책이 아니라는 것을 알려 드리옵니다!! 하도 어플...어플...얩얩얩....이란 말을 많이 들어서요! 안드로이드 하면 자동으로 어플리케이션이 연상되네요! 아니더라고요^^; 안드로이드 그 자체를 얘기 하고 있습니다. 안드로이드 플렛폼을 다루는 책은 전 처음 보는거예요^^; 학교에서 배우고 공부한 뒤로 웹개발을 하게되어 더 이상 커널이라는 단어는 저와는 상관없는 단어라고 생각했는데요^^ 시스템 프로그래밍을 하지 않으셨던 분은 책의 모든 내용을 깊게 이해 하시기란 어렵지 않을까요? 아!...쓸때 없는 말이 많았군요!.ㅋ 안드로이드 입문~ 하시려는분이 보시는것 보다는^^
|
|
스마트폰 열풍에 맞추어 안드로이드 개발 책이 봇물처럼 쏟아지는 가운데, 이 책은 좀 다르다. 단순 개발을 위해 찾는 것이라면 다른 책을 찾는 것이 좋을 것 같다. 다른 책과 달리 이 책은 안드로이드 플랫폼을 포팅하고 최적화하고 자신이 개발하는 기기에 맞게 커스터 마이징하기 위해 안드로이드 내부 구조에 대한 이해를 돕기 위해 최선의 책이라고 생각된다. 나도 저자 서문을 읽으면서 나도 s3c2440 cpu를 학부시절에 배웠던 걸 생각났다. 솔직히 임베디드 리눅스를 배우면서 gcc 말고는 사용처가 없어서 흥미를 별로 못 느꼈는데, 불과 몇 년 사이에 안드로이드의 1/3을 차지하다니 놀라울 따름이다. 리눅스는 물론 안드로이드 버전이 자꾸 빌드업되면서 배워야 할 사항이 바뀌고 늘어난다고 불평할지 모르겠지만, 저자가 말하듯이 기본줄기는 그대로 유지 될 것 같다. 그러한 점에서 안드로이드 플랫폼에 대해 자세히 알고 파악하고 싶다면 이 책이 큰 보탬이 될 것 같다. 리눅스에 대한 이야기도 부록에서 다루고 있으니 참조할 수 있다. 처음 안드로이드 개발을 하는 이에게는 어려울 수도 있지만, 개발을 하면서 플랫폼에 파악을 하고 싶다면 API처럼 두고 개발하면 될 것 같다. 안드로이드 init 프로세스 분석, udev, ueventd, android management, 안드로이드 input device, 센서 서브시스템, gps서브 시스템, 오디오 서브 시스템, ipc 바인더, 카메라 시스템, gdi 등으로 내용을 채우고 있으며, 이런 내용을 통해 최적의 성능 이나, 적은 메모리 자원 사용, 과다한 cpu점유율 방지, 오류 현상 제거 등 경쟁력 있는 안드로이드 어플리케이션을 제작하기 위한 가이드를 제시해주고 있다. |
|
안드로이드 프로젝트를 진행함에 있어 느꼈었던 어려운 점은 내부 프로세스를 잘 모르겠다라는 점이었습니다. 앱개발에 참여한지 얼마되지 않고, 정말 간단한 프로젝트에만 참여를 해봐서 솔찍히 내부 프로세스는 알아도 그만, 몰라도 그만이지만, 좀 더 효율적으로 프로그래밍을 하려고 한다면, 알아야하기때문에 관련 서적을 알아보던 도중 이 책을 보게 되어 읽어보고 간단히 느낀 점을 적어봅니다. 이 책은 안드로이드의 시스템 프로세스들을 나름 쉽게 정리하려고 노력을 한 느낌이 드는 책입니다. 용어에 대해서 정리를 잘 해놓았고, 또한 독자의 이해를 돕고자 관련 도식도 인용하여 서술해놓았습니다. 이 책은 서문에도 나와있지만, 안드로이드 SDK등을 설명하기 위한 책은 아닙니다. 앱 개발이나 아님 서비스 개발을 위하신 분들이라면 다른 책을 보시는 것이 훨씬 더 좋다고 생각됩니다. 이 책이 나름 잘 쓰여진 책이라고 생각은 되어지지만, 마무리에 대한 것이 좀 미숙하여 아쉬움으로 남습니다. 예를 들어 55페이지의 07.4 안드로이드 시스템 구조라는 부분을 보면 예시 그림이 나와있는데, 그에 대한 설명이 없습니다. 물론 보면, 왼쪽이 리눅스에 대한 그림이고, 오른쪽이 안드로이드에 대한 시스템 구조를 나타낸 도식도라는 것은 알 수 있습니다만, 그림 밑에 간단한 안내글이라도 적혀 있다면 좀 더 좋지 않았을까 하는 아쉬움이 있습니다. 또한, 60페이지의 08.2 PDK를 이용한 개발을 보면 그림 밑으로 2가지 개발 방법이 나와있는데, 이에 대한 사전 설명이 전혀 없는 상태에서 이와같이 전개를 해버리니 좀 뜬금 없다라는 느낌까지 듭니다. 그 이외에도 더 있습니다만, 일단 생각나는 것만 예를 들어봤습니다. 하지만, 그러한 단점에도 불구하고, 안드로이드 시스템에 대해서 쉽게 설명하려고 한 점은 박수를 쳐줄만하다고 생각됩니다. 안드로이드를 좀 더 자세히 알고 싶으신 분들께서는 읽어 보셔도 큰 후회는 하지 않을 것이라 생각됩니다. 물론, 리눅스에 대한 사전 지식을 갖추실 것을 개인적으로 추천을 합니다.
|
|
요즘 스마트폰의 보급으로 삶의 많은 변화가 있다. 언제 어디서나 인터넷에 접속하여 필요한 정보를 실시간으로 확인할 수 있게 되었으며, 인터넷을 통해 다양한 사람들과 교류를 할 수 있게 되었다. 아마도 새로운 인터넷의 혁명의 단초가 되지 않을까 생각한다. 그러한 변화를 이끈 것은 무엇인지 생각해보면 컴퓨터를 거쳐 스마트폰이 나타나기 시작하면서부터일 것이다. 그 선봉에는 애플의 아이폰을 시작으로 해서 이에 위협을 느낀 기존 업체들이 견제하기 위해 구글을 선봉으로 하는 안드로이드 진영이 있을 것이다. 이 책은 안드로이드의 개념과 동작을 이해하는데 한층 유용하다. 안드로이드 어플리케이션 코딩을 원하는 사람보다는 안드로이드 구조에 대한 이해와 하드웨어와의 동작에 관한 다양한 기능을 설명하여 안드로이드 기본 쌓기에 많은 지면을 할당했다. 이 책은 안드로이드의 전체적인 구성과 동작방법을 이해하는데 중점적으로 다루고 있다. 그래서 책 서두에서는 안드로이드 개념을 이해하기 위한 내용이 충실하게 설명하고 있다. 전문용어가 자주 등장하기 때문에 용어를 이해할 수 있는 기본지식이 바탕이 되어야 하지만 배움의 열정을 갖고 노력한다면 이해하지 못할 내용도 아니다. 안드로이드의 구성은 리눅스 커널, 라이브러리, 안드로이드 런타임, 안드로이드 프레임워크, 어플리케이션으로 구성되어 있으며 이들의 유기적인 조합과 동작으로 우리는 스마트폰을 유용하게 사용할 수 있는 것이다. 이 책이 여타의 다른 책들과 대비되는 것은 안드로이드의 전체적인 구조와 개념에 대해 많은 부분을 할애하고 설명한다는 것이다. 이는 실무자나 초급자가 전체적인 개념에 대한 이해 없이 프로그래밍을 하게 되면 좀 더 향상된 수준으로 나아가기 어렵게 되는데, 이를 해결하기 위해 개념부터 차근차근 이해할 필요가 있다. 이 책은 그런 부분을 채워주는데 굉장히 유용할 것이다. 이 책의 구성은 안드로이드 개념과 동작에 대해 설명하며 안드로이드에서 지원하는 외부 Device와의 관계에 대한 설명도 빼놓지 않고 있다. Input device, 센서, GPS, Audio, camera, 안드로이드 GDI, IPC Binder 등 스마트폰을 동작하는데 필요한 기본적인 내용들의 기능과 개념을 확실하게 설명한다. 또한 안드로이드의 기초가 되는 리눅스의 개요를 설명하여 이해를 더욱 돕고 있다. 안드로이드 컴파일 설치와 설정하는 부분까지 세심하게 설명을 하여 프로그래밍을 준비하는데 많은 도움을 준다. 안드로이드를 이해하는데 많은 도움이 될 것이며, 안드로이드 어플리케이션을 공부하기 위한 사람이라면 한번은 꼭 읽어야 하지 않을까 생각한다. 이 책을 시작으로 전반적인 개념을 이해하고 세부적인 내용에 대한 지식을 습득한다면 실무를 하는데 많은 도움이 될 듯하다. 안드로이드 세부 기능 설명에서는 프로그래밍 코드를 추가하여 안드로이드를 이해하는데 중요한 코드를 실어 프로그래밍에 유용하게 활용할 수 있을 것으로 기대한다. 초심자가 해석하기에는 무리가 있는 device 운영 코드에 대해 자세한 주석이 있었으면 하는 아쉬움이 남는다. 물론 본문에서 코드에 대한 설명이 있지만 구성을 한눈에 살필 수 있도록 코드 설명을 했으면 하는 개인적 바램이 있다. 구성에 대한 아쉬움이다. 어차피 개인이 많은 시간과 노력을 기울여 습득해야 하지만 시간을 단축시키기 위해서는 이런 부분도 필요하지 않을까 생각해본다. 이 책의 매력은 안드로이드 개념에 대한 깊이 있는 설명이다. 실무에서 바로 활용하기를 원하는 사람에게는 다소 부족함이 있을지 모르지만 장기적인 안목에서 살핀다면 안드로이드의 전체적인 개념 이해와 동작원리 등을 습득할 수 있다. 이 책의 저자가 주장하듯이 큰 그림을 그려놓고 세부적인 내용은 그 상황에 맞게 습득한다면 안드로이드를 이해하고 활용하는데 많은 도움이 될 것이다.
|
|
요즘 스마트폰에 대한 관심이 많아지면서, 다양한 어플과 기능이 쏟아져 나오고 있다.
스마트폰은 크게 아이폰과 안드로이드, 윈도우 모바일 이렇게 3가지가 가장 큰 OS로 볼수 있다. 그중에, 사용자들에게 가장 친숙한 것은 아이폰과, 안드로이드 이 두가지인데- 자바 개발자 입장에서 아이폰 보다는 안드로이드가 더 접근이 쉽다.
안드로이드 어플리케이션 프레임워크가 자바 기반으로 되어 있기 때문에, 아이폰 보다는 접근성이 더 높다고 생각한다. 항상 안드로이드 개발에 관심이 많았던지라, 이 책을 접했을때 들뜬마음이 컸다-
우선 개발을 하기 전에 안드로이드에 대해서 전반적으로 알아볼 수 있는 좋은 기회였다. 제목에서 볼 수 있듯이 이 책은 안드로이드 개발에 초점을 맞추기 보다는 기본적인 안드로이드 시스템의 구조나, 하드웨어에 대한 분석에 대한 내용으로 되어있다. 그렇기 때문에 기본적인 시스템에 대한 이해없이 서술 되어있는 책을 보기 앞서서 이 책을 접하게 되어서 좋은 기회가 되었던것 같다.
주로 개발과 소스에 초점을 둔 다른 책과는 달리, 안드로이드 드라이버라던지, 프레임워크 개발까지 다른 책에서는 다루지 않는 내용이 담겨져 있다. 아직 초보 개발자인 내가 이해못하는 내부 구조들이 나열되어, 약간은 이해하기 힘들었지만, 그렇기에 더욱이 안드로이드 공부에 대한 열의를 느낄 수 있었다.
아직 모든 내용을 다 읽어 보지는 못했지만, 안드로이드에 대한 기본을 알수 있는 책이라고 생각한다.
|
|
많은 프로그램 책을 봐왔고, 나름 어떤 책은 정말 프로그래머로써 망신이다라는 생각이 드는 책도 있습니다.
안드로이드의 모든것 분석과 포팅은 기존 책들과는 다르게 시스템 관점에서 책을 설명한 부분도 있으며
굉장이 자세하게 서술되어 있습니다.
다만 책의 서술을 이해하는데 시스템 관점에서 보다 보니 조금 난해한 부분이 있는 관계로
어느정도의 경력이 있는 개발자 입장에서 안드로이드에 입문하는데 좋은 책으로 보입니다. |
|
개정판이 안 나와서 별점 1점 줍니다. 저자분들 개정판 내 주시면 정말 감사할 것 같아요.. 곧있음 이책도 10년됩니다... 안드로이드 제품 개발 시에 꼭 필요한 책입니다. 오픈소스가 다 그렇듯 aosp도 별 설명이 없는 프로젝트 입니다. 홈페이지에 각 서비스 개요 정도는 나와 있으나 동작구조를 알기엔 부족하고 사용법 수준의 설명서 뿐이에요. 그래서 이 책이 있어야 android framework / hal 구조 이해하는데 도움이 됩니다. 특히 Surfaceflinger / audioflinger / 카메라 구현부 설명이 킬러콘텐츠 입니다. 책이 연식이 오래되다 보니 현재 Q 버전과는 맞지 않을 수 있습니다. 다만 각 subsystem들이 큰 틀에서 벗어나지는 않으니 참고하는데 도움이 될 것입니다.. |