我即將開始構建一個Android應用程序(我目前正在研究Web服務和數據庫),我想知道在使用Java或直接編碼到C之間的應用程序速度上是否存在顯着差異或C++。建立快速的Android應用程序 - Java還是原生的?
該應用程序不包含任何複雜的圖形或物理,其速度主要取決於幾個對象與REST Web服務之間的傳輸速度。
在此先感謝
我即將開始構建一個Android應用程序(我目前正在研究Web服務和數據庫),我想知道在使用Java或直接編碼到C之間的應用程序速度上是否存在顯着差異或C++。建立快速的Android應用程序 - Java還是原生的?
該應用程序不包含任何複雜的圖形或物理,其速度主要取決於幾個對象與REST Web服務之間的傳輸速度。
在此先感謝
Google says你或許應該只是堅持與Java:
之前下載的NDK,你應該明白,NDK將不利於大多數應用程序。作爲一名開發人員,您需要平衡其優點和缺點。值得注意的是,在Android上使用本機代碼通常不會導致顯着的性能改進,但它總會增加您的應用程序複雜性。一般來說,如果它對你的應用程序是必不可少的,那麼你應該只使用NDK,而不是因爲你只是喜歡用C/C++編程。
NDK的典型優秀候選者是獨立的CPU密集型操作,不會分配太多內存,如信號處理,物理仿真等。在檢查您是否應該使用本機代碼進行開發時,請考慮您的需求並查看Android框架API是否提供您需要的功能。
我不會推薦使用NDK,因爲您已經提到過您正在從頭開始構建Android。谷歌專門說here,你不應該因爲上述原因而使用NDK。
我建議您使用Java並使用Spring for Android來使用REST Web服務。消耗它們太容易了。目前我已經在Android Play商店中使用了一個已發佈的應用程序,並且源代碼位於GitHub中,您可以在此查看。
祝你好運!
我會推薦用Java來做,就像Google一樣。 NDK的唯一目的是使移植預先存在的代碼庫變得更加容易。 – 2013-03-06 22:24:25
「它的速度主要取決於幾個對象與REST Web服務之間的傳輸速度」 - 「傳輸速度」由Internet連接控制,並且與編程語言的速度幾乎沒有關係。 – CommonsWare 2013-03-06 22:24:27
使用Java直到您必須綁定本機庫或分析才能顯示熱點,其中本機代碼的適度速度優勢將真正發揮作用。使本地代碼比Java更健壯和更正確並且難以維護更困難。 – Gene 2013-03-06 22:28:54