【链接】
(1)https://www.jianshu.com/p/2dd855aa1938
(2)https://www.jianshu.com/p/718aa3c1a70b
【1】Android中有哪几种类型的动画?
【传送门】
(1)https://www.cnblogs.com/huanyou/p/5811033.html
(2)https://www.jianshu.com/p/b117c974deaf
(1.1) 使用起来比较方便的是ObjectAnimator,可以使用ObjectAnimator直接指定需要修改的view,要修改的属性,值的变化范围。
(1.2) ValueAnimator 是ObjectAnimator的父类。它不能绑定到具体的属性上,而且没有重写setTarget方法,而Animator中的setTarget方法为空。所以ValueAnimator实际上没有设置View和对应的属性。这就要求使用者自己获取变化的值,并将值赋给具体View对象的属性。
(1.3) AnimatorSet : 如果想要在View上实现多个动画效果,可以借助于AnimatorSet。如果多个动画同时执行,可以使用AnimatorSet.playTogether方法;如果多个动画按顺序执行,可以使用AnimatorSet.playSequentially方法;如果多个动画没有统一的执行顺序,AnimatorSet提供了play,with,before,after来设置多个动画执行的顺序。
【注1】使用祯动画要注意不能使用尺寸过大的图片,否则容易造成OOM.
【2】View动画为何不能真正改变View的位置?而属性动画为何可以?
【答】View动画改变的只是View的显示,而没有改变View的响应区域;而属性动画会通过反射技术来获取和执行属性的get、set方法,从而改变了对象位置的属性值。
【3】属性动画插值器和估值器的作用?
【答】插值器(Interpolator):确定了动画效果变化的模式,如匀速变化、加速变化等
类型估值器(TypeEvaluator):根据当前属性改变的百分比计算出改变后的属性值。
【4】Activity、View、Window三者之间的关系?
【传送门】https://www.cnblogs.com/yxgyiwen/p/7232918.html
【5】Window有哪几种类型?
图片.png【6】谈谈消息机制Hander?作用?有哪些要素?流程是怎样的?
【答】作用: 跨线程通信。 当子线程中进行耗时操作后需要更新UI时,通过Handler 将有关UI的操作切换到主线程中执行。
【7】为什么系统不建议在子线程访问UI?
图片.png 图片.png【8】 一个Thread可以有几个Looper?几个Handler?
【答】一个Thread只能有一个Looper,可以有多个Handler。
【9】如何将一个Thread线程变成Looper线程?Looper线程有哪些特点?
图片.png【10】 可以在子线程直接new一个Handler吗?那该怎么做?
图片.png【11】Message可以如何创建?哪种效果更好,为什么?
图片.png【12】使用Hanlder的postDealy()后消息队列会发生什么变化?
图片.png【13】AsyncTask相比Handler有什么优点?不足呢?
图片.png【14】Android中还了解哪些方便线程切换的类?
图片.png【15】IntentService的特点?
图片.png【16】Q:什么是ANR?什么情况会出现ANR?如何避免?在不看代码的情况下如何快速定位出现ANR问题所在?
【17】加载图片的时候需要注意什么?
(1)开启子线程加载 (2)内存溢出,采用缓存算法加载 或者最好按一定的采样率将图片缩小后再加载进来。
【18】Q:LRU(Least Recently Used)算法的原理?
【答】当缓存满时, 会优先淘汰那些近期最少使用的缓存对象。主要是两种方式:
【19】性能优化可以从哪几方面入手?
【答】(1)布局
(2)图片: 三级缓存(网络 + 内存 + 本地)
(3)列表: 使用Recylerview 代替Listview 解决 滚动布局嵌套引起滑动机制冲突.
(4) 防止 内存溢出和 内存泄漏
【20】Q:内存泄漏是什么?为什么会发生?常见哪些内存泄漏的例子?都是怎么解决的?
【答】
(1)概念/原因
(2)典型例子/ 解决方案:
图片1.png 图片2.png 图片.png【21】Q:内存泄漏和内存溢出的区别 关系呢?
【答】内存泄漏 可能会引起 内存溢出。
【22】内存溢出的原因有哪些?
图片.png【23】谷歌新动态:
(1)Androidx.0的特性?
![图片.png](https://img.haomeiwen.com/i3793005/43997f73cc7a2219.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/640)
图片.png
(2)Kotlin对Java做了哪些优化?
图片.png
【24】面向对象编程的四大特性及其含义
图片.png【25】Q:String、StringBuffer和StringBuilder的区别?
图片.png【26】Q:String a=""和String a=new String("")的的关系和异同?
图片.png【27】Q:Object的equal()和==的区别?
【答】
图片.png
【28】Q:装箱、拆箱什么含义?
图片.png【29】重写和重载的区别
图片.png【30】Q:抽象类和接口的异同?
(1)一个类只能继承一个父类, 可以实现多个接口。
(2)接口的属性和方法都为静态的,抽象类可以有静态和非静态的
(3)设计上的区别:接口是对行为的抽象,无需有子类的前提,是自上而下的设计理念;抽象类是对类的抽象,建立于相似子类之上,是自下而上的设计理念
【31】Q:final、finally、finalize()分别表示什么含义
图片.png【32】Q:什么是内部类?有什么作用?静态内部类和非静态内部类的区别?
图片.png【33】Q:Java集合框架中有哪些类?都有什么特点
图片.png【34】ArrayList和LinkList的区别?
图片.png【35】Q:同步和非同步、阻塞和非阻塞的概念
图片.png【36】Q:Thread的join()有什么作用?
图片.png【37】Q:sleep()和wait()的区别?
图片.png【38】Q:说下Activity的生命周期?
图片.png【39】Q:Activity A启动另一个Activity B会回调哪些方法?如果Activity B是完全透明呢?如果启动的是一个对话框Activity呢?
图片.png【40】Q:谈谈onSaveInstanceState()方法?何时会调用?
图片.png 图片.png【41】Q:如何避免配置改变时Activity重建?
图片.png【42】Q:onNewIntent()调用时机?
图片.png【43】
图片.png【44】Q:谈一谈Fragment的生命周期?
图片.png【45】
图片.png【46】Q:谈一谈Service的生命周期?
图片.png【47】Q:Service的两种启动方式?区别在哪?
图片.png【48】Q:Service如何和Activity进行通信?
图片.png【49】Q:是否能在Service进行耗时操作?如果非要可以怎么做?
图片.png【50】Q:如何保证Service不被杀死?
图片.png【51】事件的分发与消费:
https://www.cnblogs.com/wytiger/p/5235393.html
网友评论