Android面试专题 | 大厂安卓开发高频面试真题174问(附详细答案)

article/2025/10/12 23:44:37

每年求职季就是修罗场,无数人削尖了脑袋想进大厂,我身边当然不乏和我一样心怀大厂梦的人,但大家也都清楚进入大厂的难度有多高。

在入职谷歌之前我也曾经历无数坎坷,陷入过技术瓶颈和人生低谷,面试前艰苦的复习与面试期巨大的心理压力令我至今想起都一阵心悸。

作为过来人,我非常希望能够尽自己所能帮助前路迷茫的程序员人群。首先,我们千万不能漫无目的地复习!许多人会着重参考投递岗位的要求或大厂的热门问题,但这些过于碎片化了。最好的方式就是能建立系统的框架,在扎实的基础之上精进技术、查漏补缺。

当然,在之前的文章中,我也分享过一份《2022Android中高级面试题大全》,共计1932页,非常全面。但近期收到大家反馈说根本看不完。因此,这里我总结了一份精简版的题集,只有174道题,却涵盖了所有Android基础和进阶相关的必问题目,能够让大家做到真正地高效复习

《Android大厂面试174问》

  1. SD卡
  2. android的数据存储方式
  3. BroadcastReceiver
  4. sp频繁操作会有什么后果?sp能存多少数据?
  5. dvm与jvm的区别
  6. ART
  7. Activity的生命周期

img

  1. Application能不能启动Activity
  2. Activity的状态都有哪些
  3. 横竖屏切换时Activity的生命周期Activity的状态都有哪些
  4. 如何设置activity成窗口样式
  5. Activity的启动方式

img

  1. Service的生命周期

  2. IntentService

  3. Fragment和Activity的onCreateOptionsMenu

  4. Service的onStartCommand有几种返回值

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

  6. Handler防止内存泄露

  7. IntentFilter的匹配法则

  8. Fragment与Activity传值

  9. Fragment 生命周期

    img

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

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

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

  13. 图片过大导致OOM

  14. SoftReference跟WeakRefrence的区别

  15. dp与px

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

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

  18. Android的事件分发机制

img

  1. ArrayList和LinkedList的区别

  2. LruCache

  3. 什么是ANR,如何规避

  4. 描述Service的启动方式

  5. Android有哪几种布局

    img

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

  7. 红黑树

  8. Handler Looper 工作原理

  9. Listview的几种adapter介绍

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

  11. LinkedHashMap 源码解读

  12. Drawable转Bitmap

  13. Layout_weight

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

  15. 如何重用布局

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

  17. 如何优化布局

    img

  18. android:layout_gravity的使用规则

  19. TextView显示图像

  20. SpannableString的使用

  21. AutoCompleteTextView的使用

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

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

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

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

  26. HttpURLConnection

  27. ProgressBar

  28. AbsListView

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

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

  31. android TypedArray

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

  33. Android ContentProvider

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

  35. 启动Activity的几种方式

img

  1. Activity传递数据的方式

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

  3. 如何接收广播

  4. 如何获取短信内容

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

  6. 如何发送广播

  7. AIDL与Service

  8. 如何读取联系人信息

    img

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

  10. 介绍开发ContentProvider的步骤

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

  12. AlertDialog

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

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

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

  16. 如何使用Notification

img

  1. PendingIntent使用 //跨进程intent
  2. 点击Notification触发Activity跳转
  3. 如何自定义Notification的view
  4. 然后为一个Activity添加选项菜单
  5. 如何将上下文菜单绑定至可视组件View
  6. 在单击菜单时,如何能跳转进别的Activity
  7. 菜单的回调函数有哪些

img

  1. 如何使用SharedPreferences存取数据
  2. SharedPreferences //构造函数(string name,int mode)
  3. Android如何解析xml文件
  4. gson
  5. 如何将table1表的数据和结构复制到table2上
  6. SQLite
  7. SQLiteOpenHelper.getReadableDatabase和SQLiteOpenHelper.getWritableDatabase将数据库文件放哪了
  8. 然后将带数据的SQLite同apk一起发布
  9. Socket连接成功后,怎么获取服务器的ip和域名
  10. BufferedInputStream mark //只有BufferedInputStream实现了mark方法
  11. 如何打开手机中的蓝牙功能

img

  1. 如何获取已绑定的蓝牙设备
  2. 搜索蓝牙的过程中经过哪些状态
  3. 隐式Intent
  4. 如何采用广播监听去电和来电
  5. Android支持的电话状态
  6. Android如何控制接听和挂断电话
  7. 请给出访问通话记录的Content Provider URI
  8. 发送短信 //需要动态请求权限:android.permission.SEND_SMS
  9. ContactsContract
  10. VideoView 播放视频

img

  1. 在工程路径下的res/drawable存放tree.png,如果将图片显示在View上
  2. 调用Drawable进行绘图
  3. 如何设置图像透明度
  4. 如何旋转View
  5. Activity 切换
  6. Android

img

  1. 动画
  2. 属性动画 Animator
  3. 定义字符串数组资源
  4. 图层layer资源
  5. Clip图像资源
  6. ShapeDrawable
  7. 如何统一设置多个View的android:textSize和android:textColor
  8. 属性动画 Animator123布局文件中的”@“、”+”、”?”含义
  9. Android获取屏幕高度和宽度的办法
  10. AsyncTask
  11. Intent可传递的数据类型
  12. AlarmManager //闹钟
  13. HandlerThread
  14. 自定义ViewGroup

img

  1. JVM的GC算法

  2. OkHttp

  3. ButterKnife //源码阅读

  4. Dalvik内存模型

  5. ART垃圾回收

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

  7. HashSet

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

  9. Handler的内存泄露问题

    img

  10. Android volatile关键字

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

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

  13. java的单例创建

  14. Android进程优先级

  15. ThreadLocal 源码

  16. 自定义View对象

    img

  17. Android @Override //重写

  18. Android Semaphore机制

  19. Android Lock同步

  20. ThreadPoolExecutor 线程池

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

  22. ImageView

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

  24. ViewPager&PagerAdapter&TabFragmentPagerAdapter

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

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

  27. SQLiteDatabase

  28. IntentFilter的匹配规则

  29. Android多进程

img

  1. Android Scroller
  2. Sqlite 连接操作
  3. Spinner
  4. RelativeLayout 源代码
  5. Message //static Message sPool,指向队列前头的可用Message对象
  6. ArrayDeque 源代码阅读
  7. RecyclerView
  8. LinearLayoutManager //RecyclerView的布局管理器
  9. GridLayoutManager
  10. RecyclerView 使用
  11. Binder

img

  1. ActivityThread //Android应用的主线程
  2. CountDownLatch 线程同步
  3. retrofit
  4. ClassLoader 类加载器
  5. RxJava

由于文章内容比较多,篇幅有限,资料已经被整理成了PDF文档,有需要《Android面试大厂必考174题》完整文档的可点击下方卡片免费领取👇!!


http://chatgpt.dhexx.cn/article/sMdjEbii.shtml

相关文章

最全Android面试题汇总(面试总结全)

java基础&#xff0c;数据结构&#xff0c;网络&#xff0c;Android相关等等。适合中高级工程师 相关链接&#xff1a;&#xff08;郭霖大神推荐必看&#xff09;Android必须知道的史上最全框架、最全开源App(高级开发人员必看&#xff0c;面试必看) https://blog.csdn.net/u…

安卓面试题2

Android面试题2 Android 四大组件 一.四大组件&#xff1a;Android四大组件分别为activity、service、content provider、broadcast receiver。 一、android四大组件详解 1、activity &#xff08;1&#xff09;一个Activity通常就是一个单独的屏幕&#xff08;窗口&#…

安卓开发常见面试问题总结

自己就之前的面试经历&#xff0c;以及其他比较常见的安卓开发面试的问题做的一些总结 安卓开发常见面试问题总结 自我介绍JavaJava基础基础知识1. Java语言的特性2. Java的基本数据类型3. 和equals的区别。4. 重写equals有哪些要点&#xff1f;5. 什么是自动装箱、自动拆箱6. …

Android面试攻略

文章背景 好记性不如烂笔头 Android层面 一、Android基础 1、四大组件的意义及使用&#xff0c;生命周期回调及意义 2、AsyncTask、Handler的使用 3、Android系统层次框架结构 4、AsyncTask的实现方式 5、AsyncTask使用的时候应该注意什么 6、Android常见的存储方式 7、Loop…

【Android面试】这是一份全面详细的Android面试指南~

2022年算是非常坎坷的一年了&#xff0c;各行各业都不容易&#xff0c;但这也让我们更加相信未来一定会变好。 作为Android程序员&#xff0c;大家在新的一年大概都想有所突破吧&#xff0c;这里就给大家一些Android面试的建议&#xff0c;希望能够对大家有所帮助&#xff1a;…

安卓面试基础(如会必过)

Activity 1、 什么是Activity? Activity是四大组件之一&#xff0c;他给用户的感受就是一个用户交互界面。一个Activity就是一个可见的界面。 他的特点是&#xff1a;1、可见 2、可交互 他之所以可交互&#xff0c;是因为他同时实现了Window.Callback和KeyEvent.Callback, 可以…

Android最常见的174道面试题:2023最新版

Android 新手在谋求开发岗位之前&#xff0c;必须熟知 Android 的基础知识。这里&#xff0c;我总结了2020-2022 Android 面试中最常见的174道题&#xff0c;既有基础内容&#xff0c;也有高阶技术&#xff0c;每道题都根据行业大牛优质回答总结了答案解析。希望能够帮助大家在…

Android 面试(Android 篇)

Android 面试 安卓篇 一、跨进程通信的几种方式二、多进程应用使用场景三、Binder 机制 &#xff08;进程间的通信&#xff09;四、说一说 ANR五、什么是OOM&#xff0c;如何避免解决六、内存泄露&#xff0c;内存溢出&#xff0c;内存抖动七、Webview 常见的坑八、屏幕旋转后的…

Android面试大总结

面试题&#xff1a;你似乎来到了没有知识存在的荒原 - 知乎 字节跳动Android面试题目与答案&#xff08;2020&#xff09; 2020年开春最新面试&#xff01;字节跳动安卓面试题及答案 (已拿到 offer) Android面试必备26题&#xff08;阿里腾讯总结&#xff09;含答案 Androi…

成功入职字节跳动的小姐姐告诉你,Android面试吃透这一篇就没有拿不到的offer!

文章目录 写在前面来&#xff0c;发车了&#xff01;1. 战略定位&#xff1a;Android面试都会问些什么&#xff1f;2. 运筹帷幄&#xff1a;我需要形成什么样的知识体系&#xff1f;3. 披襟斩将&#xff1a;我需要掌握多少知识&#xff1f;4. 锦上添花&#xff1a;面试过程中适…

app商城测试点

购物车 功能测试&#xff1a; 1.页面是否与UI保持一致 2.能否正常加入购物车 3.账号未登录能否添加商品到购物车 4.账号登录能否添加商品到购物车 5.没有库存的商品是否可以加入购物车 6.单个商品的数量上限最多能添加到购物车 7.收藏列表是否能正常增加 8.数量是否可以手动修改…

APP端测试常见的功能点

一、安装、卸载、更新、运行 1.安装、卸载 应用是否可以正常安装&#xff08;命令行安装&#xff1b;apk&#xff0f;ipa安装包安装&#xff09;&#xff08;有网&#xff0c;无网是否都正常&#xff09;卸载过程中出现死机&#xff0c;断电&#xff0c;重启等意外的情况&…

万字长文!Unix和Linux你不知道的那些历史(详解版)

作者 | 程序员小乐 来源 | 程序员小乐&#xff08;ID:study_tech&#xff09; 00 前言 UNIX 与 Linux 之间的关系是一个很有意思的话题。在目前主流的服务器端操作系统中&#xff0c;UNIX 诞生于 20 世纪 60 年代末&#xff0c;Windows 诞生于 20 世纪 80 年代中期&#xff…

Unix, Linux 和MacOS

常见问题 我常常会听到类似的问题: Unix, Linux和MacOS之间有什么联系? 又有什么区别? 先说结论: Linux是类Unix的操作系统, 其内核上的大部分软件是按照POSIX协议运行,所以跟Unix系统上运行效果类似.MacOS的内核是在Unix的家族分支上的,其内核是基于NeXTSTEP和FreeBSD混合…

Ubuntu/Linux/Unix 究竟有什么区别??

导言 经常在和别人讨论的时候&#xff0c;老是会听见别人说&#xff1a;“我的是linux系统”、“我的是ubuntu系统”、“我的是unix系统”&#xff0c;那么三者到底有什么区别呢&#xff1f;这种说法又对不对呢&#xff1f; 网上搜集了资料整理了一下&#xff0c;和大家一起学…

Linux和UNIX操作系统的关系及区别(详解)

摘要&#xff1a; 通过介绍 linux 和 unix 的发展历史&#xff0c;说明 unix 与 Linux 的关系与区别。最后阐述了 unix / Linux 系统的结构&#xff08;内核层、shell层、应用层&#xff09;。 UNIX 与 Linux 之间的关系是一个很有意思的话题。在目前主流的服务器端操作系统中…

【Linux】Unix和Linux的历史及关系

Unix和Linux的关系 悉悉嗦嗦Unix的历史Linux简介Mac OS 悉悉嗦嗦 对于接触计算机不久的同学来说&#xff0c;可能经常听到类似&#xff1a;Unix&#xff0c;Linux&#xff0c;类Unix&#xff0c;Mac OS X&#xff0c;BSD&#xff0c;FreeBSD&#xff0c;“Linux和Unix一样啦”…

Linux与UNIX的区别与联系

UNIX诞生于20世纪60年代末&#xff0c;Windows诞生于20世纪80年代中期&#xff0c;而Linux诞生于20世纪90年代初&#xff0c;可以说UNIX是操作系统中的“老大哥”。 分时操作系统&#xff1a;是一台计算机可以同时为多个用户服务&#xff0c;连接计算机的终端用户交互式发出命令…

linux和unix区别

转至:http://www.goceanedu.com.cn UNIX是历史最悠久的通用操作系统。1969年,美国贝尔实验室的K.Thompson和D.M.Ritchie在规模较小及较简单的分时操作系统MULTICS的基础上开发出UNIX, 当时是在DEC的PDP—7小型计算机上实现的,1970年正式投入运行。此后数年,UNIX一直是一个限…

Unix和Linux的的发展史

首先说明本帖是转的&#xff0c;旨在让大家了解科技界的一些故事&#xff0c;每一种科技的进步都伴随开发者们不懈的努力&#xff01; Unix是目前还在存活的操作系统的元老了&#xff0c;走过了40年的历程。由它引发的思想变革&#xff0c;对当今计算机文化造成的深远影响。这…