android项目内存优化,资源优化着手点

本文分享了Android项目优化的七个关键点,包括Handler的正确使用、静态变量定义、循环性能对比、字符串处理技巧、CPU架构包的选择、布局优化及ConstraintLayout的使用,旨在提升应用性能与用户体验。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

就我当前项目android项目优化点进行了简单的列举,用到的优化点简单记录

一、Handler的引用

private final Handler mHandler = new Handler()的方式来执行异步操作,android studio总是会提示一个黄色的警告
不管有不有强迫症的人看到都会菊花一紧,经过官网介绍handler的引用应该使用如下格式

既然是官网推荐的方法肯定没问题,但是在我的业务场景中,这些使用多有不便,会有一些非静态变量在里面使用,强制使用的话会导致所有的非静态变量都 要加上static,最后我的解决办法是当前网络最牛逼的异步框架rxjava。

该方法中delay为rxjava中延时操作符,可以去掉此操作符。

二、静态变量的定义

这点其实是个人习惯问题,大家编码时注意避免使用static修饰变量

三、private public protect三种修饰词

对于java来说设计思想面向对象开发,访问成员变量用get、set方法,不对外开放的变量都用private没毛病

四、for与foreach循环性能(此处只针对遍历值的情况,并不考虑增删操作角度的情况)

五、String StringBuffer StringBuilder

 处理字符串速度来看StringBuilder> StringBuffer > String

String为字符串常量,其它两者为字符串变量。因此在处理字符串时如果要拼接的话,String 把新添加的字符串新建一个临时变量来处理。可以理解成耗时在创建变量和销毁变量上。

注意:String 处理字符串时 String str="abc"+"de";与 String str="abc"; str=str+"de";两种操作是不同的概念,前者相当于String str  = "abcde",只是一次赋值,后者是两次赋值

从线程安全来讲StringBuilder线程不安全,StringBuffer线程安全。StringBuffer中很多方法带有synchronized关键字。因此在日常业务逻辑中,如果线程安全则使用StringBuilder,多线程操作当然选择StringBuffer

六、android中cpu架构包

1.armeabi
2.armeabi-v7a
3.arm64-v8a
4.x86
5.x86_64
6.MIPS
7.MIPS64

x86 主要是运用在平板上,而 MIPS 算是80年代的处理器,基本上就没出现在手机上.

arm系列的处理器原本是没有64位的,后来arm收购了mips改良出了arm64的处理器.

同时适配 armeabi, armeabi-v7a 和 x86,在性能方面来说是较为完美的方案,只是APK的大小也会随之的变大

附带一位大神的详细介绍https://www.jianshu.com/p/4b58e41b3948

七、布局优化

官网推荐了Constraintlayout约束布局,相当于一个口袋把所有组件装在一起了。减少布局的层级,减少draw重绘的次数。

相关用法请网上找大神介绍,个人推荐博客https://blog.youkuaiyun.com/feather_wch/article/details/79585647#7-%E6%9D%83%E9%87%8D

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值