想要絲綢般順滑的系統執行,千萬別錯過這些Android 效能最佳化的小貼士

yilian發表於2019-12-23

在不影響系統執行正確性的前提下,使之執行地更快,完成特定功能所需的時間更短。這樣我們就要進行效能最佳化,我就來給大家講一些Android 效能最佳化的小tip

還有,Android學習PDF+原始碼筆記+面試文件+進階影片的學習集合,可以 點這裡無償贈送

資料.png
資料.png

一、Pinner service 配置最佳化

修改  /frameworks/base/core/res/res/values/config.xml
新增如下程式碼:

<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">... ...   <!-- Default files to pin via Pinner Service -->
    <string-array translatable="false" name="config_defaultPinnerServiceFiles">
     <item>"/system/framework/arm/boot-framework.art"</item>
     <item>"/system/lib/libjavacrypto.so"</item>
     <item>"/system/lib/libhidltransport.so"</item>
     <item>"/system/framework/arm/boot-core-libart.oat"</item>
     <item>"/system/framework/arm/boot-conscrypt.oat"</item>
     <item>"/system/framework/arm/boot-core-libart.art"</item>
     <item>"/system/framework/arm/boot-ext.art"</item>
     <item>"/system/framework/arm/boot.art"</item>
     <item>"/system/framework/arm/boot-framework.art"</item>
    </string-array>... ... </resources>

二、關閉 WIFI Debugging

修改  frameworks/base/core/res/res/values/config.xml

<bool translatable="false" name="config_wifi_enable_wifi_firmware_debugging">false</bool><integer translatable="false" name="config_wifi_logger_ring_buffer_verbose_size_limit_kb">64</integer>

三、預設關閉BT、關閉自動旋轉

修改 frameworks/base/packages/SettingsProvider/res/values/defaults.xml

 <?xml version="1.0" encoding="utf-8"?>
 <resources>
 ... ... 
 <bool name="def_bluetooth_on">false</bool>
 <!-- Do not enable auto rotation switching. -->
 <bool name="def_accelerometer_rotation">false</bool>
 ... ... </resources>

四、預設值使用32為程式

TARGET_ARCH 和  TARGET_ARCH_VARIANT 宣告為 32 位架構,同時不要宣告
TARGET_2ND_ARCH或者  TARGET_2ND_ARCH_VARIANT
同時配置  zygote32-bit:

 PRODUCT_DEFAULT_PROPERTY_OVERRIDES += ro.zygote=zygote32

五、AMS 部分的引數調整

修改程式碼 frameworks\base\services\core\java\com\android\server\am\ActivityManagerConstants.java:
調整預設後臺最大快取程式數為 16:

private static final int DEFAULT_MAX_CACHED_PROCESSES = SystemProperties.getInt("ro....s.fw.bg_apps_limit",16);

六、螢幕輸出幀率最佳化

首先保證 NUM_FRAMEBUFFER_SURFACE_BUFFERS 值必須為  3,另外可調整  SurfaceFlinger buffer size,例如:
修改 frameworks\native\services\surfaceflinger\Layer.cpp檔案

將
mProducer->setMaxDequeuedBufferCount(2);
更改為
mProducer->setMaxDequeuedBufferCount(3)

七、滑動幀速率低問題最佳化方案

修改 Framework 下的view config 資訊,具體程式碼路徑為 frameworks\base\core\java\android\view\ ViewConfiguration.java

修改方案如下:

private static final int TOUCH_SLOP = 15;//設定 slop 為 15private static final int MINIMUM_FLING_VELOCITY = 60; //設定為 60

八、檔案系統最佳化

對應低記憶體裝置,建議更改userdata 分割槽格式為f2fs格式,減小系統開銷。
修改方案如下:
device\xxx\xxxx_專案\BoardConfig.mk

TARGET_USERIMAGES_USE_F2FS := trueBOARD_USERDATAIMAGE_FILE_SYSTEM_TYPE := f2fs

九、關閉 Dm_verity 功能

對於低記憶體裝置,Google 官方建議關閉 dm_verity 功能。
關閉方法如下:

1.修改  device\xxx\xxxx_專案\xxx_專案.mk

關閉 dm_verity 宏開關

PRODUCT_SUPPORTS_VERITY := false //設定為 false

2.kernel 部分

刪除 dm_verity 宏開關支援。

CONFIG_DM_VERITY=y //刪除這條宏

3.system 分割槽引數修改

在對應 system 分割槽掛載的引數去掉 verify 屬性,例如:

/dev/block/bootdevice/by-name/system /system ext4 ro,barrier=1 wait,verify //去掉verify屬 性

分割槽的掛載一般是在 fstab.qcom 中實現。
8909go 的專案需要單獨在 kernel 對應的 dtsi 檔案中對應的分割槽刪除 verify 屬性,修改後的內
容如下:

system {
compatible = "android,system";
dev = "/dev/block/platform/soc/7824900.sdhci/by-name/system";type = "ext4";
mnt_flags = "ro,barrier=1";
fsmgr_flags = "wait";
status = "ok";
};

十、最佳化 Touch boost 功能

對於 SmartPhone 可以開啟 Touch boost,提升應用啟動速度,開啟方法如下:
修改 kernel/msm-4.4/drivers/cpufreq/cpu-boost.c程式碼
相關變數如下:

/sys/module/cpu_boost/parameters/input_boost_freq /sys/module/cpu_boost/parameters/input_boost_ms /sys/module/cpu_boost/parameters/sched_boost_on_input

開啟方法如下:

1. kernel 部分:

kernel config: CONFIG_CPU_BOOST=y 
defconfig file: kernel/msm-4.4/arch/arm64/configs/xxx_defconfig

2.init.rc 中新增以下內容:

echo 0:1747200 1:1747200 2:1747200 3:1747200 4:1747200 5:1747200 6:1747200 7:1747200 > 
/sys/module/cpu_boost/parameters/input_boost_freq
image
image

最後

如果上面幾點還無法滿足,可以看這本《Android應用效能最佳化》

效能.png
效能.png

需要PDF版的朋友,可以私信我贈送

效能最佳化.png
效能最佳化.png


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69952849/viewspace-2670130/,如需轉載,請註明出處,否則將追究法律責任。

相關文章