日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

Android将允许纯C/C++开发应用

發布時間:2025/5/22 c/c++ 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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++了,

  • Google開始覺得自己整的JVM在性能上可以全面超越傳統JVM,并接近C/C++,現在發現搞不定了。
  • Google發現Java的程序員不像C/C++程序員那樣注重程序的性能和效率,開發App太耗CPU和內存。
  • 于是只好轉回支持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++开发应用的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。