![]() |
|
||||||||
경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지 |
|
Lyn [tohnokanna]
2011-02-25 17:58 X
어거지인듯 안드로이드 얘기는
소지영님, 말씀하신 내용이 좀 의아해서...
안드로이드 자체는 자바 기반 OS가 아닌 리눅스 위에 자바를 올린 건데, C++ 네이티브 루틴을 이용하는 것이 성능 향상에 도움이 되지 않는다는 말씀...? 그런 의미시라면... 일반적인 상식과는 좀 다른 말씀인 것 같네요. 서버나 PC 개발에서는 자바로 충분한 성능이 나오지 않을 경우엔 C++ 등으로 네이티브 모듈을 만들어 호출하는게 일반적이지 않습니까. 아래 링크를 보면.. 안드로이드에서도 성능을 높이기 위해서는 NDK JNI를 이용하는 게 일반적이고 점점 더 늘어나는 것 같은데요. http://atg.or.kr/blog/archives/tag/ndk 툴체인에 불과한 NDK로 코어를 개발하는건 말리고 싶을 정도 였는데 링크된걸 보고서 NDK가 비약적으로 발전 했다는걸 알았네요.
NDK R5 부터가 진짜 NDK라고 부를만 한거 같습니다. 왜 NDK사용의 자제를 말했냐 하면요... 예전의 NDK를 가지고 만들 경우 이렇습니다... 코어를 분리해서 만드는 이유가 업무 효율 때문인데, 윈모, 아이폰, 안드로이드 세가지 플랫폼을 고려하다 보면 코어를 만드는 작업이 배보다 배꼽이 더 커지는 경우 처럼 되어 버립니다. 작업하다 보면 문자열 핸들링 하는 라이브러리 부터 다 작업하는 수준까지 내려가 버리다가 나중에는 메모리 핸들링까지 하는 라이브러리도 필요하게 됩니다. 그러다 보니 실제 필요한 코어를 작성하기까지는 상당히 많은 양의 코드를 필요로 하게 됩니다. 물론 설계도 복잡 해지겠죠.. 편하게 하고자 했던게 참 불행하게 되어버리는거죠. 어쨌거나 작업을 해서 마무리를 하지만 자체 제작한 이런 라이브러리들을 달빅수준까지 끌어 올리려면 수많은 테스트와 시간이 필요합니다. 단시간 안에 이런 작업을 해서 달빅 수준까지 끌어 올릴수 있다면이야 모르겠지만 그렇지 않다면 자제 하는게 좋겠죠. 더군다나 프로요로 가면서 JIT(Just-In-Time) 컴파일러 시스템을 도입해서 어플리케이션의 구동속도를 최대 5배까지 끌어올렸다고 합니다. 어지간히 투자하지 않고서는 달빅머신보다 못하니 자제하는게 좋다는 의미였습니다. 네이티브코드의 성능이 않좋다는 의미는 아닙니다. 제가 볼때 NDK사용은 성능향상 보다는 어쩔수 없이 업무의 효율을 위해 크로스플랫폼을 지원하기 위해 쓰인다고 보는거죠. 그런데 NDK R5에서 NativeActivity를 지원하던데 몽땅 Native로 개발해도 되겠네요. 이렇게 되면 wxWidget이나 LCL에서도 안드로이드를 지원하지 않을까 하네요. 관련 글 리스트
|
Copyright © 1999-2015, borlandforum.com. All right reserved. |