Android 性能优化的一些小tip

和你一起终身学习,这里是程序员 Android

本篇文章主要介绍 Android 开发中的部分知识点,通过阅读本篇文章,您将收获以下内容:

一、Pinner service 配置优化
二、关闭 WIFI Debugging优化
三、默认关闭BT、关闭自动旋转
四、默认值使用32为程序
五、AMS 部分的参数调整
六、屏幕输出帧率优化
七、滑动帧速率低问题优化方案
八、文件系统优化
九、关闭 Dm_verity 功能
十、优化 Touch boost 功能

一、Pinner service 配置优化

修改 /frameworks/base/core/res/res/values/config.xml
添加如下代码:


... ...
   
    
     "/system/framework/arm/boot-framework.art"
     "/system/lib/libjavacrypto.so"
     "/system/lib/libhidltransport.so"
     "/system/framework/arm/boot-core-libart.oat"
     "/system/framework/arm/boot-conscrypt.oat"
     "/system/framework/arm/boot-core-libart.art"
     "/system/framework/arm/boot-ext.art"
     "/system/framework/arm/boot.art"
     "/system/framework/arm/boot-framework.art"
    
... ...
 

二、关闭 WIFI Debugging

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


false
64

三、默认关闭BT、关闭自动旋转

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

 
 
 ... ... 
 false
 
 false
 ... ...
 

四、默认值使用32为程序

TARGET_ARCHTARGET_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 为 15
private static final int MINIMUM_FLING_VELOCITY = 60; //设置为 60

八、文件系统优化

对应低内存设备,建议更改userdata 分区格式为f2fs格式,减小系统开销。
修改方案如下:
device\xxx\xxxx_项目\BoardConfig.mk

TARGET_USERIMAGES_USE_F2FS := true
BOARD_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

友情推荐:
Android 干货分享

至此,本篇已结束,如有不对的地方,欢迎您的建议与指正。同时期待您的关注,感谢您的阅读,谢谢!

你可能感兴趣的:(Android 性能优化的一些小tip)