Android 面试题
文章平均质量分 87
程序邦
1. 擅长Android 开发
2. 擅长React Native 跨平台开发
展开
-
Android开发面试题
面试题一:谈谈你对Activity的理解:这是考官希望你把自己的心得,做项目的时候的体会写出来;我们可以答Activity异常被系统回收的时候怎么处理的,然后可以讲讲Activity的生命周期。 面试题二:Service是否运行在主线程?能否在Service里面执行耗时的操作? 答:service是默认运行在主线程的,很多人觉得是后台服务就觉得应该是在子原创 2015-02-06 10:17:49 · 721 阅读 · 0 评论 -
Android 面试题 关于oom的解决方案
#Android关于OOM的解决方案 ##OOM内存溢出(Out Of Memory)也就是说内存占有量超过了VM所分配的最大##出现OOM的原因加载对象过大相应资源过多,来不及释放##如何解决在内存引用上做些处理,常用的有软引用、强化引用、弱引用在内存中加载图片时直接在内存中作处理,如边界压缩动态回收内存优化Dalvik虚拟机的堆内存分配自定义堆内存大小原创 2017-09-15 15:47:29 · 1045 阅读 · 0 评论 -
Android 面试题 ANR问题总结
1、ANR排错一般有三种类型KeyDispatchTimeout(5 seconds) --主要是类型按键或触摸事件在特定时间内无响应BroadcastTimeout(10 seconds) --BroadcastReceiver在特定时间内无法处理完成ServiceTimeout(20 secends) --小概率事件 Service在特定的时间内无法处理完成2、哪些操作会导致A原创 2017-09-15 15:45:22 · 478 阅读 · 0 评论 -
Android 面试题 插件化技术学习
###Android动态加载dex技术初探http://blog.csdn.net/u013478336/article/details/50734108Android使用Dalvik虚拟机加载可执行程序,所以不能直接加载基于class的jar,而是需要将class转化为dex字节码。Android支持动态加载的两种方式是:DexClassLoader和PathClassL原创 2017-09-15 15:30:09 · 988 阅读 · 0 评论 -
Android 面试总结 Handler、Looper、Message、MessageQueue基础流程分析
老司机们都知道,Android的线程间通信就靠Handler、Looper、Message、MessageQueue这四个麻瓜兄弟了,那么,他们是怎么运作的呢?下面做一个基于主要源代码的大学生水平的分析。Looper(先分析这个是因为能够引出四者的关系)在Looper中,维持一个Thread对象以及MessageQueue,通过Looper的构造函数我们可以知道: p转载 2017-09-14 11:52:42 · 910 阅读 · 0 评论 -
Android 面试总结 Handler内存泄漏分析及解决
#Handler内存泄漏分析及解决###一、介绍首先,请浏览下面这段handler代码:public class SampleActivity extends Activity { private final Handler mLeakyHandler = new Handler() { @Override public void handleMessage转载 2017-09-14 11:39:48 · 391 阅读 · 0 评论 -
Android面试总结 内存泄漏总结
内存管理的目的就是让我们在开发中怎么有效的避免我们的应用出现内存泄漏的问题。内存泄漏大家都不陌生了,简单粗俗的讲,就是该被释放的对象没有释放,一直被某个或某些实例所持有却不再被使用导致 GC 不能回收。我会从 java 内存泄漏的基础知识开始,并通过具体例子来说明 Android 引起内存泄漏的各种原因,以及如何利用工具来分析应用内存泄漏,最后再做总结。##Java 内存分配策原创 2017-09-14 11:36:22 · 1847 阅读 · 0 评论 -
Andorid 面试题 一 Android基础知识
Activity生命周期。启动Activity: onCreate()—>onStart()—>onResume(),Activity进入运行状态。Activity退居后台: 当前Activity转到新的Activity界面或按Home键回到主屏: onPause()—>onStop(),进入停滞状态。Activity返回前台: onRestart()—>onStart原创 2017-09-13 15:37:50 · 372 阅读 · 0 评论 -
Android 面试题 美团
第一面1 手写算法题。一共有3个,面试官随机选择一个。猫扑素数;1到n,求1的个数;单词反转。2 Activity的加载模式。standard,singleTop,singleTask,singleInstance。可以参考:https://developer.android.com/guide/components/tasks-and-back-stack.html2.1原创 2017-06-19 10:35:59 · 972 阅读 · 0 评论 -
Android插件化 热修复热门框架简析
1.dynamic-load-apk作者 百度任玉刚 插件化框架 途牛已上线使用支持代码 资源文件以插件形式加入到host。缺陷:不支持Service和BroadcastReceiver。迁移成本,需要修改插件,插件app需要继承自proxyActivity优点:插件无需安装host即可吊起支持R访问插件资源插件支持Activity和Fragment原创 2017-02-20 18:57:56 · 896 阅读 · 0 评论 -
Android面试 - 音频焦点(Audio Focus)
引子说 Audio Focus 前先说个很简单需求:来电时暂停正在播放的音乐,电话结束时恢复播放。看到这个需求,第一反应肯定是:监听用户来电状态,作相应操作。这里不多做介绍,这样做有个不好的地方就是需要隐私权限!这样做一点也不优雅。后来搜索时看到一篇分析文章:Android来电时停止音乐播放的流程(顺便说一嘴,这篇转载居然不注明出处!!)。文章里的分析很明确的指出,系统在框原创 2017-01-03 17:00:52 · 1046 阅读 · 0 评论 -
Android 面试题 - 线程间通信
Android是基于Java的,所以也分主线程,子线程! 主线程:实现业务逻辑、UI绘制更新、各子线程串连,类似于将军; 子线程:完成耗时(联网取数据、SD卡数据加载、后台长时间运行)操作,类似于小兵; 一、子线程向主线程发消息(Thread+handler): 1、主线程中定义Handler: Java代码 Handler mHandler =原创 2017-01-03 16:03:52 · 1408 阅读 · 0 评论 -
List和ArrayList的区别
List是一个接口,而ListArray是一个类。 ListArray继承并实现了List。 所以List不能被构造,但可以向上面那样为List创建一个引用,而ListArray就可以被构造。 List list; //正确 list=null; List list=new List(); // 是错误的用法List list = new ArrayLis原创 2015-02-27 09:33:59 · 482 阅读 · 0 评论 -
HashSet和HashMap的区别
*HashMap**HashSet*HashMap实现了Map接口HashSet实现了Set接口HashMap储存键值对HashSet仅仅存储对象使用put()方法将元素放入map中使用add()方法将元素放入set中HashMap中使用键对象来计算hashcode值HashSet使用成员对象来原创 2015-02-27 09:23:54 · 560 阅读 · 0 评论 -
java中抽象类跟接口的区别
今天无意在网上看到抽象类跟接口的区别的总结,发现自己都忘的差不多了,就顺手牵羊拷贝了一份,有空也可以看看。含有abstract修饰符的class 即为抽象类,abstract类不能创建实例对象,含有abstract的方法的类必须定义为abstract class ,abstract class 里的方法不必是抽象的,抽象来中定义抽象方法必须放在具体子类中实现,所以呀,不能有抽象的构造方法或原创 2015-02-27 09:14:44 · 455 阅读 · 0 评论 -
Android/Java面试题
从今天起,所有面试或遇到过的面试题,都整理到此文章下,提醒自己时刻要学习,同时分享给各位。【大部分网上整理】1,Java中一个汉字占多少字节?java中,只要是字符,不管是数字还是英文还是汉字,都占两个字节,都是一个char。char c1 = '中'; char c2 = 'A'; char c3 = '1';确切说,Unicode编码是指一类编码的统称,原创 2015-02-13 09:56:21 · 553 阅读 · 0 评论 -
Android下AOP介绍与实践
转载自:https://www.jianshu.com/p/4ae026211d66什么是AOP面向切面编程(AOP是Aspect Oriented Program的首字母缩写) ,我们知道,面向对象(OOP)的特点是继承、多态和封装。而封装就要求将功能分散到不同的对象中去,这在软件设计中往往称为职责分配。实际上也就是说,让不同的类设计不同的方法。这样代码就分散到一个个的类中去了。这样做的...转载 2018-08-16 09:47:05 · 274 阅读 · 0 评论