APP的內(nèi)存優(yōu)化和性能優(yōu)化

APP的內(nèi)存優(yōu)化和性能優(yōu)化

先把項(xiàng)目上線調(diào)試出現(xiàn)bug搞一下.沒仔細(xì)看

內(nèi)存優(yōu)化
  1. Assets.xcassets的使用和優(yōu)缺點(diǎn)
      1. 視圖資源管理工具,啟動(dòng)圖標(biāo)和appIcon需要使用png格式,其他圖片可以使用其他格式的圖片,導(dǎo)出不要后綴,但是其他路徑下其他格式格式圖片需要后綴.并且使用的圖片不會被直接釋放掉,而是緩存起來.使用
  2. PDF和1x,2x,3x有什么區(qū)別??PDF為矢量圖,可以無損放大.(為深入研究矢量圖)

app的瘦身主要不就是針對app的.ipa安裝包優(yōu)化.
分析下安裝包的目錄
資源層面:
1. assets.car:項(xiàng)目.xcassets壓縮包
2. image:圖片資源文件
3. video和audio
代碼層面:
1. Xib && SB:編譯后的文件
2. Yep:項(xiàng)目的可執(zhí)行文件
3. .framework:庫
所以能夠從資源層面或者代碼層面入手.
資源層面:可以分為Local和Remote.
優(yōu)化1:按需家在資源,做好緩存策略后,把非必須的資源文件都放在服務(wù)器上面.但是啟動(dòng)圖片和應(yīng)用圖片變是必須文件當(dāng)然還有其他的一些.

優(yōu)化2:因?yàn)楝F(xiàn)在基本不用適配1x圖片的屏幕,可以刪除,采取拖得方式,圖片只包含2x,3x.能夠減少%35圖片資源消耗.但是耗費(fèi)的性能(CPU),不建議使用..
怎么減少性能消耗.iOS9.0引出App Slicing:App Store會根據(jù)不同的設(shè)備準(zhǔn)備不同的安裝包.每個(gè)安裝包只有響應(yīng)尺寸的圖片(如iPhone6s只會去下載2x圖片到安裝包),但是這個(gè)功能的前提是需要.xcassets去管理.

優(yōu)化3:HTML5基本使用WKWebView來實(shí)現(xiàn),也是可以優(yōu)化的.
* 1. 讓前端給最小的包,內(nèi)置到app.
* 2. 所有的圖片,所有的頁面Remote化.

優(yōu)化4:資源文件重復(fù)問題,圖片名字相同通過.xcassets可以去重.可以使用LSUnusedResources將代碼中沒有用到的文件刪除.

啟動(dòng)圖:使用launchScreen.sb就不用這么多張圖了.弄一張pdf啟動(dòng)圖就可以了.

  1. 去重復(fù)資源,不用資源.
  2. 使用.xcassets管理.使用pdf高于png.
  3. 非資源文件放在Remote上
  4. HTML5,Remote化.
  5. 去除無用代碼.
性能優(yōu)化
  1. 使用系統(tǒng)自帶的instrments工具,作用:可以分析程序每個(gè)階段的性能,找出耗時(shí)過多的地方進(jìn)行檢查優(yōu)化.
  2. 不要再主線程上進(jìn)行耗時(shí)操作,盡量在子線程上操作.
  3. 使用NSCache:線程安全,收到內(nèi)存警告時(shí),會自動(dòng)刪減緩存.
  4. 懶加載,用的時(shí)候才加載,減少內(nèi)存消耗.
  5. 滑動(dòng)的性能優(yōu)化.
    1. 首先滑動(dòng)會將runLoop模式改為UITrackingRunLoopMode,所以定時(shí)器需要改變運(yùn)行循環(huán)的模式.不然無法滾動(dòng)
    2. cell內(nèi)盡量少的去創(chuàng)建View
    3. 繪制圖片再異步進(jìn)行等操作在異步進(jìn)行,主線程更新.
    4. 少cornerRadius,shadows.修改陰影和圓角需要額外開辟一塊緩存區(qū)進(jìn)行渲染.消耗CUP和內(nèi)存
    5. alphe,涉及圖層操作,也會增大計(jì)算量
    6. lable陰影效果通過貝塞爾曲線繪制,能夠提高效率.
圖形內(nèi)存原理

圖形內(nèi)存原理

7. 最好UI繪制四周透明圖片.或異步繪制.

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 173,310評論 25 708
  • 文/我叫o泡 每次回家都是說走就走,從來不需要什么理由,只是因?yàn)橄爰伊耍爰依锏乃恕U媒裉旎貋碲s上逢場,來來往...
    我叫O泡閱讀 638評論 2 8
  • 這里遠(yuǎn)離城市的紛擾,云霧繚繞,似一個(gè)童話世界。 藍(lán)天,白云,層疊的青山,遠(yuǎn)與近,深與淺,這是色彩的碰撞。 有人下山...
    瀟湘穆兒閱讀 404評論 8 1