【三年Android开发面经】双非二本,非计算机科班出身,自学Android,勇闯大厂面经

前言

本人毕业学校是双非二本,非计算机科班出身,大学时自学的Android相关技能。截止2021年8月,有3年Android开发经验,之前一直在不大不小的城市里生活,现在想着找一个更大的平台寻求发展(技术沉淀、涨薪),所以出来接受社会的毒打了。。。

本文的目的是记录自己的面试经历,各位路过的兄dei也可以参考一下,也让自己有个回顾和反思。路漫漫其修远兮,吾将上下而求索

在这里插入图片描述

下面的题目,希望各位大佬不吝赐教~

字节

  1. 自我介绍
  2. 能不能用队列实现栈(问的比较详细)
  3. 内存泄漏
  4. 线程几种状态,怎么进行切换,线程池
  5. 死锁产生原因,怎么避免
  6. http与https区别‘
  7. 完整http事务流程
  8. TCP三次握手,为什么不能两次
  9. 四次挥手,为什么不能三次
  10. 算法题,从一万个数里面选100个最大的,用什么排序算法,怎么排序。
  11. 说说自己写代码遇到什么问题
  12. 有什么要问的。

美团

  1. 自我介绍
  2. 四大组件—延伸—广播不取消注册(内存泄漏)和多线程通信方式
  3. 事件分发—延伸—(场景)按钮点击移动(cancel)和项目使用
  4. view的绘制流程—延伸—项目使用
  5. 拷打项目,问难点
  6. 设计模式(生产者与消费者模式)/算法(重排链表)
  7. 举一个最有印象,最有成就的项目——深挖 难点:高德api、小组件经营方式高德地图MapView绘制 (不会)
  8. 换项目询问—友盟集成用途
  9. 换项目结合博客内容询问,数据抓取并上传数据
  10. HTTP和HTTPS的区别
  11. HTTPS为什么是有状态的
  12. HTTP发送请求到返回数据
  13. 安卓多线程通信
  14. 生命周期描述和操作
  15. MVC和MVVM缺点和优点
  16. 项目中是否有上传图片,上传图片怎么实现
  17. 问注解 Muitpart是怎么实现的?
  18. 发送请求遇到问题,返回状态500
  19. 上传图片遇到问题呢?
  20. 请求失败,想知道发送参数?
  21. 假如没有debug包,正式上线包已经遇到接口问题?(抓包,但没用过)
  22. Flutter了解
  23. 除了安卓外,还深入了解过其他技术吗?
  24. 算法:N分钱分给M个人,每人至少1分钱以上,其他尽可能随机

小红书

  1. 自我介绍
  2. 什么时候学的Android
  3. ActivityA跳转到ActivityB的生命周期流程
  4. A不执行onStop可能是什么情况
  5. APP从点击开始的启动流程
  6. 用过Service吗,答以前用过,现在耗时任务都用协程了,然后后面就有很多Kotlin相关问题
  7. 讲一下协程
  8. 知不知道协程是如何调度的,协程的挂起和恢复
  9. 知道KAPT吗,简单答了一下KSP和KAPT
  10. 写过JNI,C++吗
  11. MVVM有什么优缺点
  12. 用过Rxjava吗
  13. 你如何理解Dsl(简历上的项目用了Dsl)
  14. 讲一下Handler原理
  15. 问项目
  16. 项目中的难点
  17. 为什么使用单Activity多Fragnent
  18. Fragment的生命周期
  19. 是否了解Fragment的动画
  20. 项目用了Retrofit,为什么写接口不用实现就可以用
  21. 算法:实现一个数据结构,添加,删除,随机获取一个的操作都是O1时间复杂度

大华

  1. 自我介绍
  2. 你觉得自己安卓什么水平
  3. 接口和抽象类的区别
  4. 深拷贝和浅拷贝的区别
  5. 讲一下委托
  6. 单例有哪些实现方法
  7. Object单例如果反编译成Java是怎么样的
  8. 组件间通信方法有哪些
  9. 自定义View流程
  10. 介绍一下项目和亮点
  11. 保存数据到本地有没有加密
  12. 了解哪些加密算法
  13. 项目里使用了单Activity多Fragment,是如何进行通信的,讲一下流程
  14. 用了Retrofit,知道他的原理吗

最后

由于文章篇幅有限,没法把我这几个月来所面试过的面试题展示出来,不过,放心,我已经将这些公司问的最多的面试题整理成一份《Android大厂面试必考问题+答案解析》PDF文档了,有需要的朋友可以扫描下方二维码领取!!!

《Android大厂面试必考问题+答案解析》

  1. SD卡

  2. android的数据存储方式

  3. BroadcastReceiver

  4. sp频繁操作会有什么后果?sp能存多少数据?

  5. dvm与jvm的区别

  6. ART

  7. Activity的生命周期
    在这里插入图片描述

  8. Application能不能启动Activity

  9. Activity的状态都有哪些

  10. 横竖屏切换时Activity的生命周期Activity的状态都有哪些

  11. 如何设置activity成窗口样式

  12. Activity的启动方式
    在这里插入图片描述

  13. Service的生命周期

  14. IntentService

  15. Fragment和Activity的onCreateOptionsMenu

  16. Service的onStartCommand有几种返回值

  17. Service的onRebind什么情况下执行

  18. Handler防止内存泄露

  19. IntentFilter的匹配法则

  20. Fragment与Activity传值

  21. Fragment 生命周期
    在这里插入图片描述

  22. Fragment的add和replace的区别 //replace==remove|append

  23. Fragment如何实现Activity栈的压栈和出栈

  24. 什么情况下造成内存泄露

  25. 图片过大导致OOM

  26. SoftReference跟WeakRefrence的区别

  27. dp与px

  28. 设置布局为一半宽、高

  29. 多分辨率支持的清单文件配置

  30. Android的事件分发机制
    在这里插入图片描述

  31. ArrayList和LinkedList的区别

  32. LruCache

  33. 什么是ANR,如何规避

  34. 描述Service的启动方式

  35. Android有哪几种布局
    在这里插入图片描述

  36. HashMap、HashTable的区别 //从线程安全性、速度

  37. 红黑树

  38. Handler Looper 工作原理

  39. Listview的几种adapter介绍

  40. 如何在ListView间添加分割线

  41. LinkedHashMap 源码解读

  42. Drawable转Bitmap

  43. Layout_weight

  44. android:layout_gravity和android:gravity的区别

  45. 如何重用布局

  46. 使用merge减少include布局所造成的布局层次

  47. 如何优化布局
    在这里插入图片描述

  48. android:layout_gravity的使用规则

  49. TextView显示图像

  50. SpannableString的使用

  51. AutoCompleteTextView的使用

  52. 在按钮上显示图像的方式有哪些

  53. 如何动态改变Button的大小和位置

  54. 如何让一个显示图像的按钮在不同状态下显示不同图像

  55. 如何实现图像的半透明度

  56. HttpURLConnection

  57. ProgressBar

  58. AbsListView

  59. ListView,如何进行数据的增删改查

  60. ListView中如何显示数据库中的数据

  61. android TypedArray

  62. 如何动态加载apk文件(未安装)的类

  63. Android ContentProvider

  64. 如何设置Activity为程序启动的默认Activity

  65. 启动Activity的几种方式
    在这里插入图片描述

  66. Activity传递数据的方式

  67. 如何将Activity设置成半透明的模态框

  68. 如何接收广播

  69. 如何获取短信内容

  70. 如何拦截手机屏幕休眠和唤醒

  71. 如何发送广播

  72. AIDL与Service

  73. 如何读取联系人信息
    在这里插入图片描述

  74. 请描述Content Provider的uri由哪几部分组成

  75. 介绍开发ContentProvider的步骤

  76. 如何为ContentProvider添加访问权限

  77. AlertDialog

  78. 如何自己控制对话框的关闭时机

  79. 如何改变对话框的透明度

  80. 如何自己控制Toast的显示和关闭

  81. 如何使用Notification
    在这里插入图片描述

  82. PendingIntent使用 //跨进程intent

  83. 点击Notification触发Activity跳转

  84. 如何自定义Notification的view

  85. 然后为一个Activity添加选项菜单

  86. 如何将上下文菜单绑定至可视组件View

  87. 在单击菜单时,如何能跳转进别的Activity

  88. 菜单的回调函数有哪些
    在这里插入图片描述

  89. 如何使用SharedPreferences存取数据

  90. SharedPreferences //构造函数(string name,int mode)

  91. Android如何解析xml文件

  92. gson

  93. 如何将table1表的数据和结构复制到table2上

  94. SQLite

  95. SQLiteOpenHelper.getReadableDatabase和SQLiteOpenHelper.getWritableDatabase将数据库文件放哪了

  96. 然后将带数据的SQLite同apk一起发布

  97. Socket连接成功后,怎么获取服务器的ip和域名

  98. BufferedInputStream mark //只有BufferedInputStream实现了mark方法

  99. 如何打开手机中的蓝牙功能
    在这里插入图片描述

  100. 如何获取已绑定的蓝牙设备

  101. 搜索蓝牙的过程中经过哪些状态

  102. 隐式Intent

  103. 如何采用广播监听去电和来电

  104. Android支持的电话状态

  105. Android如何控制接听和挂断电话

  106. 请给出访问通话记录的Content Provider URI

  107. 发送短信 //需要动态请求权限:android.permission.SEND_SMS

  108. ContactsContract

  109. VideoView 播放视频
    在这里插入图片描述

  110. 在工程路径下的res/drawable存放tree.png,如果将图片显示在View上

  111. 调用Drawable进行绘图

  112. 如何设置图像透明度

  113. 如何旋转View

  114. Activity 切换

  115. Android
    在这里插入图片描述

  116. 动画

  117. 属性动画 Animator

  118. 定义字符串数组资源

  119. 图层layer资源

  120. Clip图像资源

  121. ShapeDrawable

  122. 如何统一设置多个View的android:textSize和android:textColor

  123. 属性动画 Animator123布局文件中的”@“、”+”、”?”含义

  124. Android获取屏幕高度和宽度的办法

  125. AsyncTask

  126. Intent可传递的数据类型

  127. AlarmManager //闹钟

  128. HandlerThread

  129. 自定义ViewGroup
    在这里插入图片描述

  130. JVM的GC算法

  131. OkHttp

  132. ButterKnife //源码阅读

  133. Dalvik内存模型

  134. ART垃圾回收

  135. JVM 可达性分析中哪些对象可以作为根节点

  136. HashSet

  137. SSL中的对称加密和非对称加密

  138. Handler的内存泄露问题
    在这里插入图片描述

  139. Android volatile关键字

  140. EventBus 源码阅读 //反射Class通常采用通配符 =>Class<?>或者Class<? extends T>

  141. String a=“ abc”;String b=“ abc”; 创建了几个对象 //栈存放引用变量 堆存在new出来的对象,并且堆划分出一部分作为常量池

  142. java的单例创建

  143. Android进程优先级

  144. ThreadLocal 源码

  145. 自定义View对象
    在这里插入图片描述

  146. Android @Override //重写

  147. Android Semaphore机制

  148. Android Lock同步

  149. ThreadPoolExecutor 线程池

  150. Android下载图片通过bitmap设置ImageView

  151. ImageView

  152. onSaveInstanceState //保存app数据,当系统因内存不足时而销毁app,会得到调用

  153. ViewPager&PagerAdapter&TabFragmentPagerAdapter

  154. Fragment在横竖屏切换时的数据保存

  155. DialogFragment //采用子类继承的方式进行使用,相比AlertDialog由FragmentManager负责自动重建

  156. SQLiteDatabase

  157. IntentFilter的匹配规则

  158. Android多进程
    在这里插入图片描述

  159. Android Scroller

  160. Sqlite 连接操作

  161. Spinner

  162. RelativeLayout 源代码

  163. Message //static Message sPool,指向队列前头的可用Message对象

  164. ArrayDeque 源代码阅读

  165. RecyclerView

  166. LinearLayoutManager //RecyclerView的布局管理器

  167. GridLayoutManager

  168. RecyclerView 使用

  169. Binder

  170. ActivityThread //Android应用的主线程

  171. CountDownLatch 线程同步

  172. retrofit

  173. ClassLoader 类加载器

  174. RxJava
    在这里插入图片描述

有需要完整面试题+答案解析的朋友,可以扫描下方二维码免费领取!!!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值