项目经验
**项目描述:**一句话 工作内容:做了哪些模块,用了什么技术、做过哪些优化,重构方面的内容
项目方面写两到三个项目,最好最近一两家公司做的项目
公司经历
公司名称 时间 工作内容
面试题准备
项目中用到的技术
整理出来,上网找找相关的技术文章和面试题看看,然后用自己的话把这些内容梳理出来,最好有自己的看到,面试官习惯问为什么。
Android知识点
基础:
四大组件、fragment、自定义View、事件分发、滑动处理、handler、AsyncTask、IntentService、ThreadHandler、Bitmap相关的、动画的用法
进阶:
ListView、RecyclerView、AIDL、LruCache、DiskLruCache、View,Window,Activity的关系、进程保活、性能优化、
高阶:
Bindler、AMS、WMS、Context、APP的启动流程、插件化、组件化、热修复什么的等等
第三方框架:
okhttp、retrofit、RxJava等等,熟悉一个框架的源码,然后知道其他框架的优缺点
混合开发:
通常都是RN相关的,目前Flutter用的不多
架构和语言:
MVC、MVP、MVVM、组件化、插件化、热修复等等
上面介绍得不需要全部掌握,看你项目,挑一些内容掌握住,怎么问都不怕得那种,前提是不去一二线得大厂
java知识点
多线程、并发、java基本语法、泛型、hashmap等容器相关的,一般这几差不多了
面试内容准备
自我介绍
就聊聊最近一个项目里面的工作内容,遇到的问题,有什么亮点,难点 这个看项目,有人说我们没什么亮点啊,我只想说你写的代码都没有bug么,花你半天一天时间搞不定的bug就可以聊了
职业规划
技术线路:架构师技术专家 管理线路:开发leader,项目经理什么的
有什么想问的
技术面试官问你:
问问技术团队多少人、技术氛围怎么样的、如果有可能问问他们的技术栈是什么,围绕着技术来问
HR问:
转正的考核标准啊,薪资待遇啊,公司现有规模啊、发展情况啊,表现出对这个公司很感兴趣就行了
注意一点:
考虑好你得目标公司的规模和行业。
**小微公司:**不看项目随便问,没有逻辑性,闭了眼睛瞎问,对于这种会就会,不会就不会,别怂,反正也不想去。
**稍微大点的厂:**一般是围绕项目去问,然后衍生出一些技术问题来细问,问的比较深的时候别慌,把你的理解说出来,然后说其他的就不知道了,体现出你的思考和应变能力。
基本上面试就这些的,剩下的就是尽人事听天命了,记住,面试不上有时候不是你得问题,很可能是公司其实不急着找人,或者面试官不行。
谈一下某次面试的经历
我从找工作到找到工作,历时大概有20多天,前后投了不下于百家公司,接收到的面试不到10家,收到第一家面试的通知之前我已经投了3、40家公司,那时候整个人都快崩溃了,后来把心态放平,还是照着自己心里的期望薪资来,不要将就,后来继续投,陆陆续续有两三家公司通知面试,面试感觉还可以。
后来有家公司a通知我面试,这家公司投的比较早了,中间改过一次简历的,最终面完试,技术说我这边过了,后面领导随便聊聊就行,等了两天没消息,以为a公司没希望了,没想到是他们公司要走流程什么的,然后电话给我说让我给个现在工资流水,后面就是定薪资,走审批,体检,后来总算拿到offer。而且转正以后的薪资福利加一起要比我期望的还要高,还有几个月的年终奖,是不是很羡慕,嘿嘿。
总体来说还算幸运吧,至少有个坑让我呆了。
总之,面试需认真谨慎地对待。
300+Android面试题分享
我是整理了一份一千多页的Android 高级开发面试题,但由于篇幅太长了,所以这里就只放上300多的Android方面的面试题,关于面试题解析可以先戳这里获取:【github】
第一部分
-
Overload 和 Override 的区别
-
String 和 StringBuffer 的区别
-
实现一个字符串倒序
-
抽象类与接口的区别(abstract 与 interface 的区别)
-
集合的实现类与区别
-
线程有几种状态,分别是哪些(调用 run()和调用 start()的区别)
-
Final、finally、finanlize()的区别
-
J2EE 是什么?请对以下在 J2EE 中常用的名词进行解释(或简单描述)
-
j2ee 常用的设计模式?说明工厂模式
-
开发中都用到了那些设计模式?用在什么场合
-
常用设计模式及应用场景
-
广播如何调用,有什么方式,各自的区别,实现广播的意图是什么,哪里用到
-
android 系统架构
-
Android 的四大组件是什么?它们的作用是什么
-
Activity 生命周期?保存 activity 的一些信息在哪个生命周期方法中
-
Activity 的 onSaveInstanceState() 和 onRestoreInstanceState()
-
activity 在屏幕旋转时的生命周期
-
Android 中 asset 文件夹和 raw 文件夹区别
-
Android 中的五种存储方式及其应用场景
-
什么是 ANR 如何避免它?(Android 线程间的通信方式 )
-
listview 优化策略
-
ListView 分页加载实现思路
-
ListView 图片异步加载实现思路
-
Intent 的原理、作用、可以传递哪些类型的参数
-
如何实现屏幕分辨率的自适应(布局、九线图、目录)
-
简述 Android 中的 IPC 机制
-
Android 程序入口如何判断
-
android 哪几种方式访问网络
-
说说 HttpClient 的通信过程
-
移动互联数据交互格式有哪些及其区别
第二部分
-
XML 解析有哪几种?各自优缺点,官方推荐使用哪种
-
sax 解析代码
-
百度地图核心类,及实现的功能
-
GC 内存泄露在什么情况下会出现?怎么解决
-
android 内存的优化
-
加载大图片的时候如何防止内存溢出
-
Android 缓存机制
-
如何实现消息推送
-
MVC 在 Android 中的应用
-
Android 自定义组件实现思路
-
版本更新的实现思路
-
播放视频有哪些实现方式
-
NDK 开发流程?(JNI 运行原理)
-
如何实现一键退出
-
AndroidManifest.xml 清单文件标签中属性的含义
-
如何将一个 Activity 设置成窗口的样式
-
谈谈 UI 中, Padding 和 Margin 有什么区别,gravity 与 layout_gravity 的区别
-
实现手风琴效果
-
Android SDK 3.0(HoneyComb)及 4.0(Ice Cream)新特性
-
android 客户端如何实现自动登录
-
请介绍下 Android 中常用的五种布局。
-
android 中的动画有哪几类,它们的特点和区别是什么
-
activity 的启动模式有哪些?是什么含义
-
跟 activity 和 Task 有关的 Intent 启动方式有哪些?其含义是
-
如何启用 Service,如何停用 Service。
-
Handler
-
说明 handler 机制的原理
-
什么情况会导致 Force Close ?如何避免?能否捕获导致其的异常
-
请介绍下 ContentProvider 是如何实现数据共享的。
-
Service 和 Thread 的区别
第三部分
-
Android 异常
-
IntentService 有何优点
-
Activity
-
如何将一个 Activity 设置成窗口的样式
-
如何退出 Activity?如何安全退出已调用多个 Activity 的 Application
-
AIDL 的全称是什么?如何工作?能处理哪些类型的数据
-
请解释下 Android 程序运行时权限与文件系统权限的区别
-
系统上安装了多种浏览器,能否指定某浏览器访问指定页面?请说明原由
-
android 系统的优势和不足
-
Android dvm 的进程和 Linux 的进程, 应用程序的进程是否为同一个概念
-
嵌入式操作系统内存管理有哪几种, 各有何特性
-
什么是嵌入式实时操作系统, Android 操作系统属于实时操作系统吗
-
一条最长的短信息约占多少 byte
-
用算法调整图片的透明度
-
如何将 SQLite 数据库(dictionary.db 文件)与 apk 文件一起发布
-
sqlite 的用处及用法, 哪里用过
-
sqlite,修改,添加字段,版本更新,排序,默认排序
-
如何建一个“aaa.db”数据库,如何建一个 user 表;写出增删改查语句
-
SQLite 线程安全吗?sqlite3_threadsafe()来确实是否线程安全版本
-
怎么提高 sqlite 的效率
-
如何将打开 res aw 目录中的数据库文件
-
DDMS 和 TraceView 的区别
-
java 中如何引用本地语言
-
ListView 切换奇偶行背景色
-
getView()方法中判断 position 的奇偶性, 然后给 ConvertView 设置背景色
-
EditText 单行显示
-
oom 避免以及产生方式,遇到过几种 OOM
-
throw 与 throws 区别
-
LOST.DIR
-
设置界面怎么做的
第四部分
-
ui 效果图介绍布局
-
login 模块怎么做的
-
点击登录按钮的时候,会从 server 端获得什么?传送什么
-
android 客户端如何实现自动登录
-
版本更新,从 server 端获得什么,通过什么进行更新
-
Fragment 和 Activity 之间的联系
-
Fragment 如何实现 Activity 跳转,你怎么处理 Fragment 之间的信息交互
-
fragment 在哪个方法里实现代码
-
res 和 assets 资源文件的作用分别是什么,怎么读取
-
了解 pad 开发吗
-
常用的适配有哪些,如何进行优化
-
应用换肤有什么方案可以实现
-
异步任务中允许有多个线程同时进行吗
-
图片是怎么获取的
-
文件的下载
-
图片的下载
-
缓存区的图片如何适当的释放
-
图片缓存到哪里
-
那你的图片是如何请求的
-
图文混排怎么实现
-
相册缩略图是怎么实现的
-
下拉刷新的实现思路,反弹的效果是怎么实现的
-
自定义的 View
-
自定义控件用过哪些?对自定义控件是怎么看的
-
瀑布流的实现思路
-
聊天窗口的实现
-
android 的 dvm 和 Linux 进程是一样的吗
-
监听模式
-
如何刷新 view
-
Listview
第五部分
-
viewPager 左右切屏
-
listview 加载图片错位,什么原因导致的
-
ListView 中条目中显示 webView 会怎么样
-
用 listview 进行快速翻页,如何解决内存溢出
-
listview 快速滑动时,加载几条数据
-
实现 listview 分页
-
动画分为哪几种,各自的特点和区别
-
写出 Socket 服务器与客户端交互的代码和实现思路
-
谈谈对 Http 的理解
-
谈谈递归
-
写出 Activity 里的方法都是在什么情况下执行
-
dp 与 sp 的区别
-
java 有那些排序,冒泡代码
-
Java 线程实现方式和区别
-
Android 中布局、区别、应用场景
-
线程间通讯
-
进程间通讯
-
判断网络
-
网络代理
-
HTTP 的 post 和 get 方法的区别
-
怎么判断服务端返回的数据类型
-
栈,队列代码
-
服务 service
-
多线程下载,离线下载
-
支付方式
-
如果想改变分辨率但不动原来布局,实现思路是什么
-
java 常用的处理异常的机制,原理及应用
-
一段字符串“abdecffr”,请输出只出现一次的字母
-
输入一个数,求其二进数中有多少个 1
-
有一个 pizza 生产线
第六部分
-
推送了解吗?推送底层代码掌握吗
-
asynctack 原理
-
NDK 具体说一下
-
Service 结合代码说一下,原理
-
当内存不足时,如何对尚未关闭的应用程序进行回收
-
service 的运行级别
-
service 如何一直保持在后台运行
-
service 的启动方式
-
软引用怎么用?为什么要用软引用
-
还有一个 Service 是建立在哪个线程上面
-
接口都有哪些内容
-
接口是否可继承接口
-
如何通过程序进行对服务器的接口调用,写出具体过程
-
分页加载思路
-
分页加载需要传递哪些参数
-
讯飞语音在什么地方用到
-
消息推送
-
LBS 定位用到哪个地图?为什么要使用这个?实现了哪些功能
-
地图中怎样获得附近的信息
-
百度地图显示周边招聘信息
-
移动互联使用了哪种方式
-
集合方面的底层理解
-
每个 item 都是不同的内容,怎么弄
-
有没有自己写过 NDK
-
一个版本的 app 不更新,只是给他赠加或着减少一个功能,怎么弄
-
架构的情况
-
多线程的讲解
-
线程的异常怎么处理
-
请求网络用什么,http 的使用
-
解释 intent 和 activity 的区别
第七部分
最后
总而言之,成功是留给准备好的人的。无论是参加什么面试,都要做好充足的准备,注意好面试的礼仪和穿着,向面试官表现出自己的热忱与真诚就好。即使最后没有过关,也要做好经验的总结,为下一次面试做好充足准备。
这里我为大家准备了一些我在面试后整理的面试专题资料,除了面试题,还总结出了互联网公司Android程序员面试涉及到的绝大部分面试题及答案,并整理做成了文档,以及系统的进阶学习视频资料分享给大家,希望能帮助到你面试前的复习,且找到一个好的工作,也节省大家在网上搜索资料的时间来学习。
毕竟不管遇到什么样的面试官,去面试首先最主要的就是自己的实力,只要实力够硬,技术够强,就不怕面试拿不到offer!
为什么某些人会一直比你优秀,是因为他本身就很优秀还一直在持续努力变得更优秀,而你是不是还在满足于现状内心在窃喜!希望读到这的您能点个小赞和关注下我,以后还会更新技术干货,谢谢您的支持!
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
理做成了文档,以及系统的进阶学习视频资料分享给大家,希望能帮助到你面试前的复习,且找到一个好的工作,也节省大家在网上搜索资料的时间来学习。**
毕竟不管遇到什么样的面试官,去面试首先最主要的就是自己的实力,只要实力够硬,技术够强,就不怕面试拿不到offer!
[外链图片转存中…(img-VBQjmvdU-1714640745028)]
[外链图片转存中…(img-Ubrf7xtV-1714640745029)]
为什么某些人会一直比你优秀,是因为他本身就很优秀还一直在持续努力变得更优秀,而你是不是还在满足于现状内心在窃喜!希望读到这的您能点个小赞和关注下我,以后还会更新技术干货,谢谢您的支持!
[外链图片转存中…(img-WgScRgz3-1714640745029)]
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!