구글의 정책은 오픈 소스이고, OS의 소스 코드도 다 공개를 하며, 제조사나 통신사가 맘대로 바꿀수 있다를 매력 포인트로 내세우는데, 그 덕분에 최적화도 게으르게 하는게 아닌가 합니다.. 뭐.. 제조사나 통신사가 역량이 되면 맘대로 할수 있을텐데, 구글도 안하는걸 그 누가 하겠습니까? 폰 제작사가? 폰 제작사는 갑이거든요.. 뭐 하다 안되면 을 불러다가 시키는데 익숙한 사람들입니다.. 제 친구도 브로드컴에서 드라이버 짜는데, 외국 출장 자주 다닙니다.. 폰 제작사는 한국인데.. 통신사에서 잘 안되면.. 폰 제작사가 불러다가 디버깅 시킵니다.. ^^ 당연하긴 한거죠.. 자기네들은 잘 모르니까.. 스마트 폰도 그렇죠.. 뭐..
스넵 드레곤에 안드로이드 올렸는데, 성능 잘 안나온다.. 그러면 퀄컴 불러다 뭐라 시키겠죠.. 근데.. TI의 Omap최고 개발 담당자 퀄컴으로 회사 옮겼습니다.. 좀 있으면 1년 되어 갑니다.. Omap의 미래는????? 퀄컴은 칩만 많이 팔면 장땡인데, 애플에도 칩 팔려고 맘 달아 있는 상태입니다.. 근데, 안드로이드 최적화를 퀄컴이 해 줄까요? 단지, 오디오 비디오 연결 잘 되어서, 기능 구현에만 이상 없으면 손 털겁니다.. 내부에 DSP가 놀고 있던, DMA가 놀고 있던, 자기 알바 아닌거죠.. 그걸 사용하려면 안드로이드 뜯어 고쳐야 한다.. 그러면 과연 그걸 해 줄까요? 아닙니다.. 구글밖엔 할 회사 없습니다.. 폰 회사는 그런거 못합니다.. 자기는 갑이거든요.. ^^ (지금은 을이 너무 커서, 갑 같지도 않은 갑이지만)..
리눅스에선 I/O드라이버도 Open Source진영에서 많이 했습니다.. 자료 구하기도 쉽고, 기계 구하기도 쉽고, 아키텍쳐도 오픈 되어 있거든요.. 자.. 모바일 프로세서 세계에선, 제조사에서 내부구조 안 알려주면.. 즉 자료 공개 안하면 알아낼 방법이 없습니다.. SoC로.. 모든게 칩 안에 들어 있습니다.. 로직 애널라이저찍어보면서 역 추적 하는것도 불가능하고.. 그걸 어떻게 알아냅니까? 그리고, Ip를 도둑맞지 않으려고 칩 제작사나 펌웨어 제작사에 걸어놓은 저작권 보호, 눈물겹습니다.. 일반 유저가 알아낼 방법은 전무합니다.. 단지, 폰 제작사나, 구글같은 거대 회사가 요청하는 방법밖에 없습니다.. (저작권 보호도 나름 성공적인 것 같구요)..
안드로이드의 최적화가 부족하다는 것은 동의하지만, 안드로이드가 Linux Kernel 위에 Dalvik VM을 올린 것임을 생각하면 넥서스원의 롬을 드로이드에 올렸다고 최적화가 부족하다고 말하긴 힘들 것 같습니다.
Linux Kernel에서 Architecture Dependent한 부분은 Head.S를 비롯한 시동코드와 Context Switchig 등 일부에 불과하고 나머지는 C로 작성되어 있습니다. 일부 System Call은 최적화를 위해 어셈블리로 작성되기도 하지만, 범용성을 위해 작성된 C 코드를 사용해도 됩니다.
제가 해본 작업 중 안드로이드와 연관있는 부분은 새 CPU에 맞게 Linux Kernel을 포팅하는 것 뿐이라 Dalvik VM과 안드로이드에 대해 자세히는 모르지만, 안드로이드가 Dalvik VM 내에서만 동작한다면 적어도 안드로이드가 하드웨어를 신경 쓸 필요는 없을 듯 합니다. 결국 VM내에서 동작 하는 거니까요.
그리고, 롬 굽는 애들이 가장 먼저하는 것은 안드로이드 버전에 맞는 리눅스를 올리고 드라이버를 잡아주는 일입니다. 제 생각대로 안드로이드가 하드웨어 독립적으로 작동한다면 아키텍쳐 레벨까지 건드릴 부분은 Linux Kernel을 올리는 일 정도니 롬 굽는 애들이 안드로이드에서 건드릴 부분은 없을 것 같습니다. 그나마도 안드로이드 1.6~2.1은 동일한 버전의 커널(2.6.29)를 사용하니, 리눅스를 포팅하는 수고를 할 필요는 없습니다. 기존 롬에서 드라이버만 잘 옮겨서 안드로이드를 올리면 될 것 같네요. (Dalvik VM이 하드웨어 종속적이면 이를 포팅해야 할 수도 있겠습니다만, 이 역시 드로이드의 것을 그대로 써도 될 듯 합니다.)
어쨋거나 하드웨어에 맞는 최적화가 필요한 부분은 Linux와 Dalvik VM이 제일 클 것 같습니다만, 이러한 부분은 안드로이드와 무관하며 - 둘 모두 별도의 개발자들이 존재하며, 안드로이드는 이를 활용해 동작할 뿐입니다. - Linux Kernel이나 Dalvik VM에 대한 최적화 작업은 각각의 개발자들과 하드웨어 개발사에서 하는 것이 맞다고 봅니다.
제 생각에 안드로이드의 최적화는 알고리즘의 변경으로 이루어져야지 특정 플랫폼에 대해 이루어져서는 안됩니다. 찐돌님께서 말씀하신대로 하드웨어의 효율을 높이는 것 보다 알고리즘을 변경하는 쪽이 작업 대비 효율이 뛰어나니까요. 만일, 하드웨어에 맞춘 최적화를 하게 될 경우 새로운 하드웨어가 나올 때마다 그에 따른 최적화를 할 수 밖에 없습니다. 이러한 부분은 하드웨어 제작사에서 해주어야 합니다.
아직 공부를 하는 입장이고, 안드로이드에 대해 아는 것이 많이 없어 많은 부분에 오류가 있겠습니다만, 부족하게나마 제 의견을 적습니다.
많이 동의 합니다.
구글이 가장 바뻐야 하는데 제조사가 가장 바쁘죠. 프레임워크만 해도 개선사항이 많고.. 속도 부분 특히나 많이 발전되어야 하는데..
개발 시스템이 초기 구글이 생각하는데로 잘 안돌아가고 있다는 것과 안드로이드의 성공을 위해서는 구글에서 힘을 쏟아야 한다는 점을 확실히 인지 했으면 좋겠습니다. 이미 여러 문제 징후들이 나타났으니 알고 있을 겁니다.
제조사나 통신사가 소프트웨어 전문 회사도 아니고.. 구글의 움직임에 대응해야 할려고 기다리고만 잇는데... (괜히 혼자 발전된 변종 만들어봤자 구글이 최적화한 새로운 레퍼런스를 무료로 제공하면 헛수고...)구글도 제조사나 통신사의 행태가 마음에 안들어서 넥서스원을 내놓은 것 같구요. 구글이 안드로이드의 성공을 위해 얼마나 투자를 하길 원하느냐라는 문제가 또 있겠죠. (사실상 돈이 안되서 우선순위가 많이 밀려 있을듯..)
역시 제조사가 얼마나 안드로이드를 좋아하고 소프트웨어 개발자들이 많이 붙었는지와 상관 없이 구글에게 달려 있는데. 기분상 안드로이드 초기처럼 발전이 빠르지 않아 걱정입니다. 플렛폼 말고 실제로 성능을 결정짓는 그 아랫 부분은 초기 이후 발전이 아예 없는것 같고.. 일년에 메이저 업데이트 2번 마이너 3번이였던가? 예전의 그런 포부도 좀 사라진듯하고 좀 아쉽습니다.
이렇게 무료 오픈소스의 단점을 보고 있지요 :)
튜닝된 유료 안드로이드 OS가 나올지도 모르겠어요. 그럼 오히려 다행이겠죠...
구글은 무슨생각인지... 궁금하네요..
최적화를 안해도 되는 방법이 있기도 하네요.
듀얼 코어나 1기가 이상의 CPU... 실제로 같은 안드로이드 썻다 해도 드로이드와 넥서스원의 속도는 차이는 넘사벽이니까요;;;;
비단 최적화 뿐만 아니라 구글은 안드로이드 마켓 같은 데서도 같은 사용자의 needs를 너무 못따라가고 있어요.
덕분에(?) 3배 빠른 JIT을 개발 했다고 나오거나 androlib 같은 웹 마켓, Slideme처럼 사설(?) 안드로이드 마켓이 나오고 있지만.. 애처롭기도하고 대단합니다...
다 안드로이드 발목 잡는 일이죠...
솔직히 안드로이드 마켓은 운영을 잘 못하고 있다고 봐야죠
소비자, 개발자의 needs를 못 따라 가는건 사실입니다.
거기다 다른건 다 오픈한다는 듯이 운영해 가면서
마켓 자체는 폐쇄적으로 가고 있으니까요.
무엇보다 우리나라는 정책과의 싸움이 중요할거 같은데
이거 정책에 밀려서 유료 마켓 못 내놓으면
지금 개발중인 수많은 안드로이드 개발자들은 다른 마켓으로 옮겨갈 수 밖에 없습니다.
구글과 통신사들이 합심해서 어서 해결책을 내놓아야 한다고 봅니다.
단말기 부품의 드라이버만 있으면 되는 것아닌가요?
pc에서도보면 OS는 하나고 부품에 따른 드라이버만 다르면 그게 최적화니까요.
(최적화된 드라이버가 계속 매달 업데이트 되기도 하죠 -_-;)
드라이버 A버전은 프레임이 10 나와주시고
드라이버 B버전은 프레임이 45 나와주시는 경우가 있죠.
둘다 부품 드라이버는 존재하죠. 최적화가 어떤게 된걸까요? 둘다 된걸까요?
최적화는 항상 진행형이라고 생각합니다. 최적화가 끝났다 라는 것은 존재하지 않고 더 효율이 좋게 좋게 좋게 ~ 해나가는것이 최적화라고 봐요. 상대적으로 비교되는 것이 있을 경우에는 최적화가 미진한게 보이는 경우도 있죠.
예를 들면 A제품 보다 B제품 사양이 더 좋은데 느려터졌다던지...
모토로이나 드로이드에 넥서스원 OS(동일 OS)를 올린다고 해도
모토로이나 드로이드에 있는 드라이버만 준비되어 있으면
이전과 동일한 성능을 보여주는 것이 아닌가 하는 의문입니다.
그 단계에서 최적화는 그다지 의미가 ....
물론 드라이버 자체의 최적화에 관한 문제는 구글에서 책임진다기보다는
부품의 제조사나(예를 들면 wifi칩셋이나 dmb 칩셋 제조사겠죠?)
단말기 제조사에서 해야할 문제 같습니다.
pc에서 모든 드라이버를 마소에서 제공하는 것이 아닌 것과 마찬가지로요 -_-a
다만, 애플의 최적화란 단말기의 통일성 (전체 4개뿐인 단말기....)로 애플 자사에서 스스로 최적화할 능력이 되기도 하고
흔히 말하는 폐쇄성이라는 것이 어느 정도 영향을 미치는지는 모르지만
그로인해서 다른 제조사에서 껴들 여지도 없어 보이구요.