百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 编程字典 > 正文

Android面试点梳理_android面试宝典

toyiye 2024-04-03 23:10 22 浏览 0 评论

Activity

  • 说下Activity生命周期Q ?
  • Activity A启动另一个Activity B会调用哪些方法?如果B是透明主题的又或则是个
    DialogActivity呢?
  • 说下onSavelnstanceState(方法的作用 ?何时会被调用?
  • 说下Activity的四种启动模式、应用场景?
  • 了解哪些Activity常用的标记位Flags?
  • 说下Activity跟window, view之间的关系?
  • 横竖屏切换的Activity生命周期变化?
  • 如何启动其他应用的Activity?
  • Activity的启动过程? (重点)Fragment
  • 谈一谈Fragment的生命周期?与Activity生命周期的不同?
  • 谈谈Activity和Fragment的区别?
  • Fragment中add与replace的区别 (Fragment重叠)
    getFragmentManager. getSupportFragmentManager 、getChildFragmentManager之间
    的区别?
  • FragmentPagerAdapter与FragmentStatePagerAdapter的区别与使用场景Service
  • 谈一谈Service的生命周期?
  • Service的两种启动方式?区别在哪?
  • 如何保证Service不被杀死?
  • 能否在Service开启耗时操作?怎么做?
  • 用过哪些系统Service ?
  • 了解ActivityManagerService吗?发挥什么作用(重点)
    Broadcast Receiver
  • 广播有几种形式?都有什么特点?
  • 广播的两种注册方式?
  • 广播发送和接收的原理了解吗? (Binder机制、 AMS)
    ContentProvider
  • ContentProvider了解多少?
  • ContentProvider的权限管理?
  • 说说ContentProvider、 ContentResolver、 ContentObserver之间的关系?
  • 数据存储
  • 描述一下Android数据持久存储方式?
  • SharedPreferences的应用场景? 注意事项?
    SharedPrefrences的apply和commit有什么区别?
  • 了解SQLite中的事务操作吗?如何做的
  • 使用SQLite做批量 操作有什么好的方法吗?
  • 如何删除SQLite中表的个别字段?
  • 使用SQLite时会有哪些优化操作?
    IPC (重点)
  • Android中进程和线程的关系? 区别?
  • 如何开启多进程?应用是否可以开启N个进程?
  • 为何需要IPC?多进程通信可能会出现的问题?
  • Android中IPC方式、 各种方式优缺点,为什么选择Binder?
  • Binder机制的作用和原理?
  • Binder框架中ServiceManager的作用?
    Bundle传递对象为什么需要序列化9? Serialzable和Parcelable的区别?
  • 讲讲AIDL?原理是什么?如何优化多模块都使用AIDL的情况?View
  • 讲下View的绘制流程?
  • MotionEvent是什么?包含几种事件?什么条件下会产生?
  • 描述一下View事件传递分发机制?
  • 如何解决View的事件冲突?举个开发中遇到的例子?
    scrolITo0和scollBy0的区别? .
  • 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的工作策略Q ?
    Handler、Thread和Handler Thread的差别?
    ThreadL ocal的原理
    多线程是否一定会高效(优缺点)
  • 多线程中,让你做一 个单例,你会怎么做
  • 除了notify还有什么方式可以唤醒线程
  • 什么是ANR ?什么情况会出现ANR ?如何避免?在不看代码的情况下如何快速定位出现ANR问题所在?

Bitmap

  • Bitmap使用需要注意哪些问题?
  • Bitmap.recycle0会立即回收么?什么时候会回收?如果没有地方使用这个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

  • 对JINI是否了解
  • 如何加载NDK库?如何在JNI中注册Native函数,有几种注册方法?
  • 你用JNI来实现过什么功能?怎么实现的? (加密处理、 影音方面、图形图像处理)
    设计模式
  • 你所知道的设计模式有哪些?
  • 谈谈MVC、MVP和MWVM,好在哪里,不好在哪里?
  • 封装p层之后,如果p层数据过大,如何解决
  • 是否能从Android中举几个例子说说用到了什么设计模式?装饰模式和代理模式有哪些区别?
  • 实现单例模式有几种方法?懒汉式中双层锁的目的是什么?两次判空的目的又是什么?
  • 用到的一些开源框架,介绍一个看过源码的,内部实现过程。
  • Fragment如果在Adapter中使用应该如何解耦?

Android进阶延伸点

  • 如何进行单元测试9,如何保证App稳定
  • Android中如何查看一 个对象的回收情况
  • APK的大小如何压缩?
  • 如何通过Gradle配置多渠道包?
  • 插件化原理分析
  • 组建化原理
  • 跨组件通信
  • 组件化中路由、埋点的实现Hook以及插桩技术
  • Android的签名机制
  • v3签名key和v2还有v1有什么区别
  • Android5.0~10.0之间大的变化 ?
  • 说下Measurepec这个类
  • 请例举Android中常用布局类型,并简述其用法以及排版效率
    区别Animation和Animator的用法,概述其原理
  • 使用过什么图片加载库? Glide的源码设计哪里很微妙?
  • 如何绕过9.0限制?
  • 过哪些网络加载库? OkHttp、 Retrofit实现原理?
  • 对于应用更新这块是如何做的? (灰度,强制更新、分区域更新)
  • 会用Kotlin、 Fultter吗 ?谈谈你的理解最后简历首选内推方式,速度快,效率高啊!然后可以在拉钩,boss, 脉脉,大街上看看。简历上写道熟悉什么技术就一定要去熟悉它,不然被问到不会很尴尬!做过什么项目,即使项目体量不大,但也一定要熟悉实现原理!不是你负责的部分,也可以看看同事是怎么实现的,换你来做你会怎么做?做过什么,会什么是广度问题,取决于项目内容。但做过什么,达到怎样一个境界, 这是深度问题,和个人学习能力和解决问题态度有关了。大公司看深度,小公司看广度。大公司面试你会的,小公司面试他们用到的你会不会,也就是岗位匹配度。

选定你想去的几家公司后,先去一些小的公司练练, 学习下面试技巧,总结下,也算是熟悉下面试氛围,平时和同事或者产品PK时可以讲得头头是道,思路清晰至极,到了现场真的不一样,怎么描述你所做的一切,这绝对是个学术性问题!

面试过程一定要有礼貌! 即使你觉得面试官不尊重你,经常打断你的讲解,或者你觉得他不如你,问的问题缺乏专业水平,你也-定要尊重他,谁叫现在是他选择你,等你拿到offer后就是你选择他了。

金三银四试季,跳槽季,整理面试题已经成了我多年的习惯!在这里我和身边一些朋友特意整理了一份快速进阶为Android高级工程师的系统且全面的学习资料。 涵盖了Android初级——Android高级架构师进阶必备的一些学习技能。

附上:我们之前因为秋招收集的二十套一二线互联网公司Android面试真题
(含BAT、小米、华为、美团、滴滴)和我自己整理Android复习笺记(包含Android基础知识点、Android扩
展知识点Android源码解析、设计模式汇总、Gradle知识点常见算法题汇总。)

《Android中高级面试题汇总(2022)》,里面包含了所有Android面试的知识点,刷完进大厂妥妥的!

Java基础

1.静态内部类和非静态内部类的比较

2.多态的理解与应用

3.java方法的多态性理解

4.java中接口和继承的区别

5.线程池的好处,详解,单例(绝对好记)


6.线程池的优点及其原理

7.线程池的优点(重点)

8.为什么不推荐通过Executors直接创建线程池

9.不怕难之BlockingQueue及其实现

Android基础


1.Activity知识点(必问)

2.Fragment知识点


3.Service知识点

4.Intent知识点

性能优化篇


1.启动优化

2.内存优化


3.绘制优化

4.安装包优化

源码流程篇


1.开源库源码分析

2.Glide源码分析

3.Android面试题:Glide

4.day 20 面试题:Glide面试题

5.聊一聊关于Glide在面试中的那些事


6.面试官:简历上如果写Glide,请注意以下几点...

7.Glide OOM问题解决方法汇总

8.OkHttp源码解析

9.okhttp连接池复用机制

10.okhttp 流程和优化的实现

11.一篇让你受用的okhttp分析

12.OkHttp面试之--OkHttp的整个异步请求流

......

最新面试题合集

1.android事件分发机制,请详细说下整个流程

2.android view绘制机制和加载过程,请详细说下整个流程


3.android四大组件的加载过程,请详细介绍下

4.Activity的启动模式


5.A、B、C、D分别是四种Activity的启动模式,那么A->B->C->D->A->B->C->D分别启动,最后的activity栈是怎么样的

6.Activity缓存方法

7.Service的生命周期,两种启动方法,有什么区别

8.怎么保证service不被杀死

9.静态的Broadcast 和动态的有什么区别

10.Intent可以传递哪些数据类型

11.Json有什么优劣势、解析的原理

12.一个语言的编译过程

......
备注:由于本套笔记干货内容过多,没有办法一 一展示,在这里放上目录给大家欣赏一下,有需要的朋友可以在“文末领取”,希望这套笔记可以帮助到大家,让大家在面试的道路上畅通无阻!


由于文章篇幅有限,文档资料内容较多,需要 Flutter资料、《2022最新Android面试真题+解析》、数据结构与算法面试题、Java 面试题、Android四大组件、Android 面试题、UI控件篇、网络通信篇、架构设计篇、性能优化篇、源码流程篇、 Kotlin方面、第三方框架、大厂面经,可以私信我,备注暗号,学习【免费获取】,希望能够共同进步,共同学习,共勉!

相关推荐

为何越来越多的编程语言使用JSON(为什么编程)

JSON是JavascriptObjectNotation的缩写,意思是Javascript对象表示法,是一种易于人类阅读和对编程友好的文本数据传递方法,是JavaScript语言规范定义的一个子...

何时在数据库中使用 JSON(数据库用json格式存储)

在本文中,您将了解何时应考虑将JSON数据类型添加到表中以及何时应避免使用它们。每天?分享?最新?软件?开发?,Devops,敏捷?,测试?以及?项目?管理?最新?,最热门?的?文章?,每天?花?...

MySQL 从零开始:05 数据类型(mysql数据类型有哪些,并举例)

前面的讲解中已经接触到了表的创建,表的创建是对字段的声明,比如:上述语句声明了字段的名称、类型、所占空间、默认值和是否可以为空等信息。其中的int、varchar、char和decimal都...

JSON对象花样进阶(json格式对象)

一、引言在现代Web开发中,JSON(JavaScriptObjectNotation)已经成为数据交换的标准格式。无论是从前端向后端发送数据,还是从后端接收数据,JSON都是不可或缺的一部分。...

深入理解 JSON 和 Form-data(json和formdata提交区别)

在讨论现代网络开发与API设计的语境下,理解客户端和服务器间如何有效且可靠地交换数据变得尤为关键。这里,特别值得关注的是两种主流数据格式:...

JSON 语法(json 语法 priority)

JSON语法是JavaScript语法的子集。JSON语法规则JSON语法是JavaScript对象表示法语法的子集。数据在名称/值对中数据由逗号分隔花括号保存对象方括号保存数组JS...

JSON语法详解(json的语法规则)

JSON语法规则JSON语法是JavaScript对象表示法语法的子集。数据在名称/值对中数据由逗号分隔大括号保存对象中括号保存数组注意:json的key是字符串,且必须是双引号,不能是单引号...

MySQL JSON数据类型操作(mysql的json)

概述mysql自5.7.8版本开始,就支持了json结构的数据存储和查询,这表明了mysql也在不断的学习和增加nosql数据库的有点。但mysql毕竟是关系型数据库,在处理json这种非结构化的数据...

JSON的数据模式(json数据格式示例)

像XML模式一样,JSON数据格式也有Schema,这是一个基于JSON格式的规范。JSON模式也以JSON格式编写。它用于验证JSON数据。JSON模式示例以下代码显示了基本的JSON模式。{"...

前端学习——JSON格式详解(后端json格式)

JSON(JavaScriptObjectNotation)是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它基于JavaScriptProgrammingLa...

什么是 JSON:详解 JSON 及其优势(什么叫json)

现在程序员还有谁不知道JSON吗?无论对于前端还是后端,JSON都是一种常见的数据格式。那么JSON到底是什么呢?JSON的定义...

PostgreSQL JSON 类型:处理结构化数据

PostgreSQL提供JSON类型,以存储结构化数据。JSON是一种开放的数据格式,可用于存储各种类型的值。什么是JSON类型?JSON类型表示JSON(JavaScriptO...

JavaScript:JSON、三种包装类(javascript 包)

JOSN:我们希望可以将一个对象在不同的语言中进行传递,以达到通信的目的,最佳方式就是将一个对象转换为字符串的形式JSON(JavaScriptObjectNotation)-JS的对象表示法...

Python数据分析 只要1分钟 教你玩转JSON 全程干货

Json简介:Json,全名JavaScriptObjectNotation,JSON(JavaScriptObjectNotation(记号、标记))是一种轻量级的数据交换格式。它基于J...

比较一下JSON与XML两种数据格式?(json和xml哪个好)

JSON(JavaScriptObjectNotation)和XML(eXtensibleMarkupLanguage)是在日常开发中比较常用的两种数据格式,它们主要的作用就是用来进行数据的传...

取消回复欢迎 发表评论:

请填写验证码