当前位置:首页 > 内存 > 正文

android内存优化面试

  • 内存
  • 2024-06-11 19:21:45
  • 5242

一、Android面试题集(三)

自定义View最基本的三个方法是:onMeasure()、onLayout()和onDraw(),当View在Activity中显示时,要经过测量、布局、绘制三个步骤,这三个步骤是等价的;分为三个步骤:测量、布局和绘制。

视图主要分为两类

系统自带的视图可以在xml中配置属性。对于写好的自定义视图,也可以在xml中配置属性要使自定义视图的属性能够在xml中配置,需要执行以下四个步骤:
1通过2de对应xml中的属性声明属性值
3运行时获取属性值(通常是构造函数)
4在View上使用获取到的属性值

Android的坐标系定义为:

测量规范封装了父容器在View上的布局约束,提供内部的宽高信息(SpecMode、SpecSize是指某个SpecMode下的参考尺寸,哪个)。SpecMode有如下三种类型:

可以通过将SpecMode和SpecSize包装在int值中来避免过多的对象内存分配。

MeasureSpec值是如何计算的?

子视图的MeasureSpec值是根据子视图的布局参数(LayoutParams)和父容器的MeasureSpec值计算得出的。具体的计算逻辑封装在getChildMeasureSpec()中

官方解释:用于管理activity和fragment的生命周期
其实生命周期的作用就是让业务组件能够感知activity和fragment的生命周期。


二、android面试遇到的问题怎么解决1.主要涉及对象创建、堆内存、栈内存、数据引用地址是否可以改变等问题。
2.内存泄漏检测GcRoot的相关概念和回收机制,以及单例、内部类、匿名内部类、静态内部类以及内存泄漏原因和解决方案,主要是MAT、视图等问题,以及如照片和网络优化处理;
3.我们还研究了如何实现带有线程池的ThreadPoolExecutor、底层实现机制以及参考线程池的线程间调度机制。
中研究较多的是哈希图:哈希冲突、冲突原因、如何避免哈希冲突、数组与链表的关系、如何实现存储等操作。
5.我们还研究了处理程序的实现机制,其中不仅包括市场上尚未充分理解的轮询方面,还包括整个生命周期的启动机制。
6、将常用的设计模式和设计模式应用到实战中也是必不可少的。
7.还有动画相关的内容,主要是视图动画和属性动画的对比,动画带来的一些泄漏问题,以及事件分发机制实际问题。
8.多线程问题、线程同步问题、多线程直接进程通信方式。
9.项目的架构思路及分析解决机制。
10.还有常用的第三方库及其实现机制和原理。
11.应用程序启动机制、活动线程等...


三、在Android开发中,有哪些好的内存优化方式Android代码优化技术
1.Java对字符串操作的内存控制,如果要不断添加此类操作,建议调试后使用StringBuilder,String所需的内存开销会比StringBuilder大很多,Android手机正常运行在128MB左右。对于手动释放来说,频繁的GC操作对性能的影响还是比较大的。
2、建议这样写,比如for(inti=0;i3。该平台更加智能,为了减少文件大小和效率,我们不再使用很多资源文件,而是将很多小图片放入一张图片中,并使用它来解决Android中文件头和MIDP设备数量的问题。虽然机型硬件配置都比较高,但是可以看看G1手机资源的参数和评论,这样的运行效率还是让人满意的,至少Dalvik的优化还不够。