美文网首页
Android 面试经验

Android 面试经验

作者: 李英杰_IT | 来源:发表于2017-08-20 19:13 被阅读0次

    1.JAVA 基础问题

    你对线程的认识?

    你对进程的认识?

    你对面向对象的认识?

    wait 和 sleep的区别?

    权限修饰符有哪些?private protected default public

    3.Android UI加载慢 界面卡顿原因?

    Android 界面绘制过程中有耗时操作,解决办法:将耗时操作放到子线程中,更新UI在

    4.Android 内存泄露的原因以及解决方案?

    5.listview 实现瀑布流?

    http://blog.csdn.net/guolin_blog/article/details/46361889

    6.界面 瀑布流实现?

    7.Android程序的热更新?

    http://mp.weixin.qq.com/s?__biz=MzI0MjE3OTYwMg==&mid=2649548089&idx=1&sn=939f45217087f332f945a703c658bbe1&chksm=f1180e44c66f8752b54ff55e2f8994eec97fcca8e30c9f5a10e3503dcc029483fd630d22dd4e&scene=21#wechat_redirect

    主流两种方式:1.通过ClassLoader 替换类 需要重启应用

    2.底层方法指向替换方法  无需重启应用

    8.内存泄露和内存溢出

    内存溢出 out of memory,是指程序在申请内存时,没有足够的内存空间供其使用,出现out of memory

    内存泄露 memory leak,是指程序在申请内存后,无法释放已申请的内存空间,一次内存泄露危害可以忽略,但内存泄露堆积后果很严重,无论多少内存,迟早会被占光。

    常见的内存泄漏

    1.较大的资源对象没有释放 File 没有close ,cursor 没有关闭,Bitmap没有回收

    2.Android 中注册没有取消注册

    3.内部类 持有外部类的引用造成的  常见handler

    9.fragment 生命周期

    http://blog.csdn.net/forever_crying/article/details/8238863/

    10.android ANR的原因以及解决办法

    http://www.jianshu.com/p/7fd95bc2a55c

    11.android view touch 事件传递

    ViewGroup在接受到上级传下来的事件时,如果是一系列Touch事件的开始(ACTION_DOWN),ViewGroup会先看看自己需不需要拦截这个事件(onInterceptTouchEvent,ViewGroup的默认实现直接返回false表示不拦截),接着ViewGroup遍历自己所有的View。找到当前点击的那个View,马上调用目标View的dispatchTouchEvent。如果目标View的dispatchTouchEvent返回false,那么认为目标View只是在那个位置而已,它并不想接受这个事件,只想安安静静的做一个View(我静静地看着你们装*)。此时,ViewGroup还会去走一下自己dispatchTouchEvent,Done!

    12.volatile与synchronized

    1)volatile本质是在告诉jvm当前变量在寄存器中的值是不确定的,需要从主存中读取,synchronized则是锁定当前变量,只有当前线程可以访问该变量,其他线程被阻塞住.2)volatile仅能使用在变量级别,synchronized则可以使用在变量,方法.3)volatile仅能实现变量的修改可见性,而synchronized则可以保证变量的修改可见性和原子性.

    《Java编程思想》上说,定义long或double变量时,如果使用volatile关键字,就会获得(简单的赋值与返回操作)原子性4)volatile不会造成线程的阻塞,而synchronized可能会造成线程的阻塞.

    13.通过listview 实现瀑布流

    http://www.2cto.com/kf/201510/444916.html

    14.Android 中常用的设计模式

    1.单例设计模式

    2.生产者消费者模式

    3.观察者模式

    4.工厂设计模式

    15.数据结构和算法问题

    16.Android 的消息处理原理

    handler message Looper

    17.Android 的Binder 机制

    18.Android中JNI的使用

    19.Android App中常用的bug 定位和性能调优工具

    18.版本管理工具 Git 和SVN

    Git: http://www.bootcss.com/p/git-guide/

    19.android 的垃圾回收机制

    20.activity LaunchMode Task Flag 完整的流程

    21.View 的绘制 Touch事件的分发 从WindowsManagerService 完成的流程

    22.Wait 和 sleep的区别

    23. HTTPS和HTTP的区别主要如下:

    1、https协议需要到ca申请证书,一般免费证书较少,因而需要一定费用。

    2、http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。

    3、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。

    4、http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安             全。

    24.https 证书校验原理/https 交互流程

    客户端在使用HTTPS方式与Web服务器通信时有以下几个步骤,如图所示。

    (1)客户使用https的URL访问Web服务器,要求与Web服务器建立SSL连接。

    (2)Web服务器收到客户端请求后,会将网站的证书信息(证书中包含公钥)传送一份给客户端。

    (3)客户端的浏览器与Web服务器开始协商SSL连接的安全等级,也就是信息加密的等级。

    (4)客户端的浏览器根据双方同意的安全等级,建立会话密钥,然后利用网站的公钥将会话密钥加密,并传送给网站。

    (5)Web服务器利用自己的私钥解密出会话密钥。

    (6)Web服务器利用会话密钥加密与客户端之间的通信。

    1.为什么从上家公司离职?

    答:公司目前情况估计您也了解,有的同事社保和公积金被

    2.谈一下你最近做的项目?

    视频通话项目  IMSDK项目 PushSDK项目

    设计技术:信令设计 websocket长连接 断线重连 双向心跳 智能心跳

    开发中遇到哪些问题? 如何解决的?

    LeakCanary 解决内存泄漏问题

    双向心跳 智能心跳 客户端状态机

    3.Android UI加载慢 界面卡顿原因?

    4.Android 内存泄露的原因以及解决方案?

    5.listview 实现瀑布流?

    http://blog.csdn.net/guolin_blog/article/details/46361889

    6.界面 瀑布流实现?

    7.Android程序的热更新?

    http://mp.weixin.qq.com/s?__biz=MzI0MjE3OTYwMg==&mid=2649548089&idx=1&sn=939f45217087f332f945a703c658bbe1&chksm=f1180e44c66f8752b54ff55e2f8994eec97fcca8e30c9f5a10e3503dcc029483fd630d22dd4e&scene=21#wechat_redirect

    8.内存泄露和内存溢出

    9.fragment 生命周期

    http://blog.csdn.net/forever_crying/article/details/8238863/

    10.android ANR的原因以及解决办法

    http://www.jianshu.com/p/7fd95bc2a55c

    11.android view touch 事件传递

    ViewGroup在接受到上级传下来的事件时,如果是一系列Touch事件的开始(ACTION_DOWN),ViewGroup会先看看自己需不需要拦截这个事件(onInterceptTouchEvent,ViewGroup的默认实现直接返回false表示不拦截),接着ViewGroup遍历自己所有的View。找到当前点击的那个View,马上调用目标View的dispatchTouchEvent。如果目标View的dispatchTouchEvent返回false,那么认为目标View只是在那个位置而已,它并不想接受这个事件,只想安安静静的做一个View(我静静地看着你们装*)。此时,ViewGroup还会去走一下自己dispatchTouchEvent,Done!

    12.volatile与synchronized

    1)volatile本质是在告诉jvm当前变量在寄存器中的值是不确定的,需要从主存中读取,synchronized则是锁定当前变量,只有当前线程可以访问该变量,其他线程被阻塞住.2)volatile仅能使用在变量级别,synchronized则可以使用在变量,方法.3)volatile仅能实现变量的修改可见性,而synchronized则可以保证变量的修改可见性和原子性.

    《Java编程思想》上说,定义long或double变量时,如果使用volatile关键字,就会获得(简单的赋值与返回操作)原子性4)volatile不会造成线程的阻塞,而synchronized可能会造成线程的阻塞.

    13.通过listview 实现瀑布流

    http://www.2cto.com/kf/201510/444916.html

    14.Android 中常用的设计模式

    1.单例设计模式

    2.生产者消费者模式

    3.观察者模式

    4.工厂设计模式

    15.数据结构和算法问题

    16.Android 的消息处理原理

    handler message Looper

    17.Android 的Binder 机制

    18.Android中JNI的使用

    19.Android App中常用的bug 定位和性能调优工具

    18.版本管理工具 Git 和SVN

    Git: http://www.bootcss.com/p/git-guide/

    19.android 的垃圾回收机制

    20.activity LaunchMode Task Flag 完整的流程

    21.View 的绘制 Touch事件的分发 从WindowsManagerService 完成的流程

    22.Wait 和 sleep的区别

    23. HTTPS和HTTP的区别主要如下:

    1、https协议需要到ca申请证书,一般免费证书较少,因而需要一定费用。

    2、http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。

    3、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。

    4、http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安             全。

    24.https 证书校验原理/https 交互流程

    客户端在使用HTTPS方式与Web服务器通信时有以下几个步骤,如图所示。

    (1)客户使用https的URL访问Web服务器,要求与Web服务器建立SSL连接。

    (2)Web服务器收到客户端请求后,会将网站的证书信息(证书中包含公钥)传送一份给客户端。

    (3)客户端的浏览器与Web服务器开始协商SSL连接的安全等级,也就是信息加密的等级。

    (4)客户端的浏览器根据双方同意的安全等级,建立会话密钥,然后利用网站的公钥将会话密钥加密,并传送给网站。

    (5)Web服务器利用自己的私钥解密出会话密钥。

    (6)Web服务器利用会话密钥加密与客户端之间的通信。

    相关文章

      网友评论

          本文标题:Android 面试经验

          本文链接:https://www.haomeiwen.com/subject/ubafdxtx.html