導航:首頁 > 操作系統 > androidapp性能優化

androidapp性能優化

發布時間:2022-09-08 10:15:19

⑴ 安卓手機用久了會卡頓,有什麼辦法可以解決這個問題

眾所周知,安卓手機用久了,是會出現卡頓的情況,因此想要有效解決這個問題,就要養成清理後台的習慣。雖然安卓手機的運行內存非常大,但是如果經常性的打開軟體,不清理的話,就會長時間的累積在後台當中,這樣就會影響其他APP的空間。

千萬不要下載過多的游戲,尤其是手機網游,像這些網友可能剛開始下載的時候,運行內存比較小,但是隨著經常性的打游戲,那麼內存會越來越大。甚至一款游戲占據手機十幾個GB的內存,所以保留一個網游即可。另外也要對手機照片、視頻進行相應的清理,這兩者占據的內存也是非常大的,很有可能在看視頻的過程當中,就會將視頻保存到自己的手機中。

⑵ 如何對android進行性能優化

不知道你是說對系統優化還是什麼app優化,

系統優化就只能找底層人員的了,我也不是很了解。

app優化的話,大體有以下幾個方面

  1. ui優化,去除累贅的布局,優化初始化的速度,提高apk流暢性。

  2. 網路交互優化,好的網路和數據處理方式決定了app的體驗性能。

  3. 檢查內存是否有泄漏,人們常說的anr詳細。

如何你問的是android手機優化。

平常人只能下載手機管家這種軟體進行清除內存,垃圾,卸載無用的apk,保持android系統的流暢性。

⑶ 針對Android的性能優化集中哪些方面

一、概要:

本文主要以Android的渲染機制、UI優化、多線程的處理、緩存處理、電量優化以及代碼規范等幾方面來簡述Android的性能優化

二、渲染機制的優化:

大多數用戶感知到的卡頓等性能問題的最主要根源都是因為渲染性能。

Android系統每隔16ms發出VSYNC信號,觸發對UI進行渲染, 如果每次渲染都成功,這樣就能夠達到流暢的畫面所需要的60fps,為了能夠實現60fps,這意味著程序的大多數操作都必須在16ms內完成。

*關於JobScheler的更多知識可以參考http://hukai.me/android-training-course-in-chinese/background-jobs/scheling/index.html

七、代碼規范

1)for loop中不要聲明臨時變數,不到萬不得已不要在裡面寫try catch。

2)明白垃圾回收機制,避免頻繁GC,內存泄漏,OOM(有機會專門說)

3)合理使用數據類型,StringBuilder代替String,少用枚舉enum,少用父類聲明(List,Map)

4)如果你有頻繁的new線程,那最好通過線程池去execute它們,減少線程創建開銷。

5)你要知道單例的好處,並正確的使用它。

6)多用常量,少用顯式的"action_key",並維護一個常量類,別重復聲明這些常量。

7)如果可以,至少要弄懂設計模式中的策略模式,組合模式,裝飾模式,工廠模式,觀察者模式,這些能幫助你合理的解耦,即使需求頻繁變更,你也不用害怕牽一發而動全身。需求變更不可怕,可怕的是沒有在寫代碼之前做合理的設計。

8)View中設置緩存屬性.setDrawingCache為true.

9)cursor的使用。不過要注意管理好cursor,不要每次打開關閉cursor.因為打開關閉Cursor非常耗時。Cursor.require用於刷cursor.

10)採用SurfaceView在子線程刷新UI,避免手勢的處理和繪制在同一UI線程(普通View都這樣做)

11)採用JNI,將耗時間的處理放到c/c++層來處理

12)有些能用文件操作的,盡量採用文件操作,文件操作的速度比資料庫的操作要快10倍左右

13)懶載入和緩存機制。訪問網路的耗時操作啟動一個新線程來做,而不要再UI線程來做

14)如果方法用不到成員變數,可以把方法申明為static,性能會提高到15%到20%

15)避免使用getter/setter存取field,可以把field申明為public,直接訪問

16)私有內部類要訪問外部類的field或方法時,其成員變數不要用private,因為在編譯時會生成setter/getter,影響性能。可以把外部類的field或方法聲明為包訪問許可權

17)合理利用浮點數,浮點數比整型慢兩倍

18)針對ListView的性能優化,ListView的背景色與cacheColorHint設置相同顏色,可以提高滑動時的渲染性能。ListView中getView是性能是關鍵,這里要盡可能的優化。

getView方法中要重用view;getView方法中不能做復雜的邏輯計算,特別是資料庫操作,否則會嚴重影響滑動時的性能

19)不用new關鍵詞創建類的實例,用new關鍵詞創建類的實例時,構造函數鏈中的所有構造函數都會被自動調用。但如果一個對象實現了Cloneable介面,我們可以調用它的clone()方法。

clone()方法不會調用任何類構造函數。在使用設計模式(Design Pattern)的場合,如果用Factory模式創建對象,則改用clone()方法創建新的對象實例非常簡單。例如,下面是Factory模式的一個典型實現:

20)public static Credit getNewCredit() {
return new Credit();
}
改進後的代碼使用clone()方法,如下所示:
private static Credit BaseCredit = new Credit();
public static Credit getNewCredit() {
return (Credit) BaseCredit.clone();
}
上面的思路對於數組處理同樣很有用。

21)乘法和除法

考慮下面的代碼:

  • for (val = 0; val < 100000; val +=5) { alterX = val * 8; myResult = val * 2; }
    用移位操作替代乘法操作可以極大地提高性能。下面是修改後的代碼:
    for (val = 0; val < 100000; val += 5) { alterX = val << 3; myResult = val << 1; }

  • 22)ViewPager同時緩存page數最好為最小值3,如果過多,那麼第一次顯示時,ViewPager所初始化的pager就會很多,這樣pager累積渲染耗時就會增多,看起來就卡。

    23)每個pager應該只在顯示時才載入網路或資料庫(UserVisibleHint=true),最好不要預載入數據,以免造成浪費

    24)提高下載速度:要控制好同時下載的最大任務數,同時給InputStream再包一層緩沖流會更快(如BufferedInputStream)

    25)提供載入速度:讓服務端提供不同解析度的圖片才是最好的解決方案。還有合理使用內存緩存,使用開源的框架

    引用:Android性能優化的淺談

    ⑷ Android性能優化第(八)篇---App啟動速度優化之耗時檢測處理

    應用的啟動速度緩慢這是很多開發者都遇到的一個問題,比如啟動緩慢導致的黑屏,白屏問題,大部分的答案都是做一個透明的主題,或者是做一個Splash界面,但是這並沒有從根本上解決這個問題。那麼如何從根本上解決這個問題或者做到一定程度的緩解?

    1、冷啟動:當啟動應用時,後台沒有該應用的進程,這時系統會首先會創建一個新的進程分配給該應用,這種啟動方式就是冷啟動。

    2、熱啟動:當啟動應用時,後台已有該應用的進程,比如按下home鍵,這種在已有進程的情況下,這種啟動會從已有的進程中來啟動應用,這種啟動方式叫熱啟動。

    3、溫啟動 :當啟動應用時,後台已有該應用的進程,但是啟動的入口Activity被幹掉了,比如按了back鍵,應用雖然退出了,但是該應用的進程是依然會保留在後台,這種啟動方式叫溫啟動。

    adb shell am start -W [PackageName]/[PackageName.MainActivity]

    執行成功後將返回三個測量到的時間:

    這裡面涉及到三個時間,ThisTime、TotalTime 和 WaitTime。WaitTime 是 startActivityAndWait 這個方法的調用耗時,ThisTime 是指調用過程中最後一個 Activity 啟動時間到這個 Activity 的 startActivityAndWait 調用結束。TotalTime 是指調用過程中第一個 Activity 的啟動時間到最後一個 Activity 的 startActivityAndWait 結束。如果過程中只有一個 Activity ,則 TotalTime 等於 ThisTime。

    總結:如果只關心某個應用自身啟動耗時,參考TotalTime;如果關心系統啟動應用耗時,參考WaitTime;如果關心應用有界面Activity啟動耗時,參考ThisTime。

    從我們Application開始到首頁顯示出來,這個過程,我們應該注意一些什麼,將這個過程細分一下,會有下面的時間點需要注意。

    Application的構造器方法——>attachBaseContext()——>onCreate()——>Activity的構造方法——>onCreate()——>配置主題中背景等屬性——>onStart()——>onResume()——>測量、布局、繪制顯示在界面上。

    因為上面這些階段全部都是在主線程中執行的,任何不經意的操作都可能拖慢應用的啟動速度。所以我們不應在Application以及Activity的生命周期回調中做任何費時操作,具體指標大概是你在onCreate,onResume,onStart等回調中所花費的總時間最好不要超過400ms,否則用戶在桌面點擊你的應用圖標後,將感覺到明顯的卡頓。但是有些 不得以的任務 又必須在UI顯示之前執行。所以我們要將 任務 劃分優先順序。

    對於首頁渲染完成後,開始載入,或者延遲載入,延遲載入的目的就是界面先顯示出來,然後載入,但是你覺得要延遲多久呢?在 Android 的高端機型上,應用的啟動是非常快的 , 這時候只需要 Delay 很短的時間就可以了, 但是在低端機型上,應用的啟動就沒有那麼快了,而且現在應用為了兼容舊的機型,往往需要 Delay 較長的時間,這樣帶來體驗上的差異是很明顯的。延遲載入有一種方式。

    極力推薦用第二種,在窗口完成以後進行載入,這裡面的run方法是在onResume之後運行的。關於這種懶載入機制,參考 Android應用啟動優化:一種DelayLoad的實現和原理(上篇) ,給出了詳細的解釋。

    通過上面我們知道一種懶載入機制,所以我們可以將Application中和首頁的onCreate中的有些耗時任務,放到首頁渲染完畢後載入。如何找出這些耗時任務,TraceView就派上用場了,TraceView的用法,移步我的前面的博客 Android性能優化第(六)篇---TraceView 分析圖怎麼看?

    比如在首頁的onCreate中我們進行了用戶啟動上報,這個進行懶載入是不是分分鍾減少139毫秒呢?

    在比如在Application裡面用到了GSON,將String轉化成json,我將這個移動到懶載入裡面,是不是又減少了100毫秒呢?

    在比如,有些Application中做了支付SDK的初始化,用戶又不會一打開App就要支付,放在Application中載入幹嘛?

    此處我們這里舉得例子是優化了139毫秒和100毫秒的,其實真正耗時的任務有的有1秒多,都被我優化完了,所以trace圖中看不到了,就舉個了這兩個例子,還有SharedPreferences也是耗時大戶,經過檢測保存一個boolean變數耗時120+毫秒以上。

    利用TraceView可以清楚我們每一個方法的耗時時間,極大的幫助了我們做優化工作。

    五、優化思路總結
    1、UI渲染優化,去除重復繪制,減少UI重復繪制時間,打開設置中的GPU過度繪制開關,各界面過度繪制不應超過2.5x;也就是打開此調試開關後,界面整體呈現淺色,特別復雜的界面,紅色區域也不應該超過全屏幕的四分之一;
    2、根據優先順序的劃分,KoMobileApplication的一些初始化工作能否將任務優先順序劃分成3,在首頁渲染完成後進行載入,比如:PaySDKManager。
    3、主線程中的所有SharedPreference能否在非UI線程中進行,SharedPreferences的apply函數需要注意,因為Commit函數會阻塞IO,這個函數雖然執行很快,但是系統會有另外一個線程來負責寫操作,當apply頻率高的時候,該線程就會比較佔用CPU資源。類似的還有統計埋點等,在主線程埋點但非同步線程提交,頻率高的情況也會出現這樣的問題。
    4、檢查BaseActivity,不恰當的操作會影響所有子Activity的啟動。
    5、對於首次啟動的黑屏問題,對於「黑屏」是否可以設計一個.9圖片替換掉,間接減少用戶等待時間。
    6、對於網路錯誤界面,友好提示界面,使用ViewStub的方式,減少UI一次性繪制的壓力。
    7、任務優先順序為2,3的,通過下面這種方式進行懶載入的方式

    8、Multidex的使用,也是拖慢啟動速度的元兇,必須要做優化。後面有空專門寫一篇Multidex。

    相關鏈接:

    Android應用啟動優化:一種DelayLoad的實現和原理(上篇)http://androidperformance.com/2015/11/18/Android-app-lunch-optimize-delay-load.html

    Android性能優化之加快應用啟動速度http://www.open-open.com/lib/view/open1452821612355.html

    手機淘寶性能優化全記錄http://www.open-open.com/lib/view/open1452488209370.html

    Android客戶端性能優化(魅族資深工程師毫無保留奉獻)http://blog.tingyun.com/web/article/detail/155#rd

    Please accept mybest wishes for your happiness and success !

    ⑸ 安卓手機反應慢怎麼辦最簡單的方法

    如果您使用的是華為手機,手機升級系統後短時間內出現卡頓,屬於正常現象,如果並非剛升級完出現,請按照以下方案排查:
    溫馨提醒:升級系統後卡頓原因:由於系統升級後剛開始使用時,系統會對手機中的應用程序進行優化,此時手機負載較高,使用時可能會出現卡頓情況。建議升級完成後將手機滅屏充電2小時以上,然後重啟手機以保證手機內已安裝的應用優化完成。
    1. 檢查手機是否正在下載、復制、傳輸等操作
    如果手機正在執行上傳下載(文件、圖片、視頻、應用等)、復制(文件管理拷貝數據等)、傳輸(手機克隆、Huawei Share等)等操作時感覺到卡頓,建議您等待任務結束或停止此操作。
    提示:您可以下拉狀態欄查看上傳、下載、傳輸文件的進度。
    2. 重啟手機
    請您重啟手機後嘗試。建議您2~3天重啟一次手機,重啟能有效的清理緩存,緩解卡頓現象。
    3. 檢查手機是否發熱或者充電時使用
    手機特有的過熱保護功能會適當降低系統性能。建議您盡量避免充電時使用手機,適當降低屏幕亮度,關閉不使用或異常耗電應用與功能,如「藍牙」,NFC等。
    4. 檢查存儲卡
    (1)可能是存儲卡存儲的文件過多(建議預留10%以上空間),導致讀寫速度慢,建議您清理存儲卡空間,或備份重要數據(QQ、微信等第三方應用需單獨備份)後格式化存儲卡。
    (2)可能是存儲卡硬體異常,是否曾提示「存儲卡異常」,若是,建議您盡快更換存儲卡。
    (3)若手機的默認存儲位置為存儲卡,建議您將默認存儲位置更改為「內部存儲」後嘗試。
    5. 關閉省電模式、保持電量充足
    如果您開啟了省電模式,建議您關閉(設置 > 電池 > 省電模式和 超級省電),並保持電量充足(20%以上)。省電模式和低電量情況下,手機會降低性能以節省電量。
    6. 清理存儲空間
    手機運行內存和存儲空間不足時會導致應用卡頓,建議您進入手機管家進行清理:
    (1)進入手機管家點擊一鍵優化/立即優化,優化完畢後,手機管家會顯示優化結果以及設置建議。根據提示,完成相應的設置。
    (2)進入手機管家點擊清理加速,待掃描完畢後,點擊清理項後的立即清理,根據提示刪除多餘的文件,並卸載不常用的應用,保持存儲空間充足(建議預留20%以上)。
    7. 升級系統版本
    (1)如果手機已經 Root,請恢復成官方穩定版本使用,詳情請致電華為客服咨詢。
    (2)建議您及時進行手機系統更新,並將應用升級到最新版本。新版本會對系統性能進行優化提升。更新方法:進入手機設置,搜索進入軟體更新,點擊檢查更新。
    提示:恢復版本和升級系統版本會造成數據丟失,請您提前備份好數據(QQ、微信等第三方應用需單獨備份)。
    8.卸載第三方手機管家類軟體
    如果您的手機裝有第三方手機管理類型的軟體,請卸載此類應用後嘗試。通常此類軟體與手機自帶的手機管家存在沖突,會導致運行卡頓。

    9. 恢復出廠設置
    請您備份重要數據(QQ、微信等第三方應用需單獨備份),將手機恢復出廠設置後重試。
    如果問題仍然存在,請您備份好數據後(QQ、微信等第三方應用需單獨備份)攜帶購機憑證前往華為客戶服務中心進行檢測處理。
    溫馨提醒:您可以選擇夜間充電(或滅屏充電40min以上),可以一定程度上整理手機內存碎片,緩解卡頓現象。

    相關鏈接如下:寄修服務華為客戶服務中心預約服務維修備件價格查詢

    ⑹ Android應用性能優化的內容簡介

    今天的Android應用開發者經常要想盡辦法來提升程序性能。由於應用越來越復雜,這個問題也變得越來越棘手。本書主要介紹如何快速高效地優化應用,讓應用變得穩定高效。你將學會利用Android SDK和NDK來混合或單獨使用Java、C/C++來開發應用。書中還特別講解了如下內容:
    · 一些OpenGL的優化技術以及RenderScript(Android的新特性)的基礎知識;
    · 利用SDK來優化應用的Java代碼的技巧;
    · 通過高效使用內存來提升性能的技巧;
    · 延長電池使用時間的技巧;
    · 使用多線程的時機及技巧;
    · 評測剖析代碼的技巧。
    把本書的內容學以致用,你的編程技術就會得到關鍵性的提升,寫出的應用就會更為健壯高效,從而廣受用戶好評,並最終獲得成功。
    目錄
    第1章Java代碼優化1.1Android如何執行代碼1.2優化斐波納契數列1.2.1從遞歸到迭代1.2.2BigInteger1.3緩存結果1.4API等級1.5數據結構1.6響應能力1.6.1推遲初始化1.6.2StrictMode1.7SQLite1.7.1SQLite語句1.7.2事務1.7.3查詢
    第1章Java代碼優化1.1Android如何執行代碼1.2優化斐波納契數列1.2.1從遞歸到迭代1.2.2BigInteger1.3緩存結果1.4API等級1.5數據結構1.6響應能力1.6.1推遲初始化1.6.2StrictMode1.7SQLite1.7.1SQLite語句1.7.2事務1.7.3查詢1.8總結
    第2章NDK入門2.1NDK里有什麼2.2混合使用Java和C/C++代碼2.2.1聲明本地方法2.2.2實現JNI粘合層2.2.3創建Makefile2.2.4實現本地函數2.2.5編譯本地庫2.2.6載入本地庫2.3Application.mk2.3.1為(幾乎)所有設備優化2.3.2支持所有設備2.4Android.mk2.5使用C/C++改進性能2.6本地Acitivity2.6.1構建缺失的庫2.6.2替代方案2.7總結
    第3章NDK進階3.1匯編3.1.1最大公約數3.1.2色彩轉換3.1.3並行計算平均值3.1.4ARM指令3.1.5ARM NEON3.1.6CPU特性3.2C擴展3.2.1內置函數3.2.2向量指令3.3技巧3.3.1內聯函數3.3.2循環展開3.3.3內存預讀取3.3.4用LDM/STM替換LDR/STD3.4總結
    第4章高效使用內存4.1說說內存4.2數據類型4.2.1值的比較4.2.2其他演算法4.2.3數組排序4.2.4定義自己的類4.3訪問內存4.4排布數據4.5垃圾收集4.5.1內存泄漏4.5.2引用4.6API4.7內存少的時候4.8總結
    第5章多線程和同步5.1線程5.2AsyncTask5.3Handler和Looper5.3.1Handler5.3.2Looper5.4數據類型5.5並發5.6多核5.6.1為多核修改演算法5.6.2使用並發緩存5.7Activity生命周期5.7.1傳遞信息5.7.2記住狀態5.8總結
    第6章性能評測和剖析6.1時間測量6.1.1System.nanoTime()6.1.2Debug.threadCpuTimeNanos()6.2方法調用跟蹤6.2.1Debug.startMethodTracing()6.2.2使用Traceview工具6.2.3DDMS中的Traceview6.2.4本地方法跟蹤6.3日誌6.4總結
    第7章延長電池續航時間7.1電池7.2禁用廣播接收器7.3網路7.3.1後台數據7.3.2數據傳輸7.4位置7.4.1注銷監聽器7.4.2更新頻率7.4.3多種位置服務7.4.4篩選定位服務7.4.5最後已知位置7.5感測器7.6圖形7.7提醒7.8WakeLock7.9總結
    第8章圖形8.1布局優化8.1.1相對布局8.1.2合並布局8.1.3重用布局8.1.4ViewStub8.2布局工具8.2.1層級視圖8.2.2layoutopt8.3OpenGL ES8.3.1擴展8.3.2紋理壓縮8.3.3Mipmap8.3.4多APK8.3.5著色8.3.6場景復雜性8.3.7消隱8.3.8渲染模式8.3.9功耗管理8.4總結
    第9章RenderScript9.1概覽9.2Hello World9.3Hello Rendering9.3.1創建渲染腳本9.3.2創建RenderScriptGL Context9.3.3展開RSSurfaceView9.3.4設置內容視圖9.4在腳本中添加變數9.5HelloCompute9.5.1Allocation9.5.2rsForEach9.5.3性能9.6自帶的RenderScript API9.6.1rs_types.rsh9.6.2rs_core.rsh9.6.3rs_cl.rsh9.6.4rs_math.rsh9.6.5rs_graphics.rsh9.6.6rs_time.rsh9.6.7rs_atomic.rsh9.7RenderScript與NDK對比9.8總結

    ⑺ Android App性能優化之耗電優化

    在移動設備中,電池的重要性不言而喻,沒有電什麼都幹不成。對於操作系統和設備開發商來說,去追求更長的待機時間,耗電優化一直沒有停止。而對於一款應用來說,並不能忽略耗電問題,特別是那些被歸為「電池殺手」的應用,最終的結果是被卸載。因此,應用開發者在實現需求的同時,需要盡量減少電量的消耗(本文針對Android App進行分析)。

    App耗電的原因其實很多,這里我就講以下幾種優化方案,優化方案的反面就是他的原因了,幾種優化方案如下:

    1.合理的使用wake_lock鎖,wake_lock鎖主要是相對系統的休眠(這里就是為了省電,才做休)而言的,意思就是我的程序給CPU加了這個鎖那系統就不會休眠了,這樣做的目的是為了全力配合我們程序的運行。有的情況如果不這么做就會出現一些問題,比如微信等及時通訊的心跳包會在熄屏不久後停止網路訪問等問題。所以微信裡面是有大量使用到了wake_lock鎖。

    2.使用jobScheler2,集中處理一些網路請求,有些不用很及時的處理可以放在充電的時候處理,比如,圖片的處理,APP下載更新等等;

    3.計算優化,避開浮點運算等。

    4.數據在網路上傳輸時,盡量壓縮數據後再傳輸,建議用FlatBuffer序列化技術,這個比json效率高很多倍,不了解FlatBuffer,建議找資料學習一下。

    App耗電分析所用到的工具

    App耗電高說到底無非是因為代碼不合理造成的,其中存在的一些問題,我們通過調試也很難定位到。在這里,我給大家分享一款工具,那就是「友盟+u-apm」應用性能監控平台了,是為了幫助開發者監測app應用使用的。它可以實時監測到app性能方面的問題,定位到問題所在處,開發者可以針對問題進行解決並修復。

    友盟還通過輕量級的集成接入即可擁有實時、可靠、全面的應用崩潰、ANR、自定義異常等捕獲能力,及卡頓、啟動分析等性能能力,支持多場景、多通道智能告警監控,幫助開發者高效還原異常、卡頓用戶的訪問路徑和業務現場,縮短故障排查時間。

    另外,友盟還提供了雲真機測試能力,提供了海量Android、iOS真機,通過資源集中管理,合理調度分配,為開發者提供發版前測試、發現線上問題後復現等場景使用,助力開發者平衡成本與需求,提升研發效率。助力開發者從研發測試質量驗收到線上問題復現排查,保障應用品質,提升測試效率。在雲真機測試期間自動採集崩潰信息,提供詳盡的崩潰報告協助篩查,真正實現監控測試全流程深度打通。為移動開發者提供了靈活地測試操作界面,支持ADB調試、WEB遠程調試、掃碼、抓包、虛擬定位等測試功能,並提供了測試報告供開發者後續查看。

    友盟作為一款監測工具,可以幫助各位開發者監測app性能問題,還可以減輕開發者的負擔和壓力,簡直就是開發者的「得力小幫手」!

    ⑻ android 性能優化,怎麼保證應用啟動不卡頓

    手機卡頓主要是手機的空間不足,所有需要使用騰訊手機管家這類清理力度比較大的清理軟體來進行清理,點擊垃圾掃描來對手機上面的各類垃圾進行掃描,之後一鍵進行清理,然後把手機上面沒用的軟體和圖片都刪除了來釋放手機的空間,並且把手機上面的軟體搬家到內存卡上面,這樣手機的運行就很流暢了。

    ⑼ 安卓APP性能優化都涉及哪些方面

    以下優化都是在獲取到Root後進行的。 Build.prop (編輯/system/build.prop 文件(需要root, 可以用文件管理器或者其他root explorer),re管理器如果build.prop裡面有這些參數,只需要把數值更改。 1. 強制把Home程序駐入內存 ro.HOME_APP_ADJ=1 2.提高 JPG 質量為 100% ro.media.enc.jpeg.quality=100 3. VM 虛擬堆大小; 提高 RAM dalvik.vm.heap=48m 4. 使用 GPU 渲染UI debug.sf.hw=1 5. 減少撥號後出現的延時 ro.telephony.call_ring.delay=0 6.提高滑動響應 windowsmgr.max_events_per_sec=150 7.電池優化 wifi.supplicant_scan_interval=180 pm.sleep_mode=1 ro.ril.disable.power.collapse=0 8. 禁止調試通知圖標出現在狀態欄處 persist.adb.notify=0 9. 提高全局觸摸屏響應 debug.performance.tuning=1 video.accelerate.hw=1 10. 提高圖片和攝像質量 ro.media.dec.jpeg.memcap=8000000 ro.media.enc.hprof.vid.bps=8000000 11. (3G) 信號優化 ro.ril.hsxpa=2 ro.ril.gprsclass=10 ro.ril.hep=1 ro.ril.enable.dtm=1 ro.ril.hsdpa.category=10 ro.ril.enable.a53=1 ro.ril.enable.3g.prefix=1 ro.ril.htcmaskw1.bitmask=4294967295 ro.ril.htcmaskw1=14449 ro.ril.hsupa.category=5 12. 網路速度優化 net.tcp.buffer.default=4096,87380,256960,4096,16384,256960 net.tcp.buffer.wifi=4096,87380,256960,4096,16384,256960 net.tcp.buffer.umts=4096,87380,256960,4096,16384,256960 net.tcp.buffer.gprs=4096,87380,256960,4096,16384,256960 net.tcp.buffer.edge=4096,87380,256960,4096,16384,256960 13. 禁止撥號後出現黑屏 ro.lge.proximity.delay=25 mot.proximity.delay=25 14.修復應用程序出現問題 ro.kernel.android.checkjni=0 15.不通過按加/減音鍵喚醒手機 ro.config.hwfeature_wakeupkey=0 16.屏幕點亮時強制開啟功能鍵背光 ro.mot.buttonlight.timeout=0 17.不顯示開機動畫(system/media/bootanimation.zip動畫將不顯示,加速開機速度) debug.sf.nobootanimation=1 18.其他優化 ro.config.hw_menu_unlockscreen=false persist.sys.use_dithering=0 persist.sys.purgeable_assets=1 dalvik.vm.dexopt-flags=m=y ro.mot.eri.losalert.delay=1000

    ⑽ android 性能優化有哪些辦法

    性能優化的常用方法

    主要內容包括布局優化,繪制優化,內存泄露優化,相應速度優化,ListView優化,Bitmap優化,線程優化等,下面主要給你舉了其中的幾個例子:

    (1)布局優化

    布局優化的思想很簡單,就是盡量減少布局文件的層級。

    如何進行優化呢?首先刪除布局中無用的控制項和層級,其次有選擇地使用性能較低的ViewGroup,比如LinearLayout。如果布局中有的布局既可以用LinearLayout也可以用RelativeLayout,那就用LinearLayout,這是因為RelativeLayout比較復雜,他的布局過程花費更多的CPU時間。FrameLayout和LinearLayout一樣都是一種簡單高效的ViewGroup,因此可以考慮使用他們,但是很多時候,單純的通過一個LinearLayout或者FrameLayout無法實現產品的效果,需要通過嵌套的方式來完成,這種情況建議採用RelativeLayout,因為ViewGroup的嵌套就相當於增加了布局的層級,同樣會降低程序的性能。

    布局優化的另一種手段是採用<include>標槍,<merge>標簽和ViewStub。<include>標簽主要用於布局重用,<merge>標簽一般和<include>配合使用,它可以減少布局的層級。而ViewStub則提供了按需載入功能,當需要時才將ViewStub中的布局載入到內存,這提高了程序的初始化效率。

    (2)繪制方法

    繪制優化是指View的onDraw方法避免執行大量的操作,這主要有兩方面。

    首先,onDraw中不要創建新的布局對象,這是因為onDraw方法可能會被頻繁調用,這樣就會在一瞬間產生大量的臨時對象,這不僅佔用了過多的內存而且還會導致系統更加頻繁的gc,降低了程序的執行效率。

    另一方面,onDraw方法中不要做耗時的任務,也不能執行成千上萬次循環操作,盡管每次循環都很輕量級,但是大量的循環仍然十分搶佔CPU的時間片,這會造成View的繪制過程不流暢。

    (3)內存泄露優化

    內存泄露在開發過程中是一個需要重視的問題,但是由於內存泄露問題對開發人員的經驗和開發意識要求比較高,因此這是開發人員最容易犯的錯誤之一。內存泄露的優化分為兩個方面,一方面是在開發過程中避免寫出內存泄露的代碼,另一方面通過一些分析工具比如MAT來找出潛在的內存泄露繼而解決。

    關於性能優化的建議

    1.避免黃健過多對象;

    2.不要過多使用枚舉,枚舉佔用的內存空間比整型大一些。

    3.常量使用staticfinal來修飾。

    4.使用一些Android特有的數據結構,比如SpareArray和Pair等,他們都具有更好的性能。

    5.適當使用軟引用和弱引用。

    6.採用內存緩存和磁碟緩存

    7.盡量採用靜態內部類,這樣可以避免潛在的內部類而導致的內存泄漏。

    閱讀全文

    與androidapp性能優化相關的資料

    熱點內容
    phpurl中文亂碼問題 瀏覽:889
    程序員那麼可愛大結局陸漓產子 瀏覽:534
    java如何從雲伺服器讀取本地文件 瀏覽:915
    壓縮空氣軟管製作方法 瀏覽:907
    天河三號演算法 瀏覽:924
    php隊列教程 瀏覽:632
    洪水命令 瀏覽:529
    安卓怎麼弄成蘋果在線 瀏覽:435
    谷歌web伺服器地址 瀏覽:898
    安卓鎖屏圖片如何刪除 瀏覽:719
    python3多進程編程 瀏覽:714
    證明代碼是程序員寫的 瀏覽:397
    演算法錯誤發現辦法 瀏覽:410
    河南省醫院掛號是哪個app 瀏覽:629
    冬日戀歌哪個APP能看 瀏覽:673
    委內瑞拉加密貨 瀏覽:10
    程序員寫日記哪個軟體好 瀏覽:108
    加密機操作手冊 瀏覽:860
    dos命令自動關閉 瀏覽:328
    心田花開app在哪裡評價 瀏覽:449