retrofit

Android常见内存泄漏以及优化方案

雨燕双飞 提交于 2020-10-09 04:50:07
单例导致内存泄漏 首先来看一下一种单例的写法: 多种单例写法参考 public class Utils { private static Utils mInstance ; private Context mContext ; private Utils ( Context context ) { this . mContext = context ; } public static Utils getInstance ( Context context ) { if ( mInstance == null ) { Util = new Utils ( context ) ; } return mInstance ; } } 以Activity为例,当我们启动一个Activity,并调用getInstance(Context context)Utils,传入Activity.this作为context,这样Utils类的单例mInstance就持有了Activity的引用,当我们退出Activity时,该Activity就没有用了,但是因为mIntance作为静态单例(在应用程序的整个生命周期中存在)会继续持有这个Activity的引用,导致这个Activity对象无法被回收释放,这就造成了内存泄露。 为了避免这样单例导致内存泄露,我们可以将context参数改为全局的上下文:

金九银十要来了?不要慌,这些Android BAT高级面试题刷一刷

て烟熏妆下的殇ゞ 提交于 2020-10-02 14:22:36
已经九月中旬了,差不多很多程序员都准备在这个时候跳槽或者找工作了。。。 如果想变得优秀那就去看那些优秀的人在学什么,做什么,想尽一切办法和他们交流;多出去看看这个世界,然后把自己逼到往死里学。 这篇攻略是我从事开发工作七八年来,去面试,以及面试别人的经验总结。其中大部分都是大企业面试常问的面试题,可以对照这查漏补缺,当然了,这里所列的肯定不可能覆盖全部方式,希望对大家之后找工作有帮助! 一、性能优化 App稳定性优化 你们做了哪些稳定性方面的优化? 性能稳定性是怎么做的 业务稳定性如何保障? 如果发生了异常情况,怎么快速止损? App启动速度优化 启动优化是怎么做的? 是怎么异步的,异步遇到问题没有? 启动优化有哪些容易忽略的注意点? 版本迭代导致的启动变慢有好的解决方式吗? 开放问题:如果提高启动速度,设计一个延迟加载框架或者sdk的方法和注意的问题 App内存优化 你们内存优化项目的过程是怎么做的? 你做了内存优化最大的感受是什么? 如何检测所有不合理的地方? App绘制优化 你在做布局优化的过程中用到了哪些工具? 布局为什么会导致卡顿,你又是如何优化的? 做完布局优化有哪些成果产出? 你是怎么做卡顿优化的? 你是怎么样自动化的获取卡顿信息? 卡顿的一整套解决方案是怎么做的? TextView setText耗时的原因,对TextView绘制层源码的理解? 开放问题

【Android】学习路线与建议

牧云@^-^@ 提交于 2020-09-30 11:53:05
简介:大四学生党一枚!主攻Android开发,转游戏客户端开发中 语录 : 取乎其上,得乎其中,取乎其中,得乎其下,以顶级态度写好一篇的博客。 最近有很多学弟学妹私信我,咨询 Android 学习路线的问题,结合今年秋招Android岗的面试经验,做个总结,仅代表个人看法。 Android 一.企业要求 1.1 任职要求 1.2 推荐书籍 1.3 细分Android 二.技术深度 三.建议 一.企业要求 1.1 任职要求 下面是我在招聘网站上发现的几个 Android 工程师的任职要求 腾讯社招 1、具备Android应用层调试分析能力,快速定位解决anr、crash等问题; 2、对Android开发相关的事件处理、内存处理、多线程编程、网络通讯及性能优化有深入理解; 3、熟悉Android应用框架和Android GUI库。 4、有过Android系统应用软件的开发。 5、有良好的源码阅读能力和编码习惯 网易社招 1、计算机及相关专业本科以上学历,2年以上Android相关开发经验 2、熟悉Android平台的开发技术,如UI,网络,性能和内存优化等 3、了解各类常用开源框架实现原理,并能灵活运用; 4、扎实的计算机专业基础,熟悉常用的数据结构、算法、设计模式 5、熟悉网络编程,熟练掌握tcp/udp等协议相关知识 6、具备良好的学习能力,自主分析和解决问题能力