近期不断面试,整理一下被问到的面试题,以及多次被问到的面试题加以标记。
注意:简历上写的内容一定要了解清楚,很大可能会问。还有就是项目中出现的问题怎么解决的。
多次被问住:
1.简单的讲解一下TCP/IP、HTTP和Socket。
答:TCP/IP是传输层/网络层协议,手机底层实现了该协议,手机端连接网络建立TCP协议,TCP协议在连接前要进行3次握手,
第一次握手:客服端发送请求,
第二次握手:服务端接收和发送请求,
第三次握手:客服端接收请求,
以上条件满足就可以建立连接,如果TCP断开连接就会进行4次挥手,TCP主要是解决数据在网络上的传递。
HTTP是基于TCP上的一种应用,tcp需要经过http解析过后才能使用。web连网的基础,主要解决数据的包装与识别应用。
Socket不是协议,是调用接口,主要是对TCP/IP协议的封装和应用。
问过一次:
1.如果fragment重叠你会怎么解决。
答:activty提供了一个保存方法和一个恢复方法,onSaveInstanceState()、onRestoreInstanceState()。在就是fragment的add方法, 在保存方法中通过fragment的add方法来tag标记等会要恢复的位置。然后在oncreate中判断,如果有就恢复当前位置。
2.如果有两个界面都是请求接口,你快速的点击这两个页面进行切换会怎么样,或者说你是怎么解决这个问题的。
答:我会在切换的时候进行判断,如果数据还在请求中我会给出一个对话框来提示用户正在加载,加载完成才能再次点击。这样做的不好就是用户的体验不太好。
3.微信支付的步骤,以及他请求的接口有几个,是通过第三方控制(友盟)的还是微信的sdk完成的。
答:请求的接口有3个,
①。客服端提交订单给服务端
②。服务器通过微信接口,来统一下单接口,然后将一个id返回给客服端。
③。客服端通过id调起微信支付
4.界面优化
答:重用布局,减少嵌套。耗时操作子线程中完成。
5.如果项目上线过后发生异常,你该如何解决
答:通过友盟的sdk来处理,在application的oncreate中初始化,达到全局控制和处理异常,如果在项目的运行中出现异常友盟会强制将异常窗口关闭,然后将异常信息发送到友盟的后台,在下次更新进行处理。
6.是否接触过图文混排,简单讲解一下
7.自定义导航栏的实现
8.怎么通过h5页面打开app
答:有一个url scheme,可以通过这个标记来打开app。
9.版本更新有几种方式以及传递给服务器的参数
答:有3种方式,1.推荐更新,2.强制更新,3.可以忽视的更新。传递的参数一般是版本号,包名,
10.引导页广告的实现
答:后台接口的定义,自己负责显示和点击的跳转。
11.用到过的密码加密方式
答:md5
面试的时候最好提前10分钟到场,不然你不知道你要等多久。一份漂亮的简历或许可以拉开和你经验差不多的人的成功率。
12.android性能优化