欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
對于A(yíng)ndroid NDK編譯器ARM和Thumb模式的理解及Toolchain的切換clang編譯器

以前在做Symbian的時(shí)候,曾經(jīng)研究過(guò)ARM CPU的指令集問(wèn)題,ARM處理器支持兩套指令集,即ARM和Thumb。ARM為32位指令集而Thumb為16位指令集,理論上32位可以提供更快的執行速度但會(huì )生成更大的二進(jìn)制執行文件,而16位的Thumb則恰恰相反,省地但慢,這也正是體現出了ARM對于嵌入式設備的專(zhuān)業(yè)性。對于我這種犧牲一切換速度的理念來(lái)說(shuō),當時(shí)就留下了ARM就比Thumb快的印象,以致于現在在做Android NDK原生開(kāi)發(fā)時(shí),也是優(yōu)先用ARM指令集。(這個(gè)可以通過(guò)在A(yíng)ndroid.mk中加入LOCAL_ARM_MODE := arm控制,默認情況下NDK使用Thumb指令集)

但是最近在Xcode編譯iOS項目時(shí),注意到同為ARM處理器的蘋(píng)果設備,使用的是Thumb指令集,而且好像還是某種新版本的Thumb指令集,小搜索了一下看到有人說(shuō)這種armv7引入的叫做Thumb-2的指令集要比arm指令集更好!于是又重新搜索更新了一下大腦知識庫…

armv7對于蘋(píng)果設備來(lái)說(shuō),意味著(zhù)iPhone 3GS以上級別的設備的CPU,而目前主流的Android設備幾乎全是armv7處理器的了。也許對于早起的armv6處理器來(lái)說(shuō),ARM指令集還有優(yōu)勢,但是對于新的v7處理器,各種資料都表明Thumb-2要更好一些。

總的來(lái)說(shuō),ARM指令集會(huì )在某些方面有優(yōu)勢,比如手寫(xiě)匯編(額…),而Thumb則能生成更精簡(jiǎn)的代碼,而且還有一點(diǎn)我之前沒(méi)有太意識到的問(wèn)題就是:省電!所以仔細斟酌后,我還是決定把NDK編譯選項由原來(lái)的ARM改回默認的Thumb,遵循默認原則吧還是。

而對于v7和非v7的問(wèn)題,Android上可以這樣處理,以略增大apk為代價(jià),加入單獨針對v7和非v7版的so文件,這樣apk在安裝時(shí)會(huì )自動(dòng)根據目標設備的CPU安裝合適的so庫,從而達到更好的效果,具體做法是在A(yíng)pplication.mk中加入”APP_ABI := armeabi armeabi-v7a"

另外,隨著(zhù)項目規模的增大,代碼編譯生成時(shí)間會(huì )大大增加,這時(shí)候可以考慮更換r8c版NDK新加入的Clang編譯器(蘋(píng)果家的編譯器,新版Xcode默認就用它),實(shí)測發(fā)現Clang比GCC明顯快很多,而且對于warning, error的顯示也比GCC要人性的多(有人說(shuō)GCC的提示就像是天書(shū),呵呵),不過(guò)據說(shuō)Clang也有一些不足,比如對于標準的支持不如GCC(這話(huà)怎么聽(tīng)著(zhù)像是說(shuō)MS的…),不如GCC支持的語(yǔ)言廣等,但感覺(jué)對于A(yíng)ndroid原生開(kāi)發(fā)來(lái)說(shuō)都是些無(wú)關(guān)緊要的事,我只要編譯快,運行快就好了!

改用Clang編譯器的方法如下:

對于ndk-build方式,可以使用“export NDK_TOOLCHAIN_VERSION=clang3.1”導出環(huán)境變量,或者將這個(gè)環(huán)境變量設置加入到Application.mk中。

對于獨立編譯方式,在make-standalone-toolchain.sh腳本中加入–llvm-version=3.1 并在makefile中用<tool-path>/bin/clang and <tool-path>/bin/clang++替換 CC 和CXX 參數。

PS:實(shí)際編譯時(shí)發(fā)現Clang好像對中文注釋支持不是特別好,比如有端代碼在if(…)后謝了//中文注釋?zhuān)瑢е戮幾g器處理至此處時(shí)直接報了異常,刪除注釋后就沒(méi)事了…

參考文章:

本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
Ubuntu系統下實(shí)現Android工程調用獨立編譯的C++程序和GMP、PBC庫
NDK clang編譯器的一個(gè)bug
一分鐘編譯ffmpeg4.2.2并移植到Android添加https和硬編碼
使用NDK(r20)編譯FFmpeg
ffmpeg build android
使用Android NDK中的獨立toolchain來(lái)開(kāi)發(fā)C/C++程序
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久