高品質訓練課程供應者

作者:Owen Ou
日期:

針對Android NDK,ARM首席工程師Dave在ARM部落格中提出開發上的一些要領與技巧。首先,最新版的NDK增加了對ARMv7和NEON代碼的支援,對ARMv6則未提供專門支援,他強調支援Android 2.0及以上版本的最新設備通常是基於ARMv7的。如果有選擇的話,最好專注於採用NEON實施方案的ARMv7。

他指出除非開發者計畫移植現有的C++應用程式,否則不要倉促編譯本機代碼(native code)。他說:“Get the app right first and profile carefully.” 在進行最佳化時,則要盡量避免留下痕跡,也就是只針對應用的關鍵部分做原生碼或組合碼的轉換,轉換動作要乾淨。不過,對於程式的可管理性與除錯的容易性是不容妥協的。

另一個重點是,在最佳化時,不要害怕重新安排程式碼,但一旦本機代碼開始工作,則要避免修補過度。Java代碼更易重新排列和調試。通常應先在Java層面優化,以便讓邏輯塊接受本機代碼。在移植本機代碼時,在Java層面改變演算法或資料結構更具優勢且更易處理。

Dave總共提出十個開發要領,其他還包括維護Java的異常處理、小心的分配記憶體、謹慎採用multi-thread、Jave層的thread、懂得何時使用組合語言、懂得如何使用NEON等。(source link)

Android NDK是Android SDK之外的App程式開發工具,其優勢在於採用原生碼(Native code)來提升關鍵任務的工作效能。它為開發者提供headers和libraries,以便採用C或C++來建立activities、管理用戶輸入、運用硬體感測器、接取應用資源等。以原生碼撰寫的應用程式仍會包括成 .apk檔案來工作,運用此工具前需先安裝Android SDK。