1. 程式人生 > >Android系統的效能調優引數介紹

Android系統的效能調優引數介紹

在Android系統中有一個類似Windows系統登錄檔的檔案build.prop。這個檔案內定義了系統初始(或永久)的一些引數屬性、功能的開放等。通過調整/增加引數可以達到較調系統性能偏重點和附加功能開啟的作用。
在Android 2.2、2.3、4.0中雖然每一版都有自己獨有的引數,但絕大部分都是通用的,且可以起到關鍵性作用的。本文將以摩托手機Android 2.3系統為例,對Build.prop中常用的引數進行詳解,供廣大機友對自己的系統做較調。
本教程將分為5期,第一期是Dalvik虛擬機器相關引數,第二期是系統版本、定義相關引數,第三期是基本效能相關引數,第四期是基本耗電相關引數,第五期是擴充套件效能較調及附加功能開啟。


第一期:Dalvik虛擬機器相關的引數屬性。
Dalvik虛擬機器是Android作業系統的核心,是一切應用程式的基礎。所有程式在執行時均有Dalvik虛擬機器對其進行解析和執行。
dalvik.vm.startheapsize,本引數控制Dalvik虛擬機器在啟動一個應用程式之後為其分配的初始堆疊大小,可填寫的值為2m~48m。
例如:dalvik.vm.startheapsize=8m,就表示應用程式啟動後為其分配的初始堆疊大小為8兆位元組。
這裡分配的記憶體容量會影響到整個系統對RAM的使用程度,和第一次使用應用程式時的流暢程式。這個值越大,系統消耗RAM則越快,但是應用程式開啟後的反應也越快。值越小,系統的RAM剩餘則越多,但是程式在啟動後會很卡。

建議值是8m,既可以保持140M左右的RAM,程式的反應速度也會大幅度提高。
dalvik.vm.heapsize,本引數控制Dalvik虛擬機器給一個應用程式分配的最大堆疊量,可填寫的值為12m~48m。
例如:dalvik.vm.heapsize=48m,就表示應用程式在任意時刻內可以使用的最大堆疊大小為48兆位元組。
這裡分配的記憶體容量會影響到整個系統對RAM的使用程式,和程式在執行一段時間後的反應速度。這個值越大,系統消耗RAM則越快,但是程式會執行的非常穩 定,尤其是遊戲和視訊程式的內容載入速度可以大幅度提升。值越小,系統的RAM剩餘則越多,但是程式會很卡,尤其是遊戲在切換場景Loading的時候會 花費很多的時間。若應用程式需要使用超過這個值的記憶體時,將會觸發系統的垃圾收集器,系統和程式就會卡頓。

建議值是40~40m。
dalvik.vm.lockprof.threshold,本引數控制Dalvik虛擬機器除錯記錄程式內部鎖資源爭奪的閾值,預設值是500。多用於程式的資料統計,對效能較調意義不大。
dalvik.vm.stack-trace-file,本引數控制Dalvik虛擬機器的堆疊記錄除錯檔案。用於系統除錯,一般使用者對其調整無意義。
dalvik.vm.execution-mode,本引數控制Dalvik虛擬機器的程式執行機制。可填寫的值有”int:portable”、”int:fast”和”int:jit”。
int:portable表示以相容模式執行(指令碼翻譯模式),此模式下程式的相容性最高,但其執行效率最低(程式優化度依賴於dalvik虛擬機器版本)。官方預設此模式。
int:fast表示以快速自優化模式執行(指令碼翻譯和預優化混合),此模式下程式的相容性很高,執行效率也比較高。因為此時dalvik虛擬機器允許程式使用自己的預定義優化模式和程式碼(包括C/C++/彙編程式碼)。推薦使用。
int:jit表示以Just-In-Time模式執行(JIT模式),此模式下程式的相容性最差,但程式一旦載入後其執行效率最高(與C/C++直接編 寫的程式效率無異),因為在此模式下dalvik虛擬機器會預先將Java程式翻譯成針對機器平臺的本地語言(Native),同時完全允許程式碼中的所有預 優化和程式碼,允許所有不安全的非託管程式碼,同時不嚴謹的程式如果執行在JIT模式可能會造成記憶體洩露。但要注意,很多Dalvik虛擬機器並不支援此模式 (如官方2.2)。
dalvik.vm.dexopt-flags,本引數控制Dalvik虛擬機器的程式程式碼校驗和優化。可填寫的值有m、v和o。
m為標準選項,可以是m=y或m=n。若m=y則啟用不安全程式碼的校驗和託管程式碼的優化。相容性和安全性最高,推薦使用。
v為校驗選項,可與o並存。可以是v=a或v=n。若v=a則表示校驗所有程式碼,v=n則關閉程式碼的校驗。
o為優化選項,可與v並存。可以是o=v或o=a。若o=v則表示優化以校驗過的程式碼,o=a則表示優化所有程式碼。
例如:
dalvik.vm.dexopt-flags=m=y
dalvik.vm.dexopt-flags=v=n,o=v
注意,這個引數只會影響到安裝APK之後或初次使用APK時生成dex檔案時有效。若整個系統(包括應用程式)為odex化,則無意義。
dalvik.vm.verify-bytecode,本引數控制Dalvik虛擬機器是否驗證應用程式的可執行程式碼。可以與上一個引數配合使用。可填寫的值為true和false。
其具體意義與dalvik.vm.dexopt-flags的v=n一模一樣。但可以與dalvik.vm.dexopt-flags配合使用以取得更好的效果。
例如:
dalvik.vm.dexopt-flags=v=n,o=v
dalvik.vm.verify-bytecode=false
這樣可以令後來安裝的apk檔案可以被優化而不被檢驗。
dalvik.vm.checkjni,本引數控制Dalvik虛擬機器在呼叫外部jni連結庫的時候是否對其做安全性檢驗。可填寫的值為true和false。
此引數會覆蓋ro.kernel.android.checkjni。
若值為true,會增加程式的相容性和穩定性,但也會增加其載入和執行的時間。推薦為false。
dalvik.vm.deadlock-predict,本引數控制Dalvik虛擬機器對程式死鎖預測處理。可填寫的值有off、warn和err。
off表示關閉死鎖預測功能(預設設定)。
warn表示在繼續程式執行的同時只記錄該死鎖預測(如果為真死鎖就會出現程式假死現象,然後等N久出現關閉)。
err表示預測到死鎖時馬上彈出FC。
注意:有些Dalvik虛擬機器版本並不支援此引數。
總結:
對於本期此處給出三種常用的配置(以Defy為機型)。
超級急速流暢型:
dalvik.vm.startheapsize=16m
dalvik.vm.heapsize=48m
dalvik.vm.execution-mode=int:jit
dalvik.vm.dexopt-flags=v=n,o=v
dalvik.vm.verify-bytecode=false
dalvik.vm.checkjni=false
常用穩定加流暢型:
dalvik.vm.startheapsize=8m
dalvik.vm.heapsize=40m
dalvik.vm.execution-mode=int:fast
dalvik.vm.dexopt-flags=m=y
dalvik.vm.verify-bytecode=false
dalvik.vm.checkjni=false
超級穩定大記憶體型:
dalvik.vm.startheapsize=4m
dalvik.vm.heapsize=30m
dalvik.vm.execution-mode=int:portable
dalvik.vm.dexopt-flags=v=a,o=v
dalvik.vm.verify-bytecode=true
dalvik.vm.checkjni=true


第二期:系統版本、定義等引數。
本期將介紹系統版本、定義等相關引數。主要用於定義系統版本特徵字串,OTA字串等。由於較少用到,因此只粗略介紹。
ro.build.id,本引數定義了系統的版本ID。為系統內部使用,OTA時作為粗略版本比較。更改後可避免OTA提示,但可能會引起預裝程式(如Blur)的穩定性。
ro.build.display.id,本引數定義了設定中顯示的系統版本號。主要用於設定中顯式出現可讀版本,一般用於個性化定製和第三方應用程式對系統版本的判斷(如魔趣設定)。更改後可自定義版本顯示,但某些第三方應用程式會出現錯誤(如魔趣設定無法實現機器保修查詢)。
ro.build.version.incremental,本引數定義了系統的升級字。主要用於系統OTA精確版本比對,同時與ro.build.description和ro.build.fingerprint相匹配。更改後可以免OTA提示(如避免Miui的升級提示和Blur的升級提示)。
ro.product.model,本引數定義了機器的型號字串。主要用於機器型號顯式定義(如系統設定中的手機型號和Blur、Google設定嚮導中的機型等)。更改後可自定義手機型號名稱。
ro.product.locale.language,本引數定義了系統的初始(預設)語言。此處注意是語言,如中文是zh,英文是en。更改後改變系統初次啟動時的語言設定。
ro.product.locale.region,本引數定義了系統的初始(預設)區域。此處注意是區域,如中國大陸為CN,臺灣為TW,美國為US。更改後改變系統初次啟動時的區域設定。
ro.build.description和ro.build.fingerprint均為ROM的編譯綜合說明。其中包含了平臺硬體、Android版本、原始碼分支和標籤、OTA詳細版本等。
其中的OTA部分,例如:
umts_jordan_china-user 2.3.6 4.5.3-109_DPP-14 1323416413 release-keys
將此數字與ro.build.version.incremental一同更改可避免OTA升級提醒(如Miui和Blur等)。

第三期:基本效能相關引數。
本期將介紹與系統性能(流暢操作體驗、功能速度、記憶體管理等)相關的引數屬性和其調整方法。
雖然Defy的CPU只有800MHz,雖然Defy的RAM只有512MB,雖然摩托官方的系統優化很差,但通過本期的引數調整,依然可以獲得不俗的效能。
windowsmgr.max_events_per_sec,本引數定義了Android系統的窗體事件管理器在單位時間內可以處理的最大事件數量。通過更改本引數可以獲得非常明顯的絲滑流暢體驗。可填寫的值範圍為”大於0的正整數”,官方預設為60。建議150、200、260、300這幾個值。
當此值變大時,系統觸控平滑度明顯提高,但對應的CPU使用率也會升高,最終的結果就是電池續航能力下降。
以我個人的經驗來說,此值取到240左右時在系統設定中滑動可以得到接近WP7的流暢和平滑度。
ro.min_pointer_dur,本引數定義了兩次觸控之間的最短時間間隔,單位是毫秒。預設值為25,推薦值是10。通過調整此引數可以提高系統觸控的靈敏度或穩定度。
當此值越大時,觸控越穩定。此值越小,觸控越靈敏。
mot.proximity.delay,本引數定義了手機光纖感應器的抖動消除時間,單位是毫秒。預設值是500,推薦值是250。通過調整此引數可以提高在通話結束後螢幕點亮的速度。
當此值越大時,通話結束後螢幕點亮所需要的時間越長,但在通話過程中如果手機意外瞬間離開臉部也不會點亮螢幕,可防止通話過程中的誤操作(比方說通話時不 小心手機移動了一下,螢幕就會點亮,此時如果臉部觸碰到了螢幕就會對通話造成影響)。此值越小,則當手機離開臉部或裝入口袋後會立即點亮或關閉螢幕。
mot.proximity.distance,本引數定義了手機螢幕上的兩個觸控點之間的最短距 離,若距離小於此值則認為是一個觸控點,單位是畫素。預設值是60,推薦值是100。為什麼推薦100呢?因為Defy的螢幕解析度為480×854,也 就是說橫向有480個畫素點,對應上去也就相當於是橫向並排允許4個觸控點,平均一個手指一個點,這樣在類似於殺西瓜等遊戲中可以提升遊戲操作。
ro.kernel.android.checkjni,本引數定義了Dalvik虛擬機器在執行程式的時候是否要做Jni連結庫的檢查工作。詳細見Dalvik引數屬性期。若考慮穩定性可使用true,若需要效能可使用false。注意:此引數會被Dalvik引數覆蓋。
ro.media.enc.jpeg.quality,本引數定義了JPEG影象編碼器所使用的質量因子,可填寫的值為1~100,預設為80,推薦為100。想照出更好的照片嗎?想讓照片的大小輕鬆上M嗎?那就使用100吧。
debug.sf.hw,本引數定義了系統是否啟用GPU來渲染程式的UI,預設為0,推薦為1。
但要注意,如果此值為1,在某些應用程式中可能會出現顯示錯亂的現象(極少見)。
persist.sys.use_dithering,本引數定義了系統渲染器對影象的縮放是否啟用抖動技術。可填寫的值為0或1。
當開啟抖動後,影象的顯示(指背景、解鎖等的影象,並非相簿、相機那些的)會很柔和,但會增加CPU負載,最終導致ROM卡頓。
persist.sys.purgeable_assets,本引數定義了系統是否可以清除暫時不用的資料以釋放更多的RAM。可填寫的值為0或1。
當值為1時,系統會定期清理不用的資料以釋放更多的RAM,同時作為代價就是下次啟動程式或遊戲載入資料會變慢。
video.accelerate.hw,本引數定義了系統是否對視訊啟用硬體加速功能。這裡的視訊指代螢幕上顯示的東西,不僅僅是”電影視訊”。可填寫的值為0或1。
需要注意的是:摩托官方的2.2和2.3系統對此功能支援的不是很好,開啟後有時反而會降低系統流暢度。但CM系統絕對建議開啟。
debug.performance.tuning,本引數定義了系統是否針對性能做較調。可填寫的值為0或1。
需要注意的是:摩托官方的2.2和2.3系統對此功能支援的不是很好,開啟後有時反而會降低系統流暢度。但CM系統絕對建議開啟。
*******************************
ro.HOME_APP_ADJ
ro.FOREGROUND_APP_ADJ
ro.VISIBLE_APP_ADJ
ro.PERCEPTIBLE_APP_ADJ
ro.HEAVY_WEIGHT_APP_ADJ
ro.SECONDARY_SERVER_ADJ
ro.BACKUP_APP_ADJ
ro.HIDDEN_APP_MIN_ADJ
ro.EMPTY_APP_ADJ
*******************************
以上引數定義了各種應用程式的管理機制,這些並非一兩句話可以說清楚的,想深究的同學可以Google一下OOM Killer。
可填寫的值為整數。這裡只給出值的規律,0代表降低程序的優先順序且駐留記憶體,1代表駐留記憶體,4代表快取較多的記憶體,15代表儘量快取記憶體。也就是說記憶體快取器是按照ADJ從大到小來進行快取的。
大家可根據自系統中自己對各種應用程式的要求進行更改。
以下給出一個經典用例:
ro.FOREGROUND_APP_ADJ=0       前臺程式駐留記憶體(不快取)
ro.VISIBLE_APP_ADJ=1        可見的程式駐留記憶體(不快取)
ro.PERCEPTIBLE_APP_ADJ=2        快取的RAM多一些
ro.HOME_APP_ADJ=3        桌面程式,快取的RAM稍多一些
ro.HEAVY_WEIGHT_APP_ADJ=4        快取的RAM再多一些
ro.SECONDARY_SERVER_ADJ=5        快取的RAM再再多一些
ro.BACKUP_APP_ADJ=6       快取的RAM再再再多一些
ro.HIDDEN_APP_MIN_ADJ=7        隱藏的程式,根據程式的型別進行記憶體管理,最低為快取的RAM再再再再多一些,最高就是直接快取記憶體。
ro.EMPTY_APP_ADJ=15        已經退出的程式,直接快取記憶體
*******************************
ro.FOREGROUND_APP_MEM
ro.VISIBLE_APP_MEM
ro.PERCEPTIBLE_APP_MEM
ro.HEAVY_WEIGHT_APP_MEM
ro.SECONDARY_SERVER_MEM
ro.BACKUP_APP_MEM
ro.HOME_APP_MEM
ro.HIDDEN_APP_MEM
ro.CONTENT_PROVIDER_MEM
ro.EMPTY_APP_MEM
*******************************
以上引數定義了各種型別的應用程式在記憶體緩衝的大小,單位是頁,應用上面ADJ引數相對應。
下面給出一個經典用例:
ro.FOREGROUND_APP_MEM=1280
ro.VISIBLE_APP_MEM=2560
ro.PERCEPTIBLE_APP_MEM=3840
ro.HEAVY_WEIGHT_APP_MEM=6400
ro.SECONDARY_SERVER_MEM=7680
ro.BACKUP_APP_MEM=8960
ro.HOME_APP_MEM=5120
ro.HIDDEN_APP_MEM=12800
ro.CONTENT_PROVIDER_MEM=15360

ro.EMPTY_APP_MEM=20480

第四期:基本耗電相關引數
本期將介紹與ROM耗電相關的引數和屬性。通過調節各種引數可以達到節電等的目的。
wifi.supplicant_scan_interval,本引數定義了Wifi掃描已儲存節電的時間間隔。當點亮螢幕或開啟Wifi時,系統會不停的掃描環境中是否存在已經儲存的Wifi節點,當發現後則進行連線,而這個引數控制了每次掃描的時間間隔。單位是秒。取值範圍是正整數。官方預設為45,推薦180。

ro.mot.battmanager.wifictrl,本引數定義了電源管理模組對Wifi的控制。預設為0。當此值為1時可以明顯節電,但有時Wifi會出現不穩定的情況(不是所有ROM都如此)。

ro.mot.deep.sleep.supported,本引數定義了是否開啟摩托的“休眠”模式。取值為true或false。當值為true時,在電源選單中會出現“休眠”模式。此模式類似於電腦的睡眠,即將CPU等部件的電源全部關閉,只為RAM供電以儲存休眠前的系統狀態。耗電量比完全關機多一些,但可以做到瞬間開機。僅在官方ROM有效。

pm.sleep_mode,本引數定義了系統待機時的睡眠深度,在所有Android系統上有效。取值範圍是0~4,對應解釋如下。
0:強制關閉除RAM之外的所有部件,此狀態下最省電。Defy幾乎可以純待機3~4個禮拜。但是此模式與“休眠”類似,一旦進入之後射頻也會關閉,手機的2G/3G訊號也就斷了(語音和資料)。
1:讓ARM進入中斷觸發的待機(超低功耗)模式。與模式0相比,本模式下射頻不會關閉,而ARM可以通過軟體(鬧鈴)和硬體(來電)中斷來喚醒,因此耗電方面遠大於模式0,Defy可以純待機7天(不安裝任何軟體)。非常建議使用。
2:將所有應用程式掛起到後臺。與模式1相比,本模式下硬體幾乎不參與多少節電,耗電自然比模式1多很多。當應用程式被掛起後,CPU的負載會大幅度降低,從而節電。此模式下Defy純待機5天。
3:將CPU的頻率和電壓降至最低,低到主頻只有幾十MHz的水平,而此時CPU接受外部中斷(通過中斷來恢復頻率和電壓)。與模式2相比,本模式下CPU通過降頻和降壓參與了節電,因此本模式的耗電比模式2多了一點。Defy純待機約4~5天。本模式也是官方ROM和官方CM系統的預設值。
4:CPU接受外部中斷。與上述4個模式相比,此模式下幾乎不做任何節電,只是關閉了螢幕和按鍵背光而已。Defy純待機約2天。
將上述5個模式的節電按照星級來分就是,模式0和1為5顆星,模式2和3為3顆星,模式4為1顆星。
綜上所屬就是,模式0和模式1基本一樣,是靠完全關閉幾乎所有硬體部件來進行節電,省電效果最佳。模式2和模式3是靠調節CPU頻率來進行節電。
個人強烈推薦採用pm.sleep_mode=1,即省電又穩定。如果想用模式0但又擔心基帶射頻的同學可以繼續往下看,解決辦法在下面。

ro.ril.disable.power.collapse,本引數定義了是否禁止射頻參與電源休眠。取值是0或1。這個引數的使用需要與上一個引數相匹配(我看到很多ROM中的這兩個引數都是不匹配的,最終造成的效果就是點亮屏幕後訊號存在問題)。
當本引數為1的時候即射頻永遠開啟,為0的時候根據上一個引數pm.sleep_mode來判斷是否關閉射頻。永遠開啟射頻必然費電,但是如果射頻關閉,那手機就沒訊號了。
那麼當pm.sleep_mode=0的時候,上面說過,此時待機會關閉幾乎所有硬體部件,包括射頻。而此時如果ro.ril.disable.power.collapse=1,就會保持射頻的開啟(即使進入休眠模式也一樣)。這樣即使待機,手機也有訊號。
但是又存在這樣一個現象,在有些ROM中pm.sleep_mode=0會帶來更多的問題, 如睡死、亮屏後Wifi打不開、藍芽打不開等。
因此建議同學們可以先嚐試一下pm.sleep_mode=0和ro.ril.disable.power.collapse=1組合使用,看看是否有bug,如果沒有那自然使用此種模式,畢竟最省電了(極端省電)。
對於穩定與省電兼得,可使用如下組合:
pm.sleep_mode=1
ro.ril.disable.power.collapse=0
這樣射頻在pm.sleep_mode=1下不會被關閉,而進入休眠模式後射頻會關閉。

電量方面就先寫這些。通過調節本期引數可以做到待機只有1天~待機幾乎5天(安裝常用軟體)。
其他的例如射頻鎖休眠時間,資源分配優先順序等一些引數此處不再給出。主要原因是那些東西太過底層,說實話專門做射頻的工程師都不一定調的好。大家用起來容易被表象所迷惑,而且那些引數對節電用處不大,訊號強弱也可以切換基帶實現。望諸位諒解。

第五期:其他擴充套件效能較調及功能開關。
注意:本期所講的引數和屬性基本均和摩托有關。因此本期引數只可用在Moto機型的官方ROM之上(如Defy、Atrix、里程碑、刀鋒等)。
ro.sf.lcd_density,本引數定義了LCD螢幕的畫素密度,此值越大解析度越低,越小解析度越高。Defy的螢幕預設為240。

persist.mot.proximity.touch,本引數定義了是否啟用距離感應器,預設為1。當此值為0時距離感應器被禁用,但電池續航時間提高。

persist.mot.powerup.tone,本引數定義了開機音樂,可播放mp3和ogg格式檔案。若刪除此引數則沒有開機音。

persist.mot.usb.mediasync,本引數定義了USB連線後是否允許使用媒體同步功能。預設為1。

ro.mot.hw.dispbl.anim,本引數定義了是否啟用啟動動畫。預設本引數為註釋(註釋或1都表示開啟動畫)。若要禁用啟動動畫則讓本引數為0即可。

ro.camera.sound.forced,本引數定義了照相機是否允許靜音(2.3系統專有)。預設為註釋或1(為強制聲音)。當此引數為0時,則在照相機的選單中出現“靜音”的選項。

ro.mot.hw.crystaltalk,摩托麗音。

ro.media.camcorder.720p,本引數定義了720p錄影的引數,詳解如下:
例如:ro.media.camcorder.720p=3gp,m4v,30,10000000,aac,96000,44100,2
其中,3gp表示媒體容器,m4v表示視訊壓縮方式,30表示fps為30,10000000表示視訊編位元速率(即10Mbps的位元速率),aac表示音訊壓縮格式,96000表示音訊壓縮編位元速率(即96Kbps的位元速率),44100表示音訊編碼的取樣率(即44.1kHz),2表示為音訊立體聲。
視訊位元速率越高最終的錄影質量越好,但佔用的空間越大。

ro.media.camcorder.d1NTSC,本引數定義了D1(寬屏)錄影的引數,同上。
ro.media.camcorder.vga,VGA質量的錄影,同上。
ro.media.camcorder.cif,CIF質量的錄影,同上。
ro.media.camcorder.qvga,QVGA質量的錄影,同上。
ro.media.camcorder.mms,彩信的錄影質量,同上。
ro.media.camcorder.mmsres,本引數定義了彩信中的使用哪種格式的錄影。預設為qvga。

ro.media.enc.aud.fileformat,系統預設錄音程序錄制的音訊容器格式,預設為3gp。
ro.media.enc.aud.codec,系統預設錄音程序錄制的音訊編碼格式,預設為amrnb。為了提高錄音質量,可以採用aac。
ro.media.enc.aud.bps,錄音的位元速率,預設為12200,即12Kbps。為了提高錄音質量,可以採用96000。
ro.media.enc.aud.ch,錄音的通道數量,預設為1(即單聲道)。為了提高錄音質量,可以採用2(即立體聲)。
ro.media.enc.aud.hz,錄音的取樣率,預設為8000(即8kHz)。為了提高錄音質量,可以採用44100。

ro.media.dec.aud.wma.enabled,是否令安卓的媒體模組支援wma的播放,建議為1。
ro.media.dec.aud.flac.enabled,是否令安卓的媒體模組支援flac的播放,建議為1。
ro.media.dec.aud.ape.enabled,是否令安卓的媒體模組支援ape的播放,建議為1。
ro.media.dec.vid.wmv.enabled,是否令安卓的媒體模組支援wmv的播放,建議為1。
ro.media.dec.vid.avi.enabled,是否令安卓的媒體模組支援avi的播放,建議為1。
ro.media.dec.vid.flv.enabled,是否令安卓的媒體模組支援flv的播放,建議為1。
ro.media.dec.vid.qt.enabled,是否令安卓的媒體模組支援at的播放,建議為1。
ro.media.dec.vid.rm.enabled,是否令安卓的媒體模組支援rm的播放,建議為1。

ro.media.capture.flashIntensity,本引數定義了閃光燈LED的亮度級別,預設為41。不建議更改,防止燒燈。
ro.media.capture.torchIntensity,本引數定義了手電筒的亮度級別,預設為25,可以適當減小以便延長壽命。

相關推薦

Android系統效能調引數介紹

在Android系統中有一個類似Windows系統登錄檔的檔案build.prop。這個檔案內定義了系統初始(或永久)的一些引數屬性、功能的開放等。通過調整/增加引數可以達到較調系統性能偏重點和附加功能開啟的作用。在Android 2.2、2.3、4.0中雖然每一版都有自己

【不吹不黑】這應該是目前最系統Android 介面效能調資料了

一. Android渲染知識 1.1 繪製原理 Android系統要求每一幀都要在 16ms 內繪製完成,平滑的完成一幀意味著任何特殊的幀需要執行所有的渲染程式碼(包括 framework 傳送給 GPU 和 CPU 繪製到緩衝區的命令)都要在 16ms 內完成,保持流暢的體驗。這個速度

Android 介面效能調渲染+To檢測+OverDraw+Rendering

介面是 Android 應用中直接影響使用者體驗最關鍵的部分。如果程式碼實現得不好,介面容易發生卡頓且導致應用佔用大量記憶體。做 ROM 的公司更不一樣,預裝的應用一定要非常流暢,這樣給客戶或使用者的第一感覺就是快。又卡又慢的應用體驗,會影響客戶或使用者對產品的信心和評價,所以不可忽視。

Dubbo效能調引數及原理

Dubbo呼叫模型 常用效能調優引數 原始碼及原理分析 threads FixedThreadPool.java public Executor getExecutor(URL url) { Stri

Android系統性能調工具介紹

經作者授權,發表Tieto某青年牛的一篇《程式設計師》大作。Android系統性能調優工具介紹在軟體開發過程中,想必很多讀者都遇到過系統性能問題。而解決系統性能問題的幾個主要步驟是:測評:對系統進行大量

Android介面效能調手冊

一 Android渲染知識 1.1 繪製原理        Android系統要求每一幀都要在 16ms 內繪製完成,平滑的完成一幀意味著任何特殊的幀需要執行所有的渲染程式碼(包括 framework 傳送給 GPU 和 CPU 繪製到緩衝區的命令)

Android應用效能調的技術點

下面是收集的一些Android應用效能調優點:使用非同步 保持APP的高度響應,不要在UI執行緒做耗時操作,多使用非同步任務 使用執行緒時要做好執行緒控制;使用佇列、執行緒池 謹慎使用糟糕的AysncTask、Timer 警惕非同步任務引起的記憶體洩露 應該非同步任務分類,

Android 介面效能調

介面是 Android 應用中直接影響使用者體驗最關鍵的部分。如果程式碼實現得不好,介面容易發生卡頓且導致應用佔用大量記憶體。目錄一. Android渲染知識1.1 繪製原理1.2 掉幀1.3 為什麼是60Fps?1.4 垃圾回收1.5 UI 執行緒1.6 垂直同步1.7 U

5.JVM三大效能調引數:-Xms -Xmx -Xss

1.-Xss是對每個執行緒stack大小的調整。直接影響對方法的呼叫次數 測試結果: 測試程式碼: package com.dt.spark.jvm.basics; public class HelloStackOverFlow {private static int c

JVM效能調2:JVM效能調引數整理

關閉新生代收集擔保。 在一次理想化的minor gc中,Eden和First Survivor中的活躍物件會被複制到Second Survivor。然而,Second Survivor不一定能容納下所有從E和F區copy過來的活躍物件。為了確保minor gc能夠順利完成,GC需要在年老代中額外保留一塊

第5課:實戰演示JVM三大效能調引數:-Xms -Xmx -Xss

第3課: 1、應用程式是多執行緒的,多執行緒共享全域性共享記憶體空間,每個執行緒也有自己的記憶體空間, 執行緒與全域性共享記憶體空間怎麼互動呢? 執行緒如果要使用全域性共享變數,就將全域性共享變數拷貝過去,拷貝到執行緒的記憶體空間,交給執行緒的程式碼去處理,而不是直接去操

Android效能調工具TraceView介紹 (六)

Android效能優化系列彙總已完成,包括: Android自帶的TraceView堪比java的效能調優工具visualvm執行緒檢視,可以方便的檢視執行緒的執行情況,某個方法執行時間、呼叫次數、在總體中的佔比等,從而定位效能點。1、生成日誌

jvm工具介紹效能調

jvm工具 https://docs.oracle.com/javase/8/docs/technotes/tools/unix/ Jps Jstat Jinfo Jmap Jhat Jstack JConsole Jps (Java p

Android進階效能調;不可思議的OOM

前言; 本文發現了一類OOM(OutOfMemoryError),這類OOM的特點是崩潰時java堆記憶體和裝置實體記憶體都充足,下文將帶你探索並解釋這類OOM丟擲的原因。 文末有demo地址。 關鍵詞: OutOfMemoryError, OOM,pthread_create fa

Android APP全方位效能調之螢幕適配終結者

優點 1. 無侵入性 首先科普下 Android 中的一個長度單位:pt,它表示一個點,是螢幕的物理尺寸,其大小為 1 英寸的 1 / 72,也就是 72pt 等於 1 英寸(其實 Android 中還有比較少見的 in 和 mm 的長度單位)。而我本次的適配使用的單位恰好是 pt,所以對你

Android效能調;如何讓你的APK瘦身88%

隨著業務複雜度的逐漸增加,程式碼、資源也在不斷的增加,此時你的APP大小也在增加。從使用者層面來說,面對動輒幾十兆的APP來說在非WIFI情況下還是會猶豫要不要下載,不下載你就可能因此失去了一個使用者。從公司層面來講,流量就是錢,減少APP的大小就顯得尤為重要。從開發者層面上來講,你掌握了這個手藝也

Yarn 記憶體分配管理機制及相關引數配置(yarn效能調)

一、相關配置情況關於Yarn記憶體分配與管理,主要涉及到了ResourceManage、ApplicationMatser、NodeManager這幾個概念,相關的優化也要緊緊圍繞著這幾方面來開展。這裡還有一個Container的概念,現在可以先把它理解為執行map/redu

系統效能調工具Perf成功移植到龍芯處理器

http://www.loongson.cn/news/company/304.html 程式優化主要包括演算法優化、程式碼優化和系統級優化,Perf是Linux核心自帶的系統級效能調優工具,2.6.31核心開始引入,目的是實現硬體與操縱系統資源的高效利用。 Perf主要包括核心空間的Per

JVM效能調的6大步驟,及關鍵調引數詳解

JVM效能調優的6大步驟,及關鍵調優引數詳解 JVM效能調優方法和步驟 1.監控GC的狀態 2.生成堆的dump檔案 3.分析dump檔案 4.分析結果,判斷是否需要優化 5.調整GC型別和記憶體分配 6.不斷分析

系統技術非業餘研究 » Linux常用效能調工具索引

霸爺您好,麻煩請教個問題,我們最近一個專案上有個奇怪的問題,基於實時linux系統,兩個實時執行緒通過mq_send傳送訊息,A發訊息給B,是非阻塞的訊息佇列,A傳送訊息B進行處理,A傳送訊息後發現mq_send的開銷與B對該訊息的處理時延相關,也就是說B處理的快,那麼A呼叫的mq_send返回