成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

蓮湖網(wǎng)站建模板:APP開(kāi)發(fā)中性能如何優(yōu)化?

2023-02-22    分類(lèi): App開(kāi)發(fā)

蓮湖網(wǎng)站建模板:APP開(kāi)發(fā)中性能如何優(yōu)化?
隨著移動(dòng)互聯(lián)網(wǎng)的普及,手機(jī)已成為日常工作和生活的標(biāo)準(zhǔn)。面對(duì)龐大的移動(dòng)用戶流量,許多企業(yè)不僅開(kāi)展PC端網(wǎng)站建設(shè),還建立移動(dòng)網(wǎng)站,APP開(kāi)發(fā),小程序開(kāi)發(fā),創(chuàng)建全面的互聯(lián)網(wǎng)解決方案,實(shí)現(xiàn)品牌和渠道的快速溝通。今天,將向您介紹APP的一些性能優(yōu)化建議,以便移動(dòng)用戶可以更順暢地使用APP,并且手機(jī)將占用更少的空間,這將改善移動(dòng)用戶的用戶體驗(yàn)。
1.合理使用itmap:使用Bitmap后,需要及時(shí)調(diào)用recycle()方法釋放Bitmap占用的內(nèi)存空間,而不是等待Android系統(tǒng)釋放。
代碼示例:
//首先判斷它是否已被回收
if(bitmap!= null!bitmap.isRecycled()){
Bitmap.recycle();
位圖= NULL;
}
的System.gc();
2.對(duì)常量使用靜態(tài)最終修飾符
static final int intVal = 42;
靜態(tài)最終字符串strVal =“Hello,world!”;
將方法或類(lèi)聲明為final不會(huì)導(dǎo)致性能提升,但會(huì)幫助編譯器優(yōu)化代碼。例如,如果編譯器知道getter方法不會(huì)被重載,編譯器將內(nèi)聯(lián)調(diào)用它。
3.靜態(tài)方法而不是虛方法
如果您不需要訪問(wèn)對(duì)象的字段,請(qǐng)將方法設(shè)置為靜態(tài),并且調(diào)用將加速15?o 20?這也是一種很好的做法,您可以從方法聲明中看到調(diào)用此方法方法不需要更新此對(duì)象的狀態(tài)。
4.減少不必要的全局變量
盡量避免靜態(tài)成員變量引用消耗太多實(shí)例的資源,例如Context,因?yàn)镃ontext引用超出了自己蓮湖網(wǎng)站建模板 的生命周期,導(dǎo)致Context泄漏。因此,嘗試使用Context類(lèi)型的Application。通過(guò)調(diào)用Context.getApplicationContext()或Activity.getApplication()可以輕松獲得Application對(duì)象。
5.避免創(chuàng)建不必要的對(duì)象:避免創(chuàng)建短暫的臨時(shí)對(duì)象。減少對(duì)象創(chuàng)建可減少垃圾收集并減少對(duì)用戶體驗(yàn)的影響。
例如,當(dāng)您經(jīng)常操作字符串時(shí),請(qǐng)使用StringBuffer而不是String。對(duì)于所有基本類(lèi)型的所有組合:int數(shù)組優(yōu)于Integer數(shù)組,這也總結(jié)了兩個(gè)并行int數(shù)組比(int,int)對(duì)象數(shù)組執(zhí)行得更好的基本事實(shí)。避免使用浮點(diǎn)數(shù)。通常的經(jīng)驗(yàn)法則是,在Android設(shè)備中,浮點(diǎn)數(shù)的速度是整數(shù)的兩倍。
7.使用實(shí)體模擬接口
假設(shè)您有一個(gè)HashMap對(duì)象,您可以將其聲明為HashMap或Map:
Map map1 = new HashMap();
HashMap map2 = new HashMap();
8.訪問(wèn)成員變量比訪問(wèn)局部變量要慢得多
For循環(huán):不要在for的第二個(gè)條件中調(diào)用任何方法
反例:for(int i = 0; i
正例:int count = this.mCount; int count = this.getCount();
For(int i = 0; i
}
9.資源類(lèi)對(duì)蓮湖網(wǎng)站建模板象應(yīng)在不使用時(shí)及時(shí)關(guān)閉,以便及時(shí)回收緩存的數(shù)據(jù)。
例如,Cursor,F(xiàn)ile等需要最終關(guān)閉資源對(duì)象,以避免資源對(duì)象在異常情況下未發(fā)布的隱患。
10.注冊(cè)廣播接收器,注冊(cè)觀察員等需要在不使用時(shí)取消注冊(cè)。
例如:假設(shè)在Activity,偵聽(tīng)系統(tǒng)的電話服務(wù)中,您可以在Activity中定義PhoneStateListener對(duì)象,并在TelephoneManager服務(wù)中注冊(cè)它。對(duì)于Activity對(duì)象,理論上,Activity對(duì)象將在Activity退出后釋放。但是,如果在釋放Activity對(duì)象時(shí)忘記取消先前注冊(cè)的PhoneStateListener對(duì)象,則GC不會(huì)回收活動(dòng)。如果您繼續(xù)進(jìn)入和退出此活動(dòng),由于無(wú)法回收大量活動(dòng)對(duì)象,最終會(huì)導(dǎo)致頻繁的GC情況甚至內(nèi)存不足。

11.有效利用系統(tǒng)自有資源,Android系統(tǒng)內(nèi)置了大量資源,如字符串,顏色定義,常見(jiàn)的Icon圖像,動(dòng)畫(huà)樣式,以及簡(jiǎn)單的布局,沒(méi)有特殊要求,資源可以直接在程序中引用。這不僅減少了內(nèi)存開(kāi)銷(xiāo),還減小了apk的大小。
12.查看重用,使用ViewHolder實(shí)現(xiàn)ConvertView重用,這基本上是對(duì)所有容器控件的處理,如ListView,GridView等。
13.當(dāng)使用最優(yōu)數(shù)據(jù)類(lèi)型時(shí),對(duì)象的數(shù)量相對(duì)較少,ArrayMap取代了使用HashMap,避免使用枚舉,枚舉變量非常方便,但遺憾的是它會(huì)犧牲執(zhí)行速度并大大增加文件尺寸。
14.圖像內(nèi)存優(yōu)化
在Android提供的各種位圖格式中,最高的是RGB_8888,它也是系統(tǒng)的默認(rèn)位圖格式。其他人減少了位圖通道,這可以減少內(nèi)存開(kāi)銷(xiāo),例如一些部分圖像,小屏幕移動(dòng)電話或圖像質(zhì)量要求。對(duì)于不高的場(chǎng)景,您可以使用RGB_565或ARGB_4444等圖像格式。
圖像縮放:inSampleSize,inScaled,inDensity和inTargetDensity
位圖內(nèi)存重用:使用inBitmap可以與LruCache結(jié)合使用。
推薦的開(kāi)源庫(kù):picasso,Glide
15. Android網(wǎng)絡(luò)通訊框架Volley。
16.合理使用對(duì)象池和線程池。
17.用IntentService替換服務(wù)。
IntentService優(yōu)點(diǎn):新開(kāi)的線程;順序處理意圖;執(zhí)行后自動(dòng)退出。
18.盡量不要將大容量庫(kù)用于一個(gè)或兩個(gè)功能。
19.好在不使用對(duì)象時(shí)顯式設(shè)置Null以減少GC開(kāi)銷(xiāo)。
20.了解有關(guān)并使用類(lèi)庫(kù)的更多信息。
一些例子
2.使用JIT的Nexus One上的自編碼循環(huán)的System.arraycopy方法快9倍。
3. android.text.format包下的Formatter類(lèi)提供了IP地址轉(zhuǎn)換和文件大小轉(zhuǎn)換的方法。 DateFormat類(lèi)提供各種時(shí)間轉(zhuǎn)換,是一種非常有效的方法。
4. TextUtils類(lèi),用于字符串處理Android為我們提供了一個(gè)簡(jiǎn)單實(shí)用的TextUtils類(lèi),如果你處理相對(duì)簡(jiǎn)單的內(nèi)容,不必考慮正則表達(dá)式,在android.text.TextUtils中嘗試這個(gè)類(lèi)
5.高性能MemoryFile類(lèi)主要用于I / O操作,主要與外部存儲(chǔ)相關(guān)的I / O操作有關(guān)。 MemoryFile將NAND或SD卡上的文件轉(zhuǎn)換為內(nèi)存以進(jìn)行修改處理。使用高速RAM代替ROM或SD卡,性能自然得到改善。對(duì)于Android手機(jī),功耗也會(huì)降低。這個(gè)類(lèi)實(shí)現(xiàn)了很多函數(shù),直接從Object繼承,并直接在C下通過(guò)JNI執(zhí)行。
內(nèi)存優(yōu)化工具
推薦的內(nèi)存分析工具:適用于Android 蓮湖網(wǎng)站建模板Studio的內(nèi)存監(jiān)視器
推薦內(nèi)存泄漏分析工作:MAT for eclipse,Android Studio
內(nèi)存泄漏監(jiān)控工具:LeakCanary

當(dāng)前名稱:蓮湖網(wǎng)站建模板:APP開(kāi)發(fā)中性能如何優(yōu)化?
當(dāng)前地址:http://jinyejixie.com/news19/238919.html

網(wǎng)站建設(shè)、網(wǎng)絡(luò)推廣公司-創(chuàng)新互聯(lián),是專(zhuān)注品牌與效果的網(wǎng)站制作,網(wǎng)絡(luò)營(yíng)銷(xiāo)seo公司;服務(wù)項(xiàng)目有App開(kāi)發(fā)

廣告

聲明:本網(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í)需注明來(lái)源: 創(chuàng)新互聯(lián)

網(wǎng)站托管運(yùn)營(yíng)
栾城县| 天峻县| 梧州市| 安丘市| 丰城市| 措勤县| 文登市| 呼伦贝尔市| 英吉沙县| 祁东县| 乌海市| 来宾市| 温宿县| 通化县| 邵东县| 河源市| 巧家县| 潼南县| 八宿县| 焉耆| 永昌县| 山东| 洛浦县| 新源县| 花莲市| 资讯 | 崇左市| 葵青区| 丹棱县| 蒙山县| 安阳市| 建昌县| 海南省| 高尔夫| 阳谷县| 阜平县| 泰兴市| 湛江市| 信宜市| 榕江县| 民勤县|