一、Android需要了解的基础知识点

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.  带宽消耗会增加。 

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容