Android将允许纯C/C++开发应用
對于Android,長期以來,我一直有兩件事搞不懂,
- 一個是為什么Android要選用Java。對于嵌入式開發,CPU和內存都很寶貴,居然還使用Java。
- 一個是為什么Android的開發站點要被墻。這只是一個技術網站啊。
最近,在一個Android開發人員的Blog上證實了在NDK r5使用C/C++進行開發。(以前,Android 對C/C++開發的支持僅限于用C/C++開發動態鏈接庫,然后在Java中以JNI的形式來調用)現在,你可以用純C/C++開發了(參看下面的程序代碼)。還有一段完整的代碼示例在這里(墻,還有XML的manifest,又見XML)。看來,Google終于明白為什么使用Android的手機(如:Moto, 三星、索愛和HTC)的觸摸體驗遠遠不及object C搞出來的iPhone。
void android_main(struct android_app* state) { // Make sure glue isn't stripped. app_dummy(); // loop waiting for stuff to do. while (1) { // Read all pending events. int ident; int events; struct android_poll_source* source; // Read events and draw a frame of animation. if ((ident = ALooper_pollAll(0, NULL, &events, (void**)&source)) >= 0) { // Process this event. if (source != NULL) { source->process(state, source); } } // draw a frame of animation bringTheAwesome(); } }
我個人估計有兩個原因為什么Google回頭支持C/C++了,
于是只好轉回支持C/C++。本來就是用C/C++寫出來的Android嘛,居然不能用C/C++而只能用Java,真是太侮辱C/C++了。最后,只希望Google并不是又整了一個C/C++版的Dalvik虛擬機,不然就真是侮辱到極點了。
——— 更新 2011/01/24 ————
謝謝大家對這篇文章的評論,挺有意思的,歡迎討論,我把我的回復更新在下面。不一定對,僅供大家參考。
Java的學習成本低,開放性好,兼容性也高,我不否認(但請大家也別否認C/C++的效率要比Java要高。而C/C++的程序員在普遍上要比Java程序員更注意性能和效率)。這應該是Andorid的一開始的定位,可見,Google關注的是程序員,而不是用戶。現在轉回支持C/C++必然有他的原因,如果不是性能上的原因。那么就請大家分析一下別的原因。
Android本來就是用C/C++寫的,要跨平臺,首先是Android自己跨平臺。就像Linux一樣,跨平臺的首先是Linux,應用開發人員只需要符合Linux的API就OK了。JVM帶來的便利只是無需重新編譯(就算是無需重新編譯,對于開發人員來說也要去那個平臺做測試的,因為不同的平臺的JVM同樣是不一樣的)。在Native平臺上編譯的成本其實并不高,這個編譯過程完全可以在部署的時候自動化。
有人說,Java的開發成本比C/C++低,但這和語言沒有關系,這其實和封裝程度有關系。C/C++同樣可以封裝得很好。而且,C/C++的程序員比JAVA程序來說,天生就對內存和性能要敏感的多。這更有利于在手機這樣資源不足的平臺上做開發。
尤其對于像手機這樣的時尚終端來說,在用戶體驗上花的成本要比在開發人員上花成本要大得多的多。我以為,Google 的Android 更多的關注了程序員,而不是用戶。而iPhone更多的關注了用戶,也讓程序員在開發過程上受到了一些犧牲(iPhone的做法是如果程序員的程序要上App Store,先交99美刀的代碼審查費,就像申請美國簽證一樣),但是,iPhone的程序員雖然在開發的方便上有一些犧牲,但是從收入上卻得到了保障。最新的消息是蘋果已向開發者支付20億美元 音樂供應商分成達120億美元。在《偷了世界的程序員》中對此有充分的論述。
最后,請大家思考 幾個問題——
- Android支持C/C++是為什么?如果是為了程序效率,那么這又是為什么?
- 是開發人員更重要,還是用戶更重要?(注意:我說的是“更重要”)
- 在當今這種諸如iPhone或Andorid的開發模式下,是完全開放好,還是有適當的封閉好?
- 開發和封閉的背后的商業驅動是什么?如何在開放和封閉中權衡用戶、開發者、公司和版權商的利益?
蘋果公司給出了一個很不錯的商業模式。
(完)
轉載于:https://www.cnblogs.com/myittec/archive/2012/02/02/2392823.html
總結
以上是生活随笔為你收集整理的Android将允许纯C/C++开发应用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 10个优秀的 Web UI库/框架 详细
- 下一篇: curl资料