1、如何让viewpager禁止滑动
解答:根据Android中动态出事件分发机制作为突破口,自定义我们自己的ViewPager,在事件拦截和事件消费函数增加开关控制
DispatchTouchEvent(MotionEvent ev); 事件分发
OnInterceptTouchEvent(MotionEvent ev);事件拦截
OnTouchEvent(Motion ev);事件消费
2、目前主流屏幕适配方法
解答:目前主流的适配器方法都是使用第三方工具(autolayout.jar),生成一套Android的适配文件,会根据手机的分辨率,获取最佳适配文件中的分辨率值
3、Android 中目前经常用到的动画有哪些?
解答:目前Android中经常用到的动画有三种:帧动画、属性动画、补间动画。第一种是将多张图片组合起来轮流播放
补间动画有:位移、透明度、缩放和旋转,这个是不会修改View的属性值
属性动画:这个会改变view属性值
4、讲讲HTTP和HTTPs有啥优缺点
解答:http是以为http开头,https是以为https开头的,第二点就是端口不一样,一个是80一个是443,https传输需要到ca申请证书,http不需要 ,第四点 http是超文本传输,信息是明文,https是具有安全性的SSL加密传输协议
第五点:http的链接很简单,是无状态的,https协议是有http协议构建的可以进行加密传输、身份认证的网络协议,要比http协议安全
5、讲讲Android中View事件的分发
解答:
1、对于 dispatchTouchEvent,onTouchEvent,return true是终结事件传递。return false 是回溯到父View的onTouchEvent方法。
2、ViewGroup 想把自己分发给自己的onTouchEvent,需要拦截器onInterceptTouchEvent方法return true 把事件拦截下来。
3、ViewGroup 的拦截器onInterceptTouchEvent 默认是不拦截的,所以return super.onInterceptTouchEvent()=return false;
4View 没有拦截器,为了让View可以把事件分发给自己的onTouchEvent,View的dispatchTouchEvent默认实现(super)就是把事件分发给自己的onTouchEvent。
配图说明下:
6、Android中Fragment的生命周期
解答:onAttach->oncreate->oncreateView->onActivityCreate->onstart->onresume->onpause-onsavainstanceState->onstop->ondestoryView->onDestory->onDetach
7、Android中Fragment的启动方式有哪些,个有啥特点
解答:fragment中的启动方式目前有两种,一种是add,一种是replace,第二种会重新创建Fragment
8、server和intentServer的区别
解答:server至少类似activity,只是没有view展示,可以在后端运行的activity,而intentServer则是server+thread的结合体,intentserver中可以操作耗时操作,
9、内层溢出和内存泄漏有啥区别,哪些动作会产生内存益处和内层泄漏
解答:内层溢出主要是内层控件分配不足的时候就会出现内层溢出
内层泄漏是主要是当我们对象在堆内层中,对象不可达时,但是其他对象还持有该对象的引用,造成GC无法回收(最多体现就是activity生命周期不一致造成的)
【1.Handler造成的内存泄漏
就是比如你点击一个按钮,发送Handler的消息,但是还没有发送出去,用户销毁了当前的Activtiy。去寻找当前Handler的对象时,发现他已经被销毁了。所以造成的内存泄漏。
2.WebView造成内存泄漏
Android混合开发时经常用到WebView加载html等页面,而WebView的内存泄漏就是最经常遇到的问题,尤其是当项目中需要用webview加载的页面比较多时。webview下面的callback持有activity引用,造成webview内存无法释放。这个关于WebView的http://blog.csdn.net/xygy8860/article/details/53334476
3.单利模式造成的内存泄漏等
在我们使用单利模式的时候,会传入一个上下文。这个上下文如果传入的是一个Activity的上下文就会造成内存泄漏。因为单利模式是在全局只有一个对象,他是整个项目的生命周期。所以传入上下文是我们的应该是使用的Application的上下文。
4.ViewHolder造成的内存泄漏
ViewHolder造成的内存泄漏主要就是,内部类持有外部类的引用。一般我们不会在ViewHolder中做耗时操作,万一,可能,就有些需求会呢。。就是非静态内部类造成的内存泄漏,像这种情况就是前面添加上static。
5、内存溢出大部分就会出现在图片上造成的内存溢出。
】
10、https和https区别
1. http 的URL 以http:// 开头,https以https:// 开头。
2. http 标准端口是80 ,https是443。
3.https 协议需要到ca申请证书,http不需要。
4.http 是超文本传输协议,信息是明文传输,https 则是具有安全性的ssl加密传输协议。
5.http 的连接很简单,是无状态的,https协议是由SSL+http协议构建的可进行加密传输、身份认证的网络协议 要比http协议安全。
优点:
1. 通过证书可以更信任服务器。
2. 更安全,防篡改。
缺点:
1. https 需要证书。
2. 因为对传输进行加密,会一定程度增加cpu消耗。
3. 由于https 要还密钥和确认加密算法的需要,所以首次建立连接会慢一些。
4. 带宽消耗会增加。