《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 解決方案 > ARM首席工程師:關于Android NDK的10個技巧

ARM首席工程師:關于Android NDK的10個技巧

2011-08-05
作者:Dave,ARM首席工程師

    隨著Android NDK(本機開發套件)披露了許多的新設備和新功能,現在我們可以充分利用這些ARM設備了。下面列舉了一些快速提示,希望對您有所幫助。

 
1 - 關注目標
 
最新的設備一般是ARMv7,這意味著它可以使用v7版本和功能。最新版的NDK增加了ARMv7和NEON代碼支持,可以實現關鍵循環操作和媒體操作優化,遠超其它方法。NDK提供小型靜態庫,可以幫助您識別運行時的選項。有關如何使用這些功能的示例,請參見NDK樣本目錄中的hello-neon示例項目。
 
v6是較舊的設備,但是NDK未提供專門支持,您需要自己選擇是安全地構建v5TE還是冒險嘗試可能是v5TE的設備。如果您對速度無甚要求,并清楚目標硬件是什么,則可以嘗試構建v6。盡管無法避免狂熱愛好者將新版的OS裝入舊硬件上,但事實是支持Android 2.0及以上版本的最新設備通常是基于ARMv7的。如果有選擇的話,最好專注于采用NEON實施方案的ARMv7。
 
2 - 不要倉促優化
 
除非您計劃移植現有的C++應用程序,否則不要倉促編譯本機代碼。首先確保應用程序正確運行并仔細地profiling配置。成為瓶頸的要素通常是您意想不到的。近期的手持設備都具有兩級緩存,有時還有用于節省電量的時鐘調度,再加上Google為了提高OS性能而付出的長期努力,我們將會看到更多驚喜。
 
3 - 優化,悄無聲息
 
不留痕跡。為了得到額外的運行周期會誘使您打破設計,但如非特殊情況,應避免這樣。執行優化時,輕輕進入,迅速將應用程序關鍵部分轉為本機或匯編代碼,然后不留痕跡地退出。這樣,您不用犧牲可維護性和調試便利性。當然,如果您確定重新設計可以帶來足夠的速度且值得付出代價,則可放手大干。
 
4 - 圍繞優化實施重構
 
設計完成后,務必重新排列代碼以使其更加適于優化,但一旦本機代碼開始工作,則要避免修補過度。Java代碼更易重新排列和調試。通常應先在Java層面優化,以便讓邏輯塊接受本機代碼。在移植本機代碼時,在Java層面改變算法或數據結構更具優勢且更易處理。
 
5 - 維護Java的異常處理
 
執行不支持的本機代碼是個糟糕的主意;即使理想狀態下,它也可能造成應用程序意外退出。開發人員可以大膽推測本機代碼是否與運行程序的設備兼容,只要有Java實施方案,您可以隨時退回Java。這就是技巧4中優化Java版本的好處所在。
 
6 - 小心的分配內存
 
不論何時,在Java中盡可能用Java來分配,而不要拖延到以后調用C函數來解圍。這樣才能最大程度地減少泄漏并使Java代碼保持簡潔。如果有長期操作,則應在本地分配暫存空間,但請注意您的指針 - 編寫大量Java代碼時,圍繞指針準則的舊C語言習慣可能會忘得很快。
 
7 - 謹慎采用多線程
 
已經有好幾個采用多ARM內核的開發平臺,客戶使用它們的速度可能比您想像的更快。這樣的想法會誘使您將所有任務都分割為多線程??偟膩碚f這是個好主意,但切記,加重系統負載盡管能提升速度,也會犧牲用戶體驗。當然,巧妙使用線程非常地有效。Android系統自身會創建幾條線程去運行一個應用程序,然而它們一般都在等待事件,所以如果您自己創建太多活動執行線程,可能會削弱它們的運行能力,適得其反地降低整體用戶體驗。
 
8 - Java層的線程
 
如果將邏輯分為多個線程,應盡可能通過Java執行,而不要采用Pthreads。使用Java VM管理訪問可以降低風險,且有更多的語言層工具。如果您擔心設置成本,采用現有的小型工人池應該不會太困難。切記將長期任務的更新發回到主UI線程,以確保用戶知悉。另外請牢記一條重要的Android NDK規則:不要在UI線程上運行本機代碼。事實上,最好不在UI線程上運行任何Java代碼;Android有相應的API(請查看Handler類)可在非UI線程上經濟運行任務。
 
9 - 懂得何時使用匯編程序
 
C或C++可以立即帶來速度提升,而不需要編寫比Java要難以維護的代碼。也可通過將代碼關鍵部分轉換為匯編程序來實現進一步提升,但需要在耗費的時間、精力與最終受益之間做出權衡。最好先發布工作代碼,在以后發布快速升級,而不是永無休止的調試。盡管如此,如果您十分清楚想要做什么,也許可以獲得更多性能。
 
切記要檢查發布出來的GCC,這一點至關重要。objdump是一款非常有用的工具,谷歌NDK下載目錄位于build/prebuilt/linux-x86/arm-eabi-4.4.0/arm-eabi/bin下提供了一種版本。
 
10 - 懂得如何使用NEON
 
NEON是一個非常強大的工具,在理想環境中,可給優化匯編程序提供8倍的性能提升,但并不適用于所有環境。要了解如何充分利用NEON,請閱讀本博客中的NEON指南。
NEON加載和存儲處理遺留工作
 
 
Dave,ARM首席工程師,致力于虛擬機的維護、優化、檢查至少十年,為硬件工程師解答有關虛擬機的問題。在Java領域經營多年后,他得以抽出時間研究工具,現在正著力于研究并理解Android。
本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
99国产精品久久久久久久成人热| 亚洲视频第一页| 欧美久久影院| 久久九九99视频| 日韩视频在线你懂得| 最新日韩欧美| 亚洲女同性videos| 亚洲精品美女久久7777777| 国产一区二区欧美日韩| 欧美午夜视频网站| 欧美黄色aa电影| 久久久青草婷婷精品综合日韩| 亚洲香蕉网站| 日韩午夜电影| 亚洲国产成人在线播放| 性欧美videos另类喷潮| 亚洲图片欧美一区| 亚洲精品久久嫩草网站秘色 | 免费人成精品欧美精品| 欧美亚洲网站| 亚洲嫩草精品久久| 亚洲婷婷综合久久一本伊一区| 日韩视频专区| 亚洲肉体裸体xxxx137| 亚洲第一网站| 久久国产日韩| 欧美在线观看你懂的| 亚洲欧美日韩国产综合| 亚洲自拍16p| 亚洲在线观看免费视频| 中国成人在线视频| 99精品福利视频| 日韩午夜剧场| 日韩视频精品| 日韩午夜在线观看视频| 日韩一级网站| 一本一本久久| 宅男噜噜噜66一区二区66| 亚洲卡通欧美制服中文| 日韩视频一区二区三区在线播放免费观看 | 最新中文字幕一区二区三区| 亚洲高清色综合| 亚洲高清不卡| 91久久久在线| 亚洲精品在线免费| 日韩天天综合| 亚洲无吗在线| 亚洲欧美视频| 欧美一区二区三区四区高清| 久久精品成人一区二区三区蜜臀| 久久黄金**| 亚洲观看高清完整版在线观看| 亚洲国产精品成人va在线观看| 91久久久久久久久久久久久| 亚洲人成网站色ww在线 | 亚洲影院色在线观看免费| 亚洲一区在线播放| 性欧美暴力猛交另类hd| 久久精品国产99精品国产亚洲性色| 久久精品国产99| 亚洲精品精选| 亚洲小说春色综合另类电影| 亚洲欧美中文在线视频| 欧美一区二区免费视频| 久久一综合视频| 欧美国产视频在线| 欧美日韩国产精品自在自线| 国产精品乱码一区二区三区| 国产一级揄自揄精品视频| 在线观看国产精品淫| 亚洲精品一区中文| 亚洲制服av| 久久精品国产精品亚洲精品| 日韩视频在线观看| 亚洲欧美日韩在线播放| 久久成人免费视频| 欧美成人激情视频| 欧美三区在线| 国产一区二区| 亚洲国产精品久久| 亚洲午夜精品久久久久久浪潮| 午夜精品美女久久久久av福利| 亚洲电影免费观看高清完整版在线观看 | 亚洲乱码久久| 午夜久久tv| 亚洲精品在线视频| 午夜影视日本亚洲欧洲精品| 久久免费视频一区| 欧美日韩一区二区三区在线观看免| 国产日韩欧美在线播放| 亚洲黄色免费网站| 亚洲欧美日韩爽爽影院| 亚洲精品欧美在线| 欧美一区二区三区久久精品| 欧美a级一区| 国产精品亚洲精品| 亚洲三级观看| 久久精品国产精品| 亚洲在线1234| 欧美成人四级电影| 国产精品免费看| 亚洲国产日日夜夜| 欧美尤物一区| 亚洲午夜成aⅴ人片| 玖玖在线精品| 国产精品久久激情| 亚洲国产小视频在线观看| 亚洲欧美日韩另类精品一区二区三区| 亚洲精品美女在线观看播放| 性欧美18~19sex高清播放| 欧美精品网站| 一区二区三区自拍| 亚洲欧美日韩精品久久| 一区二区av在线| 免费不卡视频| 国产伦一区二区三区色一情| 在线免费不卡视频| 日韩一级大片在线| 亚洲娇小video精品| 久久国产精品99国产精| 一区二区三区精品| 久久精品国产一区二区电影| 欧美日韩免费区域视频在线观看| 狠狠色噜噜狠狠狠狠色吗综合| 99在线精品免费视频九九视| 久久精品2019中文字幕| 先锋影音网一区二区| 欧美日韩美女| 亚洲三级网站| 欧美专区18| 久久国产精品一区二区三区四区 | 国产精品一区毛片| 亚洲私人影院| 亚洲色无码播放| 欧美日韩国产色站一区二区三区| 亚洲国产精品va在线观看黑人| 久久国产精品网站| 久久精品夜色噜噜亚洲a∨| 国产精品推荐精品| 在线一区免费观看| 亚洲视频一区在线| 欧美日韩精品福利| 亚洲免费观看高清在线观看| 亚洲精品一区二区在线| 麻豆免费精品视频| 国内精品久久久久久久果冻传媒| 欧美伊人久久久久久午夜久久久久| 欧美一区二区三区电影在线观看| 国产精品国产三级国产a| 一区二区三区国产在线| 在线视频一区二区| 欧美日韩精品一区二区三区| 日韩天堂av| 亚洲视屏一区| 欧美日韩另类综合| 日韩亚洲欧美一区二区三区| 99精品视频免费全部在线| 欧美激情中文字幕在线| 最新中文字幕一区二区三区| 亚洲美女啪啪| 欧美日韩mv| 一区二区三区免费看| 亚洲在线视频网站| 国产精品久久久久久久免费软件| 亚洲无毛电影| 欧美自拍偷拍| 激情综合自拍| 亚洲三级影院| 欧美日韩国产成人在线| 91久久久久久国产精品| 一本色道久久综合亚洲精品不 | 一区二区三区www| 夜夜嗨av一区二区三区网页| 欧美日本国产| 亚洲精品免费观看| 亚洲一二三区在线观看| 国产精品一二| 久久成人18免费网站| 牛牛国产精品| 99在线精品免费视频九九视| 性欧美videos另类喷潮| 国内精品视频在线观看| 亚洲风情亚aⅴ在线发布| 欧美精品日韩三级| 亚洲一区二区三区中文字幕在线 | 性做久久久久久免费观看欧美| 国产日韩一区欧美| 亚洲激情六月丁香| 欧美另类一区二区三区| 亚洲自拍偷拍福利| 麻豆精品在线视频| 亚洲精品中文字幕在线观看| 亚洲综合99| 黄色精品一区二区| 99人久久精品视频最新地址| 国产精品区一区二区三| 亚洲成人在线网站| 欧美日韩国产精品专区| 香蕉久久a毛片| 欧美日韩国产成人在线观看|