2021-01-31 分類: 網(wǎng)站建設(shè)
說到APP優(yōu)化,我們也可以從很多方面進(jìn)行優(yōu)化,從包大小、頁面流暢度、內(nèi)存占用、數(shù)據(jù)緩存、網(wǎng)絡(luò)數(shù)據(jù)安全等等來優(yōu)化加固我們的APP,每一個(gè)點(diǎn)展開又有很多需要將的,我以前也專門寫了一篇關(guān)于APP性能優(yōu)化的博文,如下:
《iOS-性能優(yōu)化的那些事》
在移動(dòng)端APP網(wǎng)絡(luò)優(yōu)化也是APP性能優(yōu)化的一個(gè)非常重要的一個(gè)點(diǎn),而且99.99%的APP都會(huì)伴隨著網(wǎng)絡(luò)交互; 在此,我將對(duì)APP網(wǎng)絡(luò)優(yōu)化和網(wǎng)絡(luò)安全做一個(gè)詳細(xì)的總結(jié),主要從流量、質(zhì)量、安全方面去說,如要結(jié)構(gòu)點(diǎn)如下:
先說一個(gè)親身經(jīng)歷過得事情,以前在一家公司開發(fā)了一款A(yù)PP,有一點(diǎn)客服反饋有個(gè)上海老大爺打電話過來罵人,手機(jī)裝了我們的APP,一個(gè)晚上用掉人家一兩個(gè)G;后來公司也主動(dòng)幫人家承擔(dān)了這部分的流量資費(fèi),關(guān)鍵是15年流量資費(fèi)還很高的,這個(gè)APP當(dāng)然不是我寫的,是安卓的小伙伴!
即使流量現(xiàn)在價(jià)格不是很貴了,但是盡可能的幫用戶節(jié)省流浪也是非常應(yīng)該的!
相信大家在開發(fā)APP的時(shí)候肯定會(huì)做一些埋點(diǎn)和日志上報(bào)的功能,我們也可以把網(wǎng)絡(luò)請(qǐng)求的監(jiān)控也做進(jìn)去,我們可以檢測(cè)用戶在一段時(shí)間內(nèi)的流量消耗,計(jì)算流量的均值和峰值等等,并上報(bào)流量接口,這些我們?cè)谌罩净蛘呗顸c(diǎn)系統(tǒng)里面都可以記錄,然后上傳給服務(wù)端,然后進(jìn)行數(shù)據(jù)分析,找出流量消耗的不足之處。
說到緩存,這也是一個(gè)非常大的一個(gè)點(diǎn),有時(shí)間也可以展開說,我平時(shí)的博客關(guān)于緩存也講到很多,緩存的一個(gè)非常重要的好處就是提好了頁面加載速度,提高用戶的使用體驗(yàn);但是緩存也可以替用戶節(jié)省流量的消耗。 APP數(shù)據(jù)的緩存無非是列表接口的緩存、WebView的緩存,關(guān)于WebView的緩存我也單獨(dú)寫過,如下:
《iOS-WKWebView緩存并保證實(shí)時(shí)性》
《iOS-UIWebView緩存并保證實(shí)時(shí)性》
我們還可以做資源包下發(fā)預(yù)制加載等,這里也不展開了!
關(guān)于數(shù)據(jù)壓縮,這邊主要想講的就是資源文件的數(shù)據(jù)壓縮了,主要在網(wǎng)絡(luò)上傳和網(wǎng)絡(luò)下載方面;
1.數(shù)據(jù)上傳 比如上傳圖片數(shù)據(jù)的時(shí)候是不是需要原圖高清圖,現(xiàn)在相機(jī)的像素都高,我們是不是可以搞了壓縮一下圖片或者視頻再上傳,就像微信發(fā)送圖片的時(shí)候,用戶可以選擇壓縮或者原圖;
2.數(shù)據(jù)下載 下載目前也是APP的大頭了,一般APP都是請(qǐng)求下載的數(shù)據(jù)比較多;我們?cè)诩虞d資源的時(shí)候可以選擇加載壓縮資源,比如微信的朋友圈,小圖的時(shí)候我們可以加載縮略圖,要是點(diǎn)擊查看大圖的時(shí)候才考慮加載大圖原圖;
數(shù)據(jù)交互如果比較頻繁會(huì)消耗用戶的流量,而且用戶體驗(yàn)不好,還有一個(gè)非常重要的原因就是頻繁的網(wǎng)絡(luò)請(qǐng)求也會(huì)比較損耗手機(jī)的電量;所以我們可以合并一些能合并的網(wǎng)絡(luò)請(qǐng)求,比如日志上報(bào)的時(shí)候。
在APP開發(fā)的過程中,一般就是一進(jìn)入頁面就進(jìn)行網(wǎng)絡(luò)請(qǐng)求,然后等待結(jié)束加載數(shù)據(jù),但是比如網(wǎng)絡(luò)請(qǐng)求比較緩慢(可能是數(shù)據(jù)量比較大,也有可能是網(wǎng)絡(luò)狀況不好),用戶不想等了,直接返回頁面銷毀了,但是我們的大部分網(wǎng)絡(luò)請(qǐng)求是單獨(dú)封裝的,但是網(wǎng)絡(luò)請(qǐng)求還在繼續(xù)請(qǐng)求中,這里數(shù)據(jù)、性能、內(nèi)存、電量的問題就出來了,所以大家在封裝網(wǎng)絡(luò)請(qǐng)求的時(shí)候要把頁面銷毀就取消網(wǎng)絡(luò)請(qǐng)求的場(chǎng)景考慮進(jìn)去!
網(wǎng)絡(luò)請(qǐng)求的速度是影響用戶體驗(yàn)的一個(gè)非常重要的原因,所以服務(wù)端也要想著來提高api的交互速度,為此我們可以通過下面的幾個(gè)方案來優(yōu)化交互速度,如下:
a.域名合并,減少了DNS調(diào)用次數(shù),降低了DNS劫持風(fēng)險(xiǎn);
b.ip直連,去除DNS的解析步驟;
c.api緩存,比如redis緩存;
d.數(shù)據(jù)資源壓縮上傳;
監(jiān)控網(wǎng)絡(luò)請(qǐng)求質(zhì)量和請(qǐng)求速度,然后記錄日志進(jìn)行上報(bào),監(jiān)控完整的網(wǎng)絡(luò)請(qǐng)求鏈路;
api的設(shè)計(jì)也要考慮到api的壓力以及服務(wù)器的壓力,防止因?yàn)閴毫μ髮?dǎo)致接口掛掉,從而影響用戶的體驗(yàn);
服務(wù)端在給APP端提供數(shù)據(jù)的時(shí)候,避免讓APP端進(jìn)行數(shù)據(jù)處理或者運(yùn)算,比較APP的內(nèi)存資源和運(yùn)算資源有限,不要過度消耗浪費(fèi)APP資源; 比如,我上家公司的用戶信息里面有用戶的年齡,但是服務(wù)端給的不是直接的年齡數(shù)據(jù),而是給的生日時(shí)間戳,需要APP端自己去計(jì)算年齡,但是我們知道 NSDateFormatter又是重大內(nèi)存開銷對(duì)象,在列表處理的時(shí)候又比較消耗內(nèi)存,所以建議關(guān)于運(yùn)算的一些東西最好在服務(wù)端計(jì)算好,這種不僅僅保證APP的性能問題,還是一種安全問題!
我們?cè)贏PP端的網(wǎng)絡(luò)安全問題一般是APP抓包、DNS劫持、服務(wù)器安全,詳細(xì)如下:
說到抓包,侵入者可以選擇抓取數(shù)據(jù)來竊密APP的關(guān)鍵數(shù)據(jù),然后模擬請(qǐng)求,做一些APP不好控制的事情,在此我們可以使用Https進(jìn)行網(wǎng)絡(luò)請(qǐng)求,還可以禁止網(wǎng)絡(luò)請(qǐng)求設(shè)置代碼; 還可以把請(qǐng)求頭和請(qǐng)求體進(jìn)行加密傳輸,多一次保證! 但是需要說明一點(diǎn)的是,沒用絕對(duì)的安全,只要是人設(shè)計(jì)的加密就有人設(shè)計(jì)解密,窺視心里在作怪!
DNS劫持,由于域名解析為IP這個(gè)過程中,其解析是基于UDP 協(xié)議實(shí)現(xiàn),所以報(bào)文是明文狀態(tài),可能會(huì)在請(qǐng)求過程中被監(jiān)測(cè),然后攻擊者做一些自己的處理,比如返回假的IP地址或者什么都不做使請(qǐng)求失去響應(yīng),其效果就是對(duì)特定的網(wǎng)絡(luò)不能反應(yīng)或訪問的是假網(wǎng)址。根本原因就是以下兩點(diǎn):
a.惡意攻擊,攔截運(yùn)營(yíng)商的解析過程,把自己的非法東西嵌入其中。
b.運(yùn)營(yíng)商為了利益或者一些其他的因素,允許一些第三方在自己的鏈接里打打廣告之類的。
如何防止DNS劫持? 可以通過上面我說的IP直連,自己在APP解析! 推薦一篇寫的比較詳細(xì)的關(guān)于DNS的,如下:
《APP網(wǎng)絡(luò)優(yōu)化之DNS優(yōu)化實(shí)踐》
服務(wù)器安全可以從物理安全和網(wǎng)絡(luò)安全來說 a.物理安全,服務(wù)器要考慮比如斷電、斷網(wǎng)等情況下導(dǎo)致的安全問題; b.網(wǎng)絡(luò)安全,防止服務(wù)器被攻擊、被爬蟲等問題; 所以,服務(wù)器的備份機(jī)制和數(shù)據(jù)備份機(jī)制和重要,還要限制同一IP的請(qǐng)求次數(shù)和間隔等;
本文題目:細(xì)說APP網(wǎng)絡(luò)深度優(yōu)化與網(wǎng)絡(luò)安全
URL分享:http://www.rwnh.cn/news47/98397.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供自適應(yīng)網(wǎng)站、營(yíng)銷型網(wǎng)站建設(shè)、品牌網(wǎng)站制作、微信小程序、網(wǎng)站排名、域名注冊(cè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容