Android权限处理,终局之战

### **面试题如下(答案太长不方便展开,仅仅展示部分)** 1. Android属性动画实现原理; 2. 补间动画实现原理 3. Android各个版本API的区别 4. Requestlayout,onlayout,onDraw,DrawChild区别与联系 5. invalidate和postInvalidate的区别及使用 6. Activity-Window-View三者的差别 7. 谈谈对Volley的理解 8. 描述一次网络请求的流程 9. HttpUrlConnection 和 okhttp关系 **10.如何优化自定义View** > 1)在要在onDraw或是onLayout()中去创建对象,因为onDraw()方法可能会被频繁调用,可以在view的构造函数中进行创建对象; > 2)降低view的刷新频率,尽可能减少不必要的调用invalidate()方法。或是调用带四种参数不同类型的invalidate(),而不是调用无参的方法。无参变量需要刷新整个view,而带参数的方法只需刷新指定部分的view。在onDraw()方法中减少冗余代码。 > 3)使用硬件加速,GPU硬件加速可以带来性能增加。 > 4)状态保存与恢复,如果因内存不足,Activity置于后台被杀重启时,View应尽可能保存自己属性,可以重写onSaveInstanceState和onRestoreInstanceState方法,状态保存。 **11.低版本SDK如何实现高版本api?** > 使用@TargetApi注解· > 当代码中有比AndroidManifest中设置的android:minSdkVersion版本更高的方法,此时编译器会提示警告,解决方法是在方法上加上@SuppressLint("NewApi")或者@TargetApi()。但它们仅是屏蔽了android lint错误,在方法中还要判断版本做不同的操作。 > @SuppressLint("NewApi")屏蔽一切新api中才能使用的方法报的android lint错误 > @TargetApi() 只屏蔽某一新api中才能使用的方法报的android lint错误,如@TargetApi(11)如果在方法中用了只有API14才开始有的方法,还是会报错。 ### **面试经验总结** 1.一定要谨慎对待写在简历上的东西,一定要对简历上的东西非常熟悉。因为一般情况下,面试官都是会根据你 的简历来问的; 2.能有一个上得了台面的项目也非常重要,这很可能是面试官会大量发问的地方,所以在面试 之前好好回顾一下自己所做的项目; 3.和面试官聊基础知识比如设计模式的使用、多线程的使用等等,可以结合具体的项目场景或者是自己在平时是 如何使用的; 4.建议提前了解一下自己想要面试的公司的价值观,判断一下自己究竟是否适合这个公司。 5.另外,我个人觉得面试也像是一场全新的征程,失败和胜利都是平常之事。所以,劝各位不要因为面试失败而灰心、 丧失斗志。也不要因为面试通过而沾沾自喜,等待你的将是更美好的未来,继续加油! ## 实战系列 话不多说,Android实战系列集合都已经系统分类好,**由于文章篇幅问题没法过多展示,获取学习笔记链接:[点击我的GitHub免费获取](https://github.com/a120464/Android-P7/blob/master/Android%E5%BC%80%E5%8F%91%E4%B8%8D%E4%BC%9A%E8%BF%99%E4%BA%9B%EF%BC%9F%E5%A6%82%E4%BD%95%E9%9D%A2%E8%AF%95%E6%8B%BF%E9%AB%98%E8%96%AA%EF%BC%81.md)** ![](http://www.icode9.com/i/li/?n=2&i=images/20210701/1625134765399628.jpg) ![](http://www.icode9.com/i/li/?n=2&i=images/20210701/1625134766160356.jpg)
上一篇:Python3 类与对象


下一篇:关于程序员programmer职业生涯的思考