Android学习笔记-Android初级 (三)android内存管理技巧,看完这篇

47 阅读3分钟

hashMap(矩阵方式存储),SpaseArray更好




6![这里写图片描述](https://p3-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/1ee7c209ae9541a7964dc421ab77b95f~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg55So5oi3MDY4Mzc0MTQxMzQ0:q75.awebp?rk3s=f64ab15b&x-expires=1771287474&x-signature=5Cb%2BCOUwzHY4TQ2n4cS4GJtAD8c%3D)



> (2)内部类可以使用static静态内部类  

> (3)减少new (可以拿出来,提升成成员(也叫:全局)变量)  

> (4)使用SparseArray



7![这里写图片描述](https://p3-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/124fc1ab59864b84b06110d23a91ffdf~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg55So5oi3MDY4Mzc0MTQxMzQ0:q75.awebp?rk3s=f64ab15b&x-expires=1771287474&x-signature=TYPpMtVw3jxdxfpMG2DNlNIAGdo%3D)



> 为什么在服务器编程推崇抽象编程,因为服务器端牺牲内存来提高可扩展性是值得的。  

> android中一切以性能丶高效为宗旨,不要滥用抽象编程,比如用List list = new ArrayList();  

> 可以直接使用ArrayList list = new ArrayList(); 不要再转一下,不好扩展就不好扩展吧。



8避免使用依赖注入(运行时注解)框架



> 因为运行时注解都是使用反射实现的,并且反射的一些对象在内存中存在,很久才会释放,还是老老实实findviewbyid吧  

> ![这里写图片描述](https://p3-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/09a9b4c714f043649b4308f63ab1f17d~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg55So5oi3MDY4Mzc0MTQxMzQ0:q75.awebp?rk3s=f64ab15b&x-expires=1771287474&x-signature=X38XrCy3GqyueDU2U56y09HVjaw%3D)



9代码混淆  

![这里写图片描述](https://p3-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/08f78358bc93439fb7dd8a8291a8cea9~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg55So5oi3MDY4Mzc0MTQxMzQ0:q75.awebp?rk3s=f64ab15b&x-expires=1771287474&x-signature=YC8LMT%2BeuJ2sXTUTfSEzvq4FL4s%3D)  

使用方法:



> 1.在F:\\Android\\sdk1\\tools\\proguard\\中把proguard-android.txt拷贝出来  

> 2.F:\\GitHubList\\Android\_Vitamio\\app放在项目的这个文件夹中  

> ![这里写图片描述](https://p3-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/c6ab0382c31f45ebbe8ece9fcb60b4ba~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg55So5oi3MDY4Mzc0MTQxMzQ0:q75.awebp?rk3s=f64ab15b&x-expires=1771287474&x-signature=ECYdHkv85UzXiTMO9KP6QdfqULc%3D)  

> 3.打开app文件夹中build.gradle文件找到buildTypes改为true(就代表下面引入的两个文件生效了)  

> ![这里写图片描述](https://p3-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/ec4d0ace12ee4bb285b80cba3ae3c7b3~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg55So5oi3MDY4Mzc0MTQxMzQ0:q75.awebp?rk3s=f64ab15b&x-expires=1771287474&x-signature=jNqzhzU5lqWyCrEyX3U10lHguYI%3D)  

> 4.修改proguard-android.txt文件配置相关的混淆内容,生成的app就是一个混淆过的app(反编译之后就会显示a,aa,bbb,c,a,c,b混淆过的类了,并且占的内存也比较小)



10.  

![这里写图片描述](https://p3-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/6eaa65e95d7d4e28b5e8ec900039f4b2~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg55So5oi3MDY4Mzc0MTQxMzQ0:q75.awebp?rk3s=f64ab15b&x-expires=1771287474&x-signature=B%2BiVl0GcPBC6UwsEQ1mMClUeJEg%3D)



> 好处:不占用当前进程的内存,多个进程就多份内存



 



### 资源分享

![一线互联网面试专题](https://p3-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/ace65beb020b45d38216a0edd0eb8dc7~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg55So5oi3MDY4Mzc0MTQxMzQ0:q75.awebp?rk3s=f64ab15b&x-expires=1771287474&x-signature=boizAhGeoFku5xZBHxhO8LhFQRE%3D)

![379页的Android进阶知识大全](https://p3-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/9e13978e5d0a439bb1fdbacdfed64705~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg55So5oi3MDY4Mzc0MTQxMzQ0:q75.awebp?rk3s=f64ab15b&x-expires=1771287474&x-signature=d%2FkUxCVQvz3%2F6bAC1hQdlGd8viw%3D)

![379页的Android进阶知识大全](https://p3-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/127c84c944a74efea07a827fae1d7365~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg55So5oi3MDY4Mzc0MTQxMzQ0:q75.awebp?rk3s=f64ab15b&x-expires=1771287474&x-signature=EsHh60BHWk75jBP7W3BFmWBNSY0%3D)

**点击:**

**《[Android架构视频+BAT面试专题PDF+学习笔记​](https://github.com/a120464/Android-P7/blob/master/Android%E5%BC%80%E5%8F%91%E4%B8%8D%E4%BC%9A%E8%BF%99%E4%BA%9B%EF%BC%9F%E5%A6%82%E4%BD%95%E9%9D%A2%E8%AF%95%E6%8B%BF%E9%AB%98%E8%96%AA%EF%BC%81.md)》**即可免费获取

网上学习 Android的资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。希望这份系统化的技术体系对大家有一个方向参考。

> 2020年虽然路途坎坷,都在说Android要没落,但是,不要慌,做自己的计划,学自己的习,竞争无处不在,每个行业都是如此。相信自己,没有做不到的,只有想不到的。祝大家2021年万事大吉。