轉http://blog.csdn.net/developcoding/article/details/17176263
一、C++是與cpu相關的本地代碼,也就是說每種機型都要提供相應的編譯器,而且每個應用都要分別編譯成適應不同機型的版本 而Java只要開發商提供針對特定硬件平台的JVM,你的應用程序代碼只需一次編譯就可以運行在所有android機上了。所以對於android這樣的系統,必然要以Java為程序語言的,否則結果是無法想象的。
二、Java跨平台,入門簡單,而學習和精通C++的成本實在比JAVA要高太多了。java擁有世界上最大的開發群體,有最大的開源社區的技術支持,這樣它就可以吸引最大量的開發者團隊或者公司,提供更多更強優質的產品,而優質的產品和人氣,是吸引最終用戶的法寶。 其實這也就體現了,為什么開源軟件是軟件產業的一次革命了。
三、Google采用Java虛擬機的另一個很關鍵的原因,就是能使手機開發廠商擺脫Linux的GPL協議的束縛;Google通過Java虛擬機在Linux 內核和應用層之間做了隔離,因此,開源的只是內核和Java虛擬機,而廠商采用Java編寫的驅動和應用則不需要開源,這樣,既維護了各廠商的利益,又保證了各種android應用在各款手機的跨平台應用。
四、說Java效率低下的朋友一定沒有深入理解過JVM的實現。現在的嵌入式CPU大多都集成了Java協處理,支持JVM指令集,能直接運行微碼,不再是以前的“解釋執行了”,效率上已經非常接近於C。Android的GUI框架是基於Native C底層的一套自有框架,基本上所有視頻加速功能都是由C/C++實現,GUI效率一點不打折扣。
五、Google Android發布了NDK,使得Android支持Java+C/C++開發
