以服务于中国广大创业者为己任,立志于做最好的创业网站。

标签云创业博客联系我们

导航菜单

视频面试需要准备什么问题,视频面试一般的问题

  

  之前有两部电视剧,只有30部,但20部并不迷茫。其实我刚开始看这两部电视剧。不知道是不是相反。不应该是29岁,30岁不是很困惑吗?后来想想,其实他应该是想告诉我们这个残酷的现实吧!在这个时代,我们已经20岁了   

  

  18岁的我们,一定要成熟,接受这个世界的残酷,没有时间去犯难。这个世界总是强迫我们这样成长。30.更好的是,这是对未来的美好祝愿。30岁在哪里吃早餐,决定了你之前十年奋斗的痕迹,马尼的路边摊,秦晓的温馨幸福,顾佳的豪华早餐。   

  

  我做安卓开发已经第七年了。我在东芝、东方集团、阿里、三一重工工作了15年。熟悉汇编、Java、C/C开发语言,对系统底层、web开发、移动开发有较深的研究。主要涉及应用层mis、erp项目和各种嵌入式设备软件(手机、平板、交换机、复合机、无人机、电视、智能家居等。)   

  

  最近看了这部充满感情的剧,在想如果真的重新开始,我的人生会不会不一样!闲话少说,现在分享一个安卓高级面试问答。   

  

  #活动基础相关   

  

  比如活动生命周期?   

  

  一个活动启动另一个活动B时会调用哪些方法?如果B是透明主题或对话活动呢?   

  

  onSaveInstanceState()方法的作用是什么?什么时候叫?   

  

  Activity的四种启动模式和应用场景是什么?   

  

  知道活动中常用哪些标志吗?   

  

  说说活动和窗口、视图的关系?   

  

  横竖屏切换的活动生命周期变化?   

  

  如何启动其他应用程序的活动?   

  

  活动的激活过程?(键)   

  

  #片段基本相关性   

  

  谈谈Fragment的生命周期?   

  

  不同于活动生命周期?   

  

  谈谈活动和片段的区别?   

  

  片段中添加和替换的区别(片段重叠)   

  

  getFragmentManager、getSupportFragmentManager和getChildFragmentManager有什么区别?   

  

  FragmentPagerAdapter和FragmentStatePagerAdapter的区别和使用场景   

  

  #服务基础相关   

  

  谈谈服务的生命周期?   

  

  启动服务的两种方法?有什么区别?   

  

  如何确保军种不被杀死?耗时的操作可以在服务中启动吗?怎么做?   

  

  您使用过什么系统服务?   

  

  你知道活动管理服务吗?它扮演什么角色(焦点)?   

  

  #广播接收器基金会相关   

  

  有多少种广播形式?有什么特点?   

  

  广播的两种注册方式?   

  

  你明白广播和接收的原理吗?(装订机构,AMS)   

  

  #内容提供商基金会相关   

  

  ContentProvider知道什么?   

  

  ContentProvider的权限管理?   

  

  说说ContentProvider、ContentResolver和ContentObserver之间的关系?   

  

  #数据存储相关   

  

  描述一下Android数据的持久存储方式?   

  

  SharedPreferences的应用场景?注意事项?   

  

  在共享参考中应用和提交有什么区别?   

  

  你知道SQLite中的事务操作吗?怎么做?用SQLite做批量操作有什么好方法吗?   

  

  如何在SQLite中删除表的单个字段?   

  

  使用SQLite时有哪些优化操作?   

  

  #仪表板组合仪表(钥匙)   

  

  Android中进程和线程是什么关系?区别?   

  

  如何打开多个流程?应用程序可以打开n个进程吗?   

  

  为什么需要IPC?   

  

  多流程沟通可能会出现哪些问题?   

  

  安卓IPC模式,各种模式的优缺点,为什么选择Binder?   

  

  Binder机构的作用和原理是什么?   

  

  ServiceManager在Binder框架中的作用是什么?   

  

  为什么Bundle pass对象需要序列化?可序列化和可打包有什么区别?   

  

  谈论AIDL?原理是什么?如何优化多个模块使用AIDL的情况?   

  

  #查看相关   

  

  说说View的绘制过程?   

  

  什么运动事件?涉及多少事件?在什么条件下会发生?   

  

  描述视图事件传递和分发的机制?   

  

  如何解决事件的观点冲突?举个发展的例子?   

  

  scrollTo()和scollBy()有什么区别?   

  

Scroller是怎么实现View的弹性滑动?

  

invalidate()和postInvalidate()的区别 ?

  

SurfaceView和View的区别?

  

自定义View如何考虑机型适配 ?

  

# Handler相关

  

谈谈消息机制Handler ? 作用 ?有哪些要素 ?流程是怎样的 ?

  

一个线程能否创建多个Handler,Handler跟Looper之间的对应关系 ?

  

软引用跟弱引用的区别 Handler 引起的内存泄露原因以及最佳解决方案

  

为什么系统不建议在子线程访问UI Looper死循环为什么不会导致应用卡死

  

使用Handler的postDealy后消息队列会有什么变化 ?

  

可以在子线程直接new一个Handler吗 ?怎么做 ?

  

Message可以如何创建 ?哪种效果更好 ?为什么 ?

  

# 线程(重点)相关

  

线程池的好处?

  

线程池的几个参数的理解,四种线程池的使用场景 Android中还了解哪些方便线程切换的类?

  

讲讲AsyncTask的原理 IntentService有什么用 ?

  

直接在Activity中创建一个thread跟在service中创建一个thread之间的区别

  

ThreadPoolExecutor的工作策略 ?

  

Handler、Thread和HandlerThread的差别?

  

ThreadLocal的原理 多线程是否一定会高效(优缺点) 多线程中,

  

让你做一个单例,你会怎么做

  

除了notify还有什么方式可以唤醒线程

  

什么是ANR ? 什么情况会出现ANR ?如何避免 ?

  

在不看代码的情况下如何快速定位出现ANR问题所在 ?

  

# Bitmap相关

  

Bitmap使用需要注意哪些问题 ?

  

Bitmap.recycle()会立即回收么?

  

什么时候会回收?如果没有地方使用这个Bitmap,为什么垃圾回收不会直接回收?

  

一张Bitmap所占内存以及内存占用的计算 Android中缓存更新策略 ?

  

LRU的原理 ?

  

# 性能优化(重点)

  

图片的三级缓存中,图片加载到内存中,如果内存快爆了,会发生什么?怎么处理?

  

内存中如果加载一张500*500的png高清图片.应该是占用多少的内存?

  

WebView的性能优化 ?

  

Bitmap如何处理大图,如一张30M的大图,如何预防OOM 内存回收机制与GC算法(各种算法的优缺点以及应用场景);GC原理时机以及GC对象

  

内存泄露和内存溢出的区别 ?

  

AS有什么工具可以检测内存泄露

  

性能优化,怎么保证应用启动不卡顿?

  

黑白屏怎么处理?

  

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

  

ListView跟RecyclerView的区别, ListView的adapter是什么adapter ?

  

LinearLayout、FrameLayout、RelativeLayout性能对比,为什么?

  

# JNI相关

  

对JNI是否了解 如何加载NDK库 ?

  

如何在JNI中注册Native函数,有几种注册方法 ?

  

你用JNI来实现过什么功能 ?怎么实现的 ?(加密处理、影音方面、图形图像处理)

  

# 设计模式相关

  

你所知道的设计模式有哪些?

  

谈谈MVC、MVP和MVVM,好在哪里,不好在哪里 ?

  

封装p层之后.如果p层数据过大,如何解决 是否能从Android中举几个例子说说用到了什么设计模式 ?

  

装饰模式和代理模式有哪些区别 ?

  

实现单例模式有几种方法 ?

  

懒汉式中双层锁的目的是什么 ?两次判空的目的又是什么?

  

用到的一些开源框架,介绍一个看过源码的,内部实现过程。

  

Fragment如果在Adapter中使用应该如何解耦?

  

......

  

所有面试题以及答案已经整理成PDF文档,如下图所示: 学习笔记都是免费分享给大家的, 如果你正好需要可以点此处免费自取。

  

  

# 更多Android知识点分享

  

* 架构师筑基必备技能

  

目前Android

  

APP开发主流语言就是Java语言,Java语言最大的特性就是提高了软件的交互可能性,可以说安卓手机几乎所有应用程序都是利用Java语言来进行编写的。

  

> 知识要点:

  

> 1、深入理解Java泛型

  

> 2、注解深入浅出

  

> 3、并发编程

  

> 4、数据传输与序列化

  

> 5、Java虚拟机原理

  

> 6、高效IO

  

  

* 设计思想解读开源框架

  

随着互联网企业的不断发展,产品项目中的模块越来越多,用户体验要求也越来越高,想实现小步快跑、快速迭代的目的越来越难,插件化技术应用而生。如果没有插件化技术,美团、淘宝这些集成了大量“app”的应用,可能会有几个g那么大。

  

所以,当今的Android移动开发,不会热修复、插件化、组件化,80%以上的面试都过不了。

  

> 知识要点:

  

> 1、热修复设计

  

> 2、插件化框架设计

  

> 3、组件化框架设计

  

> 4、图片加载框架

  

> 5、网络访问框架设计

  

> 6、RXJava响应式编程框架设计

  

  

* 360°全方位性能调优

  

在不同层次的开发工程师手里,因为技术水平的参差不齐,即使很多手机在跑分软件性能非常高,打开应用依然存在卡顿现象。

  

另外,随着产品内容迭代,功能越来越复杂,UI页面也越来越丰富,也成为流畅运行的一种阻碍。综上所述,对APP进行性能优化已成为开发者该有的一种综合素质,也是开发者能够完成高质量应用程序作品的保证。

  

> 1、设计思想与代码质量优化

  

> 2、程序性能优化

  

> 启动速度与执行效率优化布局检测与优化内存优化耗电优化网络传输与数据储存优化APK大小优化

  

> 3、开发效率优化

  

> 分布式版本控制系统Git自动化构建系统Gradle

  

> 4、项目实战

  

> 启动速度流畅度抖音在APK包大小资源优化的实践优酷响应式布局技术全解析网络优化手机淘宝双十一性能优化项目揭秘高德APP全链路源码依赖分析彻底干掉OOM的实战经验分享微信Android终端内存优化实践

  

  

* Android框架体系架构

  

Android框架体系架构(高级UI+FrameWork源码) 这块知识是现今使用者最多的,我们称之Android2013~2016年的技术。

  

Android开发者也往往因为网上Copy代码习惯了而导致对这块经常“使用”的代码熟悉而又陌生:熟悉的是几乎天天在和它们打交道, 天天在复制这些代码

  

;陌生的是虽然天天和这些代码打交道,但是并没有深入研究过这些代码的原理,代码深处的内涵。

  

> 本篇知识要点:

  

> 1、高级UI晋升

  

> 2、Android内核组件

  

> 3、大型项目必备IPC

  

> 4、数据持久与序列化

  

> 5、Framework内核解析

  

  

NDK模块开发(音视频系列)

  

NDK(Native Development Kit缩写)一种基于原生程序接口的软件开发工具包,可以让您在 Android 应用中利用 C 和 C++

  

代码的工具。通过此工具开发的程序直接在本地运行,而不是虚拟机。

  

在Android中,NDK是一系列工具的集合,主要用于扩展Android

  

SDK。NDK提供了一系列的工具可以帮助开发者快速的开发C或C++的动态库,并能自动将so和Java应用一起打包成apk。

  

> 本篇知识要点:

  

> 1、NDK开发之C/C++入门

  

> 2、JNI模块开发

  

> 3、Linux编程

  

> 4、底层图片处理

  

> 5、音视频开发

  

> 6、机器学习

  

  

* Flutter学习进阶

  

2019 年无疑是 Flutter 技术如火如荼发展的一年。

  

每一个移动开发者都在为 Flutter 带来的“快速开发、富有表现力和灵活的 UI、原生性能”的特色和理念而痴狂,从超级 App 到独立应用,从纯

  

Flutter 到混合栈,开发者们在不同的场景下乐此不疲的探索和应用着 Flutter 技术,也在面临着各种各样不同的挑战。

  

> 本篇知识要点:

  

> 1、Flutter跨平台开发概述

  

> 2、Windows中Flutter开发环境搭建

  

> 3、编写你的第一个Flutter APP

  

> 4、Flutter Dart语言系统入门

  

> …

  

  

* 微信小程序开发

  

微信小程序作为现在比较火的编程开发应用场景之一,深受市场的青睐,这让不少开发者眼馋不已。但是对于初学者来说,就完全摸不着头脑了,不知道微信小程序开发制作需要学习那些知识,有需要的朋友可以参考本篇。

  

> 本篇知识要点:

  

> 1、小程序概述及入门

  

> 2、小程序UI开发

  

> 3、API操作

  

> 4、购物商场项目实战

  

  

* Android相关源码解读

  

只要是程序员,不管是Java还是Android,如果不去阅读源码,只看API文档,那就只是停留于皮毛,这对我们知识体系的建立和完备以及实战技术的提升都是不利的。

  

  

  

# 由于篇幅原因,以上完整学习笔记pdf如有需要,可以帮忙点赞支持一下,然后后台私信关键词【学习】即可获得免费领取方式。