Android 内存泄漏总结

内存管理的目的就是让我们在开发中怎么有效的避免我们的应用出现内存泄漏的问题。内存泄漏大家都不陌生了,简单粗俗的讲,就是该被释放的对象没有释放,一直被某个或某些实例所持有却不再被使用导致 GC 不能回收

我会从 java 内存泄漏的基础知识开始,并通过具体例子来说明 Android 引起内存泄漏的各种原因,以及如何利用工具来分析应用内存泄漏,最后再做总结。

一、java相关

java基础

1、java 中==和 equals 和 hashCode 的区别
2、int、char、long 各占多少字节数
3、int 与 integer 的区别
4、谈谈对 java 多态的理解
5、String、StringBuffer、StringBuilder 区别
6、什么是内部类?内部类的作用
7、抽象类和接口区别

java高级

1、哪些情况下的对象会被垃圾回收机制处理掉?
2、讲一下常见编码方式?
3、utf-8 编码中的中文占几个字节;int 型几个字节?
4、静态代理和动态代理的区别,什么场景使用?
5、Java 的异常体系
6、谈谈你对解析与分派的认识。
7、修改对象 A 的 equals 方法的签名,那么使用 HashMap 存放这个对象 实例的时候,会调用哪个 equals 方法?

##二、图片相关

1、图片库对比
2、LRUCache 原理
3、图片加载原理
4、自己去实现图片库,怎么做?
5、Glide 源码解析
6、Glide 使用什么缓存?
7、Glide 内存缓存如何控制大小?
8.Fresco 源码分析

三、网络和安全机制

1.网络框架对比和源码分析
2.自己去设计网络请求框架,怎么做?
3.网络请求缓存处理,okhttp 如何处理网络缓存的
4.从网络加载一个 10M 的图片,说下注意事项
5.TCP 的 3 次握手和四次挥手
6.TCP 与 UDP 的区别
7.TCP 与 UDP 的应用
8.HTTP 协议

四、数据库相关

1.Sqlite 升级,增加字段的语句
2.数据库框架对比和源码分析
3.数据库优化
4.数据库数据迁移问题
5.Sqlite 常见异常

五、插件化、模块化、组 件化、热修复、增量更新、Gradle

1.对热修复和插件化的理解
2.插件化原理分析
3.模块化实现(好处,原因)
4.热修复、插件化
5.项目组件化的理解
6.描述清楚点击 Android Studio 的 build 按钮后发 生了什么

六、架构设计与设计模式

1.谈谈你对 Android 设计模式的理解
2.MVC MVP MVVM 原理和区别
3.你所知道的设计模式有哪些?
4.项目中常用的设计模式
5.手写生产者/消费者模式
6.写出观察者模式的代码
7.适配器模式,装饰者模式,外观模式的异同?
8.谈谈对 RxJava 的理解

七、性能优化专题

1.启动 app 黑白屏优化
2.稳定——内存优化
3.流畅——卡顿优化
4.节省——耗电优化
5.安装包——APK 瘦身
6.冷启动与热启动
7.内存泄漏的场景和解决办法

  1. Bitmap 优化
    9.webview 优化

八、Android Framework 相关

1、Android 系统架构
2、View 的事件分发机制?滑动冲突怎么解决?
3、View 的绘制流程?
4、跨进程通信。
5、Android 系统启动流程是什么?
6、说下四大组件的启动过程,四大组件的启动与销 毁的方式。
7、理解 Window 和 WindowManager。
8、大体说清一个应用程序安装到手机上时发生了什 么?

九、Android 优秀三方库源码

1.网络底层框架:OkHttp 实现原理
2.网络封装框架:Retrofifit 实现原理
3.响应式编程框架:RxJava 实现原理
4.图片加载框架:Glide 实现原理
5.事件总线框架:EventBus 实现原理
6.内存泄漏检测框架:LeakCanary 实现原理
7.依赖注入框架:ButterKnife 实现原理
8.依赖全局管理框架:Dagger2 实现原理
9.数据库框架:GreenDao 实现原理

学习宝典

对我们开发者来说,一定要打好基础,随时准备战斗。不论寒冬是否到来,都要把自己的技术做精做深。虽然目前移动端的招聘量确实变少了,但中高端的职位还是很多的,这说明行业只是变得成熟规范起来了。竞争越激烈,产品质量与留存就变得更加重要,我们进入了技术赋能业务的时代。

不论遇到什么困难,都不应该成为我们放弃的理由!

很多人在刚接触这个行业的时候或者是在遇到瓶颈期的时候,总会遇到一些问题,比如学了一段时间感觉没有方向感,不知道该从那里入手去学习,对此我针对Android程序员,我这边给大家整理了一套学习宝典!包括不限于高级UI、性能优化、移动架构师、NDK、混合式开发(ReactNative+Weex)微信小程序、Flutter等全方面的Android进阶实践技术;希望能帮助到大家,也节省大家在网上搜索资料的时间来学习,也可以分享动态给身边好友一起学习!

Android学习PDF+架构视频+面试文档+源码笔记

【Android核心高级技术PDF文档,BAT大厂面试真题解析】

【算法合集】

【延伸Android必备知识点】

468447459)]

【算法合集】

[外链图片转存中…(img-CaFWzWKm-1620468447462)]

【延伸Android必备知识点】

[外链图片转存中…(img-dLsO2Obx-1620468447465)]

【Android部分高级架构视频学习资源】

渣本毕业两年经验,大厂内部资料相关推荐

  1. 渣本毕业两年经验,大厂面试题汇总

    开头 最近有个老铁,告诉我说,上班一个月,后悔当初着急入职现在公司了.他之前在美图做手机研发,今年美图那边今年也有一波组织优化调整,他是其中一个,在协商离职后,当时捉急找工作上班,因为有房贷供着,不能 ...

  2. 渣本毕业两年经验,看这一篇就够了!

    最近跟我的一些读者交流,有一位读者的经历让我记忆深刻: "有一次和大学同学聚会,和几个在BAT的同学聊了聊技术,发现自己在创业公司这几年,完全是吃老本的状态,没有什么机会精进技术,同样是工作 ...

  3. 渣本毕业两年经验,知乎上已获万赞

    前言 本篇文章主要记录分享我的面试准备过程. 很多朋友问我为什么离职 关于离职原因,马云有一句经典的话"要么钱没给到位,要么心委屈了",想必大家耳熟能详了,我这里再细说一下我个人离 ...

  4. 安卓嵌入式开发教程!渣本毕业两年经验,满满干货指导

    开头 1.一定要把基本的数据结构,经典的算法,Unix编程,程序编译链接及计算机原理等基础知识扎牢,这些会长远影响你的职业发展. 2. 推荐从C语言入门,不单是因为很多操作系统.网络协议栈开源代码由C ...

  5. Android渣本毕业四年,面试小厂面试官说我可以试试大厂

    从6月初开始复习,准备面试题.首先介绍一下自己基本情况:渣本毕业快4年,一直在小厂摸鱼混日子,学历和简历背景不是很好看,所以面试邀约也不是很多,面试也到处碰壁. 去年跳槽不成功,在原公司又呆了一年.一 ...

  6. 17年渣本毕业的我,21年终于进了大厂(薪资和福利真的拉满)

    简述 17年渣本毕业(依然热爱母校),目前在度小满金融(原百度金融),18年独立出来.可能很多人觉得不算是大厂,但薪资和福利真的拉满. 我的修炼历程比较坎坷.2017年毕业,5月份找工作差点进入传销组 ...

  7. 渣本毕业的我,2021年终于翻山越岭进了大厂

    简述 17年渣本毕业(依然热爱母校),目前在度小满金融(原百度金融),18年独立出来.可能很多人觉得不算是大厂,但薪资和福利真的拉满. 我的修炼历程比较坎坷.2017年毕业,5月份找工作差点进入传销组 ...

  8. 程序员毕业两年,如何在帝都购房上车?

    作者 | 石头哥 来源 | 程序猿石头(ID:tangleithu) 背景 之前看到大白等分享了帝都购房记录,石头哥也来跟风分享一下我是如何在帝都购房上车的. 当然,我也非常希望我买房的剧情如下: 石 ...

  9. 写在19年初的后端社招面试经历(两年经验): 蚂蚁 头条 PingCAP

    去年(18年)年底想出来看看机会,最后很幸运地拿到了 PingCAP,今日头条的 offer 以及蚂蚁金服的口头 offer.想着可以总结一下经验,分享一下自己这一段"骑驴找马"过 ...

  10. 两年经验斩获蚂蚁/头条/PingCAP Offer,牛逼了

    分享一篇面经,作者拿到了 PingCAP,今日头条的 offer 以及蚂蚁金服的口头 offer.下面是该作者的经验分享: 准备过程 我自己是本科毕业后在老东家干了两年多,老东家算是一家"小 ...

最新文章

  1. java负数右移_收入囊中篇---Java程序基础(二)
  2. 智办事2.0,第一个提出以“事情”为中心的企业管理方法落地软件
  3. 不止视觉,CMU研究员让机器人学会了听音辨物
  4. java 时间的封装类
  5. iOS 查看崩溃日志
  6. hdu1316 大数
  7. 通过设置Cookie 让弹框显示一次
  8. apt-get安装错误积累
  9. [你必须知道的.NET]第十八回:对象创建始末(上)
  10. 静物摄影用光技巧_摄影技巧:摄影如何用光?摄影大师总结的10点,非常受用!...
  11. 微信小程序自带地图_微信小程序之map地图
  12. aspx 判断字符串是否为decimal_C++编程技巧: 如何判断输入是否为整型
  13. Ubuntu、CentOS、redHat的区别与联系
  14. linux 系列:[所有相关文章链接]
  15. net framework安装有什么影响_踢脚暖比地暖安装简单,升温快,为什么没有普及?这2点影响很大...
  16. JDBC系列(二):JDBC代码的编写步骤
  17. echars折线图y轴自定义数值会被转换为整数的问题
  18. 用计算机研究脑电波,可用于计算机硬盘识别及脑电波测量的量子传感器【中国科讯】...
  19. 12V铅酸电池充放电保护板
  20. geoserver给天地图添加服务,给线加标注

热门文章

  1. 人力资源数据分析师前景_5-数据分析师前景怎么样
  2. LeetCode1153 字符串转化
  3. 表达式计算器-iExpr
  4. 东南大学计算机考研面试题,东南大学复试常问问题今天的模拟面试总结
  5. leetcode(Array)---11,盛最多水的容器
  6. python gca_Matplotlib入门-3-plt.gca( )挪动坐标轴
  7. import torchvision报错,UserWarning: Failed to load image Python extension: Could not find module ‘C:\U
  8. 内网安全-域横向网络传输应用层隧道技术
  9. Vmware Workstation Pro初级使用
  10. 油相CdSe/ZnS量子点溶液 硒化镉/硫化锌量子点介绍及阐述