溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

使用本地c/c++提升iOS性能 之一

發(fā)布時間:2020-07-12 17:51:53 來源:網(wǎng)絡(luò) 閱讀:1280 作者:iKingLai 欄目:移動開發(fā)

在本章中,你將會學(xué)到:

  • 集成c/c++代碼到iPhone應(yīng)用中的優(yōu)缺點(diǎn)

  • c編程的基本概念

       1)數(shù)據(jù)類型

       2)指針

       3)內(nèi)存管理

  • c++編程的基本概念

       1)類

       2)內(nèi)存管理

       3)繼承

       4)模板

  • 如何在一個實(shí)際的例子中使用SQLite(一個基于C語言API的數(shù)據(jù)庫)

  • 如何集成c++和Object-c++到你的iPhone應(yīng)用中


在本章,你會學(xué)習(xí)到底層的c/c++編程,這對于高性能應(yīng)用是非常重要的。事實(shí)上Objective-C是C語言的超集,它同樣是一門本地編程語言,但是Objective-C在C語言之上添加了一些包裝,從而降低了性能。如果你接觸過游戲和動畫相關(guān)東西,你應(yīng)該知道使用c/c++提供的OpenGL會有更好的性能。


c++同樣被蘋果所支持。大部分基本的應(yīng)用不需要接觸到c/c++代碼;但是,當(dāng)你的應(yīng)用需要很好的性能時,你應(yīng)該考慮這方面的問題。而且,你不需要編寫很多的c/c++代碼,但是你需要了解如何通過庫正確的調(diào)用c/c++代碼。你有可能需要修改開源庫的源代碼來滿足你的要求。


因?yàn)镺bjective-C是C語言的超集,C語言中能做的事情,在Objective-C也能夠做。他們在語法和新的概念上有所不同,但是在本章我都會涉及到這些。同樣C++和Objective-C也有很多不同的概念,因此對你來說學(xué)習(xí)C++和C可能會比較困難。


實(shí)際上,Objective-C的概念是非常有限的,你在iPhone開發(fā)環(huán)境上看到的classes和supports都來自于Cocoa Touch。為了簡單起見,我將使用Objective-C作為Objective-C和Cocoa Touch Frameworks的簡稱。


優(yōu)點(diǎn)和缺點(diǎn)


在進(jìn)入C/C++編程之前,我想快速的分析一下在iOS應(yīng)用中使用C/C++代碼的優(yōu)缺點(diǎn)。


優(yōu)點(diǎn):

  • 已經(jīng)有很多用c/c++編寫的庫,例如動畫,音頻庫。這些庫通常都是用c/c++編寫的,因?yàn)檫@樣有很高的性能和可移植性。

  • 你的應(yīng)用想要移植到Android,而又不想耗費(fèi)太多的精力。

  • 你可能想通過使用c/c++代碼提高應(yīng)用的性能


缺點(diǎn):

  • c/c++和Objective-C的語法不同,把他們混在一起,使得代碼比較難理解。

  • c/c++和Objective-C的內(nèi)存管理機(jī)制不同,因此你必須小心內(nèi)存泄露或應(yīng)用崩潰的問題。


因此,了解了他們的優(yōu)點(diǎn)和缺點(diǎn),你就能夠決定是否要在iPhone應(yīng)用程序中集成c/c++代碼。不管你是使用開源庫還是自己編寫代碼,你都應(yīng)該在這之前理解c/c++。出現(xiàn)的許多問題都是非常微妙的,以至于iPhone instruments并不能幫你太多。花費(fèi)一個小時的時間很容易集成一個庫 --- 但是往往要花費(fèi)一整天的時間來修復(fù)其中的一個bug。


Objective-C已經(jīng)是一門本地編程語言,因此如果你所有的代碼都用c/c++來編寫,其實(shí)你并不能得到更好的性能。但是,有很多用c/c++編寫的高性能的庫,你可以利用它們的優(yōu)點(diǎn),然后集成到你的應(yīng)用中。




向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI