赞
踩
删除不需要的节点
参考《kernel .config优化》 https://blog.csdn.net/mcsbary/article/details/90264591
开机启动后,查看/目录下的rc文件,确定不需要的服务,然后在源码中删除,再编译系统,验证系统的稳定性和在/目录下的rc文件中确认要删除的服务已不再
注意: 一些服务和其他模块有关联性,删除一个服务可能需要在其他模块中同步删除对已删除服务的依赖。
config.disable_location=true
config.disable_searchmanager=true
config.disable_samplingprof=true
config.disable_location=true
预加载类的作用
因此,预加载优化是一个双刃剑,优化的多了,开机速度会增大,但是会影响一些依赖已删除类的app的启动,且每一个app都会加载一份已删除的类,增加内存占用。
当我们使用Android开发的产品,仅在特定的场景使用,一些类就不需要加载,如蓝牙等模块。优化预加载衡量好性能的需求。
步骤如下:
除了直接修改预加载类文件,还可以修改生成预加载类的代码,重新生成预加载类文件
优秀博客:https://blog.csdn.net/u014029448/article/details/81129382
类和资源预加载优化:https://blog.csdn.net/jinron10/article/details/89315392
android启动速度优化:https://blog.csdn.net/chenyong19870904/article/details/12912093
Android开机速度优化简单回顾:https://blog.csdn.net/freshui/article/details/53700771
一个开源项目:
https://gitee.com/luckybilly/PreLoader
参考《内存优化–减少字库缓存》https://blog.csdn.net/mcsbary/article/details/89363082
预加载优化和内存优化存在一定的冲突,选在了快速启动,开机后进程加载的资源就会多份。需要合理衡量需求。
合理设计布局和严格按照分辨率设计图片。
java层:不合理引用导致内存泄漏
C++层:分配内存没有释放
这是比较常见的两种内存泄漏,都可以通过煲机,分析PSS、RSS等分析出来内存是否泄漏。在长时间,大数据下,一点泄漏会被放大。
内存压缩,增加了内存的使用率,但是一定成都上增加了kernel的负载,在cpu资源方面的占用会有一定成都的增加,如果cpu性能不是特别强劲,会影响运行性能,影响体验感。
该策略或许可以在高性能cpu配低内存情况下使用,不影响性能,还可以节省内存。
关闭内存压缩
在Android 7.1已使用,在kernel中关闭ION,开机系统会起不来
在Android运行时,jit会对运行性能,根据实际运行情况,做一些优化。关闭git在一定成都上节省内存,在性能不强劲的cpu下,性能会有很大影响
build/target/product/runtime_libart.mk:60: dalvik.vm.usejit=false \
build/target/product/runtime_libart.mk:61: dalvik.vm.usejitprofiles=false \
配置系统属性使用low_mem,会关闭系统一些feature
ro.config.low_ram=true
linux 临时释放缓存:https://blog.csdn.net/killvoon/article/details/73557939
该策略,在释放缓存的瞬间,对系统性能有一定的影响,若影响有限,可以接受;谨慎使用
脚本资源:https://download.csdn.net/download/mcsbary/12200703
打开kernel的lowMemKiller机制
Android lmkd:https://blog.csdn.net/mcsbary/article/details/89323232
曾经做裁剪的测试记录,按照现在深入的理解,有一些不准确,参考还是可以的。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。