Android 面试总结~~~

一、面试中的问题

通过这几天的面试,总结了自己在面试过程中问到的问题,部分问题已经给出了答案,还有部分问题,还未有时间整理出来。

ListView出现闪图、图片错乱原因解决方案

函数式编程 (Lambda)

Activity四种启动模式

消息通讯

AIDL

ImageLoader内部原理

RecyclerView  ViewHodler绑定

Activity与Fragement 生命周期

Service如何让它不清理

Fragement替换机制

xutils  AsyncHttp  volly三种框架的使用

帧布局 FrameLayout

MVC、MVP

1、object类下常用的方法

tostring

equals

hashcode

notify

notifyAll

wait

finalize

clone

getClass

1、String、StringBuffer和StringBuilder的区别

String:字符串常量,字符串长度不可变。Java中String是immutable(不可变)的。

StringBuffer:字符串变量(Synchronized,即线程安全)。

StringBuilder:字符串变量(非线程安全)。在内部,StringBuilder对象被当作是一个包含字符序列的变长数组。

String 类型和StringBuffer的主要性能区别:String是不可变的对象, 因此在每次对String 类型进行改变的时候,都会生成一个新的 String 对象,然后将指针指向新的 String 对象,所以经常改变内容的字符串最好不要用 String。

使用 StringBuffer 类时,每次都会对 StringBuffer 对象本身进行操作,而不是生成新的对象并改变对象引用。所以多数情况下推荐使用 StringBuffer 。

2、 ArrayList,LinkedList,Vector,Stack之间的区别

一,线程安全性

Vector、Stack:线程安全

ArrayList、LinkedList:非线程安全

二,实现方式

LinkedList:双向链表

ArrayList,Vector,Stack:数组

3、hashmap和hashtable的区别

HashMap哈希表是由数组+链表组成.

HashMap是Hashtable的轻量级实现(非线程安全的实现),他们都完成了Map接口。

主要区别在于HashMap允许空(Null)键值(Key,非线程安全。

hashTable 线程安全。

三、关于屏幕适配

1、选用主流的屏幕来开发测试。

2、不用绝对布局,多使用相对布局以及线性布局, 要使用dp,不适用px。

3、在开发后期,在不同的屏幕分辨率下测试,如果没出现太大的问题,就可以上线了。

如果后期测出问题:

1、图片适配

反编译微信,发现图片都是放在hdpi文件夹下。1280*720的图片

2、布局适配

layout-800X480得布局文件

3、尺寸适配

通过values  -> dimens.xml文件配置尺寸, 可配置values-1280*720里面的dimens.xml文件

4、权重适配

layout_weight、weightSum权重总数

5、代码适配

获取屏幕的宽高,动态计算控件的大小

getWindowManager.getDefaultDisplay().getWidth()

(width*200/320) 设置屏幕占有的宽度

px转dp

如何处理内存溢出,内存泄露(如何处理Android内存泄露)

内存泄露是指程序在运行过程中动态申请的内存空间不再使用后没有及时释放,从而很可能导致应用程序内存无线增长。

内存泄露的检测

(1)利用内存泄露检测工具

内存监测工具 DDMS --> Heap

内存分析工具 MAT(Memory Analyzer Tool)

(2)释放资源我都在onDestroy()里面做处理。

(3)对于图片,使用recycle函数来回收资源。

内存泄露处理方法:

第一,应该尽量避免static成员变量引用资源耗费过多的实例,比如Context。

第二、Context尽量使用Application Context,因为Application的Context的生命周期比较长,引用它不会出现内存泄露的问题。

第三、使用WeakReference代替强引用。比如可以使用WeakReference<Context> mContextRef;

对于Handler的内存泄露处理:

这个代码存在泄漏问题,因为HandlerThread的run方法是一个死循环,它不会自己结束,线程的生命周期超过了activity生命周期,

当横竖屏切换,HandlerThread线程的数量会随着activity重建次数的增加而增加。

应该在onDestroy时将线程停止掉:mThread.getLooper().quit();

onDestroy时清除消息,mHandler.removeCallbacksAndMessages(null);   // 参数为null时会清除所有消息。

声明Handler为static并持有Activity的弱引用。

Android常见的几种动画以及区别。

Android NDK 是在SDK前面又加上了“原生”二字,即Native Development Kit,因此又被Google称为“NDK”。


时间: 2024-10-07 09:59:53

Android 面试总结~~~的相关文章

转:Android面试

http://blog.csdn.net/singwhatiwanna/article/details/49230997 可以说是对android知识的总结,列在这里了.上面的博文地址里有详细介绍,感兴趣可以仔细阅读. 基本知识点.深入知识点.基本知识点的细节和系统核心机制. 1. 基本知识点 比如四大组件如何使用.如何创建Service.如何进行布局等.这类知识是需要熟练掌握的,并且也没什么难度. 2. 稍微深入的知识点 比如AIDL.Binder.多进程.View的绘制流程.事件分发.消息队

Android面试知识点(转)

该文所有问题转自:http://www.cnblogs.com/hpboy/p/3307371.html 一.算法,数据结构 1.排序算法 2.查找算法 3.二叉树 4.广度,深度算法: 二.java基础 1.集合Collection,List,Map等常用方法,特点,关系: 2.线程的同步,中断方式有几种,线程池,线程状态,常用的方法比较,比如wait,sleep等: 3.反射机制 4.IO包的使用,运用了什么设计模式 5.设计模式,常用的设计模式,运用场景: 6.内存管理,引用的种类: 7.

Android面试总结经

自上周怒辞职以后,就开始苦逼的各种面试生涯,生活完全靠私活来接济,时有时没有,真难,还能快乐的玩耍吗,最多一天面试了5家,哎感觉都是不急招人,各种等待通知,好不容易等来一家,还克扣了薪资,从我要的12k到他们给8k,感觉累觉不爱. 面试都是基本过了二面的,大到腾讯,阿里,百度,网易,小到15人的创业公司我都去了,难得今天休息一下,总结下面试经验,以便下次面试用到.技术题目我就不说了,这是基础,不会的还是把基础看下吧.后面的题目都是让人蛋疼的机制问题. 1.什么是线程,线程和进程的区别,线程的工作

【Android进阶】Android面试题目整理与讲解

这一篇文章专门整理一下研究过的Android面试题,内容会随着学习不断的增加,如果答案有错误,希望大家可以指正 1.简述Activity的生命周期 当Activity开始启动的时候,首先调用onCreate(),onStart(),onResume()方法,此时Activity对用户来说,是可见的状态 当Activity从可见状态变为被Dialog遮挡的状态的时候,会调用onPause()方法,此时的Activity对用户可见,但是不能相 应用户的点击事件 当Activity从可见状态变为被其他

Android面试题目2

1. 请描述下Activity的声明周期. onCreate->onStart->onRemuse->onPause->onStop->onRestart->onDestroy 2. 如果后台的Activity由于某种原因被系统回收,如何在回收之前保存当前状态.onSaveInstanceState().程序中的某一个Activity A 在运行时,主动或被动的运行另一个新的Activity B,这个时候A会执行onSaveInstanceState().B完成以后又回

今天的android面试总结

今天早上去一家公司面试android开发,现在总结一下 首先,这家公司没有笔试环节,而是直接和技术面试官面谈.面试官问我有没有带简历,我说没带.然后他就叫我等一下,估计是打印我的简历去了. 不一会,一共两位技术面试官进来,其中一个进来后直接叫我把我的项目作品展示给他看,连自我介绍都不用了.够直接,好,那我就打开我的应用给他看 他就针对这个项目说你这个是怎么实现的,那个又是怎么实现的.我就说这个是用viewpager,那个是用slidingmenu什么的..他还问到你这个图片加载是怎么实现的,我说

【Android 面试基础知识点整理】

针对Android面试中常见的一些知识点整理,Max 只是个搬运工,感谢本文中引用文章的各位作者,给大家分享了这么多优秀文章,对于其中的解析,是原作者个人见解,有错误和不准确的地方,也请大家积极指正. 本文将持续更新,同时我也将其放在Github上:Point-of-Android 同时可以看Max的个人博客:海上钢琴师 Android中的异步任务机制 Android中AsyncTak的使用与源码分析 http://blog.csdn.net/bboyfeiyu/article/details/

【Android进阶】Android面试题目整理与讲解(二)

今天真机调试的时候莫名其妙遇到了这样的一个问题: This product type must be built using a provisioning profile, however no provisioning profile matching both the identity "iPhone Developer" and the bundle identifier..... 具体如下图所示: 十分蛋疼, 发现不管是从网上下的demo, 还是自己的过程.凡事真机测试的时候都

【Android进阶】Android面试题目整理与讲解(一)

这一篇文章专门整理一下研究过的Android面试题,内容会随着学习不断的增加,如果答案有错误,希望大家可以指正 1.简述Activity的生命周期 当Activity开始启动的时候,首先调用onCreate(),onStart(),onResume()方法,此时Activity对用户来说,是可见的状态 当Activity从可见状态变为被Dialog遮挡的状态的时候,会调用onPause()方法,此时的Activity对用户可见,但是不能相 应用户的点击事件 当Activity从可见状态变为被其他

Android面试总结 (转)

1. 下列哪些语句关于内存回收的说明是正确的? (b) A. 程序员必须创建一个线程来释放内存 B. 内存回收程序负责释放无用内存 C. 内存回收程序允许程序员直接释放内存 D. 内存回收程序可以在指定的时间释放内存对象 2. 下面异常是属于Runtime Exception 的是(abcd)(多选) A.ArithmeticException B.IllegalArgumentException C.NullPointerException D.BufferUnderflowException