0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Android工程师的面试经验分享

工程师人生 来源:网络整理 作者:工程师吴畏 2018-09-05 09:06 次阅读

我想把自己所经历的求职这一点小事分享给大家,或许其中有些东西可以借鉴。我知道有很多跟我一样刚毕业并且有一些Android开发基础知识的同学,他们可能现在困惑,也可能现在不自信,当然可能还有更多的着急。这一切的根本原因可能在于自己掌握的Android知识点少,项目经验有限。然而不用担心,一切只会变好,只要我们向前。

我的背景

我是2016届毕业的学生,我的专业是信息管理与信息系统。在大三的时候也是自己学了一点Android基础知识并且在大四的时候在某个互联网公司实习过,我想大部分人都与我差不多,都可能是同一个技术水平。当然这里排除那些在初中就会用VB的同学了。

互联网公司

在我求职的过程中,收到的面试邀请通知60%是培训机构,这个原因很可能是自己应届生的标签加上简历上的描述不够专业。20%是外包公司,剩下的20%就是纯互联网公司了。在这样的一个情况下,你可能拒绝去培训机构面试,拒绝去外包公司面试,而直接去纯互联网公司面试,这样做是不明智的,只要是面试你就去。

下面是我的一个关于面试流程以及面试问题的总结,这些面试问题不可能每个公司都是这样的,但是对于我们这些面试经验少同时技术水平有限的人来说或许会有一些借鉴意义。

HR面试

自我介绍

你了解过我们公司吗

说说你的优势

请简单介绍一下你所做的项目

在这个项目里面你具体负责哪些内容

你为什么离职

你为什么选择Android开发而不是IOS开发

当出现一个问题时你是怎样解决的

……

技术面

1.项目层1

技术面项目层这里要分三种:1.公司已经是A轮以上的公司或产品接近成熟了的更倾向于问你具体做的项目; 2.公司是天使轮投资的公司更倾向于从他们的一个产品出发;3.外包公司比较倾向于看你做的项目的多少了;

所以自己在接到面试通知的时候,要首先观察公司的性质,然后再去找相应的侧重点。比如,在这里我面试的是一家天使轮的公司,我在官网上把产品下载下来了,然后逐渐从App的引导页到登录页再到主页逐渐各个页面进行分析。紧接着把它其中所涉及的知识点进行抽离出来,并统一归纳。最后就是对这些知识点进行熟悉与掌握了。

比如我们举个例子:X产品是一个以社区为主的App,并且它支持微信登录、分享、收藏、支付等。然后我们就从这些简单的东西中挖掘出知识点。如下所示:

微信登录、分享、收藏、支付是怎么做的?

在这里普遍人的回答是直接进入微信开发平台然后下载相应的SDK并参考相应的技术文档一步一步进行实现。这样回答的话虽然没什么可挑剔的,但是没有突出亮点,在这里应该围绕着X产品在进行第三方登录时其内部的逻辑是什么样的?是不是先有一个在微信上的认证过程,然后认证成功后,在X产品中唤醒某个界面然后接下来又是什么操作?要具体到整个操作的细节逻辑。

图片上传、压缩、裁剪、缓存处理

因为社区类型的X产品展示了大量的图片。所以说对图片进行处理肯定是经常要遇到的,所以在这里自己就要去总结与图片相关的基础知识点了。

内存优化(参考《Android开发艺术探索》)

众所周知,每一个App都需要进行相应的优化。特别是对于那些界面非常丰富的产品了,在这个问题上我

们可以从以下几个方面阐述内存优化。

1.布局优化 方法:减少布局资源文件的层级;因为层级少了,Android绘制的工作量也就少了。可以采用相应的标签;

2.不要在onDraw()方法里面创建对象和执行耗时操作,因为onDraw()被频繁调用;

3.内存泄漏优化 方法:静态变量导致Activity无法正常销毁;属性动画导致内存泄漏;当播放动画的时候没有进行停止,这样在Activity销毁的时候就无法对Activity进行回收。

4.ListView与Bitmap优化;

5.线程优化 方法:采用线程池的形式这样可以避免大量线程的产生,同时在线程池里面可以对线程进行重用,并且线程池里面可以控制线程的最大并发数。这样的话避免了一定的系统开销同时也可以避免大量的线程因抢夺资源而阻塞;

6.其它优化 方法:比如避免创建过多的对象;常量使用static final 来修饰;采用内存缓存与磁盘缓存等等;

文件存储

这一点基本算是基础知识点了,我们除了要掌握那几种存储方式还要知道它们具体的在什么情况下用?怎么用?用的时候注意什么?并且能够熟练的使用数据库,如果能够写出一些较为一点难度的SQL语句,比如子查询、多表查询等那就更好了。可能这里有的公司会直接给你几个关于SQL语句的测试题。

框架

现在一些网络请求框架、数据解析框架、数据库存储框架这也是可能要问到的问题。X产品在请求网络数据的时候若用到一些框架时那很可能是比较流行的Volley、OkHttp、Retrofit等,所以我们在这里要做好准备,比如我用过Volley,那么肯定熟悉Volley的优缺点,除了这一点外,我们还要比较这三者之间的区别,并且要熟悉它底层是具体怎么做的。

其它

刚开发出来的产品不可能是完美的,所以你就尽可能的去发现其中的不足,越是明显不足的地反就越说明是这家公司薄弱的地方,那么在面试的时候提出关于这方面的问题概率就很大。随便举个例子,比如X产品对Activity的启动模式表现出来的逻辑有点不友好,那么你发现后就得自己清楚的去熟悉Android的四种启动模式。细节很重要,多去寻找总会有收获。

2.基础层1

基础层上面的话会问一些关于Java的知识点,同时也包括Android的基础知识点。这里我就不一一列举了,Java的话还是要注重在线程上,包括同步、异步等等。当然还可能问到关于集合方面的知识,常见的是ArrayList与LinkedList之间有什么区别?而关于Android方面的话基础知识也就是四大组件、数据传递、消息机制、设计模式这些了。

CEO面

关于CEO面试的话这里就不涉及到技术了,但是在这个环节我们要展示我们积极向上的心态以及勤奋好学充满激情。CEO或者是创始人最愿意跟你聊的是互联网行业,什么O2O,B2C…。这些我也是晕了。可能在这一点上他是在考察你是否对互联网这个行业关注。还有问你你怎么看待这款互联网产品在大众面前这么流行的?在这个时候你就要去找到这个产品的特点并顺着这个特点一直说下去然后发表你自己的看法最后基本上没什么问题的了。我自己觉得在这一层面试上我们要尽量多发表自己的看法,表达出自己的热情,这样就可以证明我们在某个问题上是独立思考并且有主见的。

结语

这也是自己面试大概5次得出来的一个想法,一点经验,分享给大家。如果能帮助到你最好了,同时在找工作的时候没有资金来源的我们会非常没有安全感,特别是自己一个人在大城市的时候。但是大家不要灰心,也不要心冷,要充满自信。我们可以在一次一次的面试中成长这也是一件非常愉快的事情。如果在面试的时候的发现自己哪个知识点不熟悉的话回来后要立刻熟悉,立刻实战,最后共勉。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Android
    +关注

    关注

    12

    文章

    3851

    浏览量

    125659
  • 工程师
    +关注

    关注

    59

    文章

    1553

    浏览量

    67518
收藏 人收藏

    评论

    相关推荐

    企业老工程师和高校老师有啥区别

    电子工程师硬件
    电子发烧友网官方
    发布于 :2024年02月28日 17:50:00

    如何搞崩一个硬件工程师心态?试试对ta说这几句

    硬件工程师
    扬兴科技
    发布于 :2024年02月20日 18:05:49

    鸿蒙Harmony是如何影响Android工程师的呢?

    迅猛,目前已经有包括社交、金融、影音、游戏、资讯、食品等多个领域的企业以及开发者加入到鸿蒙的生态建设中,可以说是从日常工作生活的各个领域全面展开。 为什么会影响Android开发工程师? 因为自从华为
    发表于 01-14 22:14

    #人工智能 #FPGA 怎么成为一个合格的FPGA工程师

    fpga工程师
    明德扬助教小易老师
    发布于 :2023年12月18日 21:19:01

    电子工程师第一天上班就暴揍师傅。。。#科普 #示波器 #电子工程师 #打工日记

    电子工程师示波器
    安泰小课堂
    发布于 :2023年12月18日 17:36:12

    硬件工程师面试时最常被问到的8个问题,看看你能答对几个

    晶振硬件工程师
    扬兴科技
    发布于 :2023年12月08日 18:21:15

    硬件工程师经典面试题详解

    硬件工程师经典面试题详解
    的头像 发表于 11-20 15:08 777次阅读
    硬件<b class='flag-5'>工程师</b>经典<b class='flag-5'>面试</b>题详解

    FPGA工程师需要具备哪些技能?

    FPGA(Field-Programmable Gate Array)芯片因其具有灵活性、高定制化、高性能等特点,被广泛应用于数字系统设计、嵌入式系统、通信系统、计算机视觉等领域。作为FPGA工程师
    发表于 11-09 11:03

    #FPGA 本科生也能成为FPGA研发工程师

    fpga工程师
    明德扬助教小易老师
    发布于 :2023年09月23日 08:05:36

    电源工程师常用的几个典型电路分享

    具有电源知识水平的工程师来完成设计和开发。作为一名合格的电源工程师平时工作经验的积累很重要,但同时也应该提高理论水平,通过积累几个常用的电源电路,说不定下次就能用上,还是学习吧!
    发表于 09-20 07:59

    电子工程师必看书籍推荐#知识分享 #知识科普 #交流#硬声创作季

    电子工程师
    也许吧
    发布于 :2023年05月24日 10:47:34