android dialog动画_2019年字节跳动腾讯Android面试必问:性能优化+JNI+布局+WebView

前言

面对即将到来的金九银十,作为一个开发人员,你是否面上了自己理想的公司,薪资达到心中理想的高度?

4c8c85c9-6fc6-498a-89e4-b55d26b5b2d9

下面为大家整理了阿里、腾讯和字节跳动等大厂的面试高频题,目录如下:在这由于文字很多,我总结了Android面试所涉及到的常问范围及常问面试题免费分享给大家,文末有领取!

  • 1.四大组件
  • 2.Fragment
  • 3.自定义组件、动画
  • 4.存储
  • 5.网络
  • 6.图片
  • 7.布局
  • 8.性能优化
  • 9.JNI
  • 10.进程间通信(简称:IPC)
  • 11.WebView
  • 12.进程保活
af13ac99-e955-40a2-870f-b1767e0acda5

1.四大组件

  • Activity
  • Service
  • Content Provider
  • Broadcast Receiver

(1.1)四大组件是什么

(1.2 )四大组件的生命周期

(1.3)Activity之间的通信方式

(1.4)横竖屏切换的时候,Activity 各种情况下的生命周期

(1.5)Activity与Fragment之间生命周期比较

(1.6)Activity上有Dialog的时候按Home键时的生命周期

(1.7)两个Activity 之间跳转时必然会执行的是哪几个方法?

(1.8)Activity的四种启动模式对比以及使用场景

(1.9)Activity状态保存与恢复

(1.10)Activity 怎么和Service 绑定

(1.11)Service和Activity怎么进行数据交互?

(1.12)Service的开启方式

(1.13)请描述一下Service 的生命周期

(1.14)谈谈你对ContentProvider的理解

(1.15)ContentProvider、ContentResolver、ContentObserver 之间的关系

(1.16)请描述一下广播BroadcastReceiver的理解(实现原理)

(1.17)广播的分类

(1.18)广播使用的方式和场景

(1.19)本地广播和全局广播有什么差别?

(1.20)Application 和 Activity 的 Context 对象的区别

2.Fragment

(2.1)什么是Fragment

(2.2)为什么要用Fragment

(2.3)Fragment与Activity的通信方式

(2.4)Fragment各种情况下的生命周期

(2.5)Fragment之间传递数据的方式?

(2.6)Fragment的add与replace的区别

(2.7)用Fragment有遇过什么坑吗,怎么解决

(2.8)getFragmentManager,getSupportFragmentManager ,getChildFragmentManager三者之间的区别

(2.9)FragmentPagerAdapter与FragmentStatePagerAdapter的区别与使用场景

3.自定义组件、动画

(3.1)描述一下View的绘制流程

(3.2)说说自定义view的几个构造函数

(3.3)View 里面的 onSavedInstanceState和onRestoreInstanceState的作用

(3.4)onLayout() 和Layout()的区别

(3.5)描述一下getX、getRawX、getTranslationX

(3.6)Android中的动画有哪几类,它们的特点和区别是什么

(3.7)Interpolator和TypeEvaluator的作用

(3.8)请描述一下View事件传递分发机制

(3.9)事件分发中的onTouch 和onTouchEvent 有什么区别,又该如何使用?

(3.10)View和ViewGroup分别有哪些事件分发相关的回调方法

(3.11)View刷新机制

4.存储

(4.1)描述一下你知道的数据存储方式

(4.2)SharedPreferences的应用场景,核心原理是什么

(4.3)SharedPreferences是线程安全的吗?

(4.4)描述一下图片存储在本地的方式

(4.5)sqlite升级,增加字段的语句

(4.6)数据库框架对比和源码分析

(4.7)数据库的优化

(4.8)数据库数据迁移问题

5.网络

(5.1)描述一次网络请求的流程

(5.2)HTTP报文结构

(5.3)HttpClient和HttpURLConnection的区别

(5.4)Volley,okhttp,retrofit之间的区别和核心原理和使用场景

(5.5)描述一下https

(5.6)https中哪里用了对称加密,哪里用了非对称加密,对加密算法(如RSA)等是否有了解?

(5.7)说一下三次握手,四次挥手的具体细节

我经常用面试问别人这道题,哈哈,为什么不能两次握手呢?要三次?

(5.8)描述一下socket是什么东西

(5.9)从网络加载一个10M的图片,说下注意事项

(5.10)TCP与UDP的区别

(5.11)client如何确定自己发送的消息被server收到?

(5.12)WebSocket与socket的区别

(5.13)网络请求缓存处理,okhttp如何处理网络缓存的

(5.14)自己去设计网络请求框架,怎么做?

6.图片

(6.1)说一下OOM的原因,如何避免

(6.2)说一下三级缓存的原理

(6.3)描述一下内存缓存的容器

(6.4)图片库对比

(6.5)图片库的源码分析

(6.6)图片框架缓存实现

(6.7)LRUCache原理

(6.9)自己去实现图片库,怎么做?

(6.12)说说Glide内存缓存的具体实现?

7.布局

(7.1)说一下布局性能的排序,谁的效率最高

(7.2)描述一下约束布局

(7.3)关于布局优化的方案

(7.4)怎么检测布局深度

(7.5)LinearLayout、RelativeLayout、FrameLayout的特性及对比,并介绍使用场景。

8.性能优化

PS:性能优化包括内存,处理效率,视觉流畅度,CPU,电量,流量等方面,针对手机的性能去做相应的方案。个人认为更应该把握好内存优化、处理效率(代码质量)、视觉流畅度(布局优化)。

(8.1)ANR产生的原因是什么?

(8.3)oom是什么?

(8.4)什么情况导致oom?

(8.5)有什么解决方法可以避免OOM?

(8.6)Oom 是否可以try catch?为什么?

(8.7)内存泄漏是什么?

(8.8)什么情况导致内存泄漏?

(8.9)如何防止线程的内存泄漏?

(8.10)内存泄露的解决方法

(8.11)内存泄漏和内存溢出区别?

(8.12)如何对Android 应用进行性能分析以及优化?

(8.13)怎么去除无用代码?

(8.14)性能优化如何分析systrace?

(8.15)用IDE如何分析内存泄漏?

(8.16)Java多线程引发的性能问题,怎么解决?

(8.17)启动页白屏及黑屏解决?

(8.18)启动太慢怎么解决?

(8.19)怎么保证应用启动不卡顿?

(8.20)App启动崩溃异常捕捉

(8.21)自定义View注意事项

(8.22)现在下载速度很慢,试从网络协议的角度分析原因,并优化(提示:网络的5层都可以涉及)。

(8.23)Https请求慢的解决办法(提示:DNS,携带数据,直接访问IP)

(8.24)如何保持应用的稳定性

内存,布局优化,代码质量,数据结构效率,针对业务合理的设计框架

(8.25)RecyclerView和ListView的性能对比

(8.26)ListView的优化

(8.27)RecycleView优化

(8.28)View渲染

(8.29)Bitmap如何处理大图,如一张30M的大图,如何预防OOM

重点是在对于对内存的了解以及内存使用率的掌握

(8.30)java中的四种引用的区别以及使用场景

(8.31)强引用置为null,会不会被回收?

9.JNI

(9.1)请介绍一下NDK

(9.2)什么是NDK库?

(9.3)如何在JNI中注册native函数,有几种注册方式?

(9.4)Java如何调用c、c++语言?

(9.5)JNI如何调用java层代码?

(9.6)你用JNI来实现过什么功能吗?怎么实现的?

10.进程间通信(简称:IPC)

(10.1)进程间通信的方式?

(10.2)Binder机制的作用和原理

(10.3)简述IPC?

(10.4)什么是AIDL?

(10.5)AIDL解决了什么问题?

(10.6)AIDL如何使用?

(10.8)Android进程分类?

(10.9)进程和 Application 的生命周期?

(10.10)进程调度

(10.11)谈谈对进程共享和线程安全的认识

11.WebView

(11.1)描述一下Webview的作用

(11.2)WebView的内核是什么

(11.3)描述一下WebView与js的交互方式

(11.4)描述一下WebView的缓存机制

(11.5)关于WebView的优化你知道哪些

(11.6)有没有用过第三方WebView组件?讲一讲优势

12.进程保活

最后

针对于上面的面试题,我整理了四大组件、Fragment、自定义组件、动画、存储、网络、图片、布局、性能优化、JNI、进程间通信(简称:IPC)、WebView和进程保活的资料。

希望能帮助到您面试前的复习且找到一个好的工作,也节省大家在网上搜索资料的时间来学习。合理利用自己每一分每一秒的时间来学习提升自己,不要再用"没有时间“来掩饰自己思想上的懒惰!趁年轻,使劲拼,给未来的自己一个交代!文末分享架构资料,私信【面试】领取免费获取方式

95b177ab5cbb424480b03873e9736462

部分资料图片

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值