2012-12-11 98 views
0

我是iOS開發人員,我正在考慮進入Android開發。如何針對Android平臺進行鍼對性優化代碼?

在Objective-C中,我習慣於能夠使用inline指令和低級代碼優化和調整特定的熱點(例如圖像處理)。

如何在Android中執行相同的操作?答案是Renderscript? Renderscript是否與所有Android設備兼容?

至少,我可以指定某些方法應該內聯以節省過程調用的極其嚴密的循環嗎?

回答

2

如何在Android中執行相同操作?

如果「相同的」你的意思是「使用內置指令和低級別的代碼」,一般你不「做同樣的」。 Java中沒有「inline指令」。歡迎您使用NDK將本機代碼添加到您的Android應用程序。

答案是Renderscript?

Renderscript Compute可以用來改善Renderscript Compute擅長的事情的性能,並且圖像處理往往是一個(至少對於某些類型的處理,比如過濾器)。

Renderscript是否與所有Android設備兼容?

AFAIK它應該在運行API Level 11和更高版本(也稱爲Android 3.0+)的所有Android設備上可用。

我可以指定某些方法應該內聯以節省過程調用的極其嚴密的循環嗎?

否。Dalvik JIT將根據自己的內部啓發式檢測並優化此類代碼。

+1

如果您正在查看並行工作負載(通過使用forEach的內核),Renderscript Compute絕對是合適的。如果您的單線程代碼也需要一定程度的專業化/優化,您也可以使用RS Compute,儘管它可能是通過調用機制。在這些情況下使用RS Compute而不是JNI的主要好處是您的應用程序保持完全可移植性,並且不需要針對不同目標體系結構進行多次編譯/重新編譯。 –