2018 latest big factory Android interview questions

640?wx_fmt=gif&wxfrom=5&wx_lazy=1

Hot Article Guide |  Click on the title to read

Android Architecture Advanced Learning Roadmap

so cool! 74 APP complete source code!

Welcome to Java and Android Architecture Knowledge Planet

Author : Flowboat

Address: https://www.jianshu.com/p/b62e23a75d36


foreword

It's the interview season of gold, silver and silver, and I have to participate in this battle. In fact, I started watching it at the end of last year. There are not many good opportunities for android, but it's okay, 3+ years of android There are still some interview opportunities for development experience, but the threshold is not as low as it was a few years ago. The general experience is that small startups pay more attention to whether your project experience is in line with their own, and can come directly to take charge. In addition to looking at the project experience, Dachang also pays more attention to the breadth of your knowledge. It is a survey of breadth, depth, and solutions. Usually enough work is required to accumulate temporary brush questions. It is estimated that you will not be able to pass the test. .

Below is a summary of some of the problems encountered, in various styles. Here are the questions first.


real interview questions

The coordinates are also hz, and the letters of the names of the factories indicate that you can guess by yourself. This topic arrangement does not guarantee that you will encounter the same problems. Depending on the position and the interviewer's own situation, the problems may be very different. For example, some students who do middleware are asked about the details of hot fixes. Generally speaking, Ali's interview is very formal, from android basics to a certain degree of understanding of summary questions, and then back to java basics and principles, mainly focusing on the resume, or divergent questions from the resume, the questions will be based on the table and Gradually go deeper, and examine the understanding of the project you are responsible for and the principles of knowledge used in it. Because the postscript is based on memory, the following questions are in no particular order. Here are classified by position, can have a gradual feeling.

one.

tb: electric surface one

  • What is dp, what is sp, what is the difference

  • Custom View, ViewGroup pay attention to those callbacks?

  • Causes and solutions of the interface stuck

  • storage type in android

  • Has the service been used, the basic calling method

  • Handler mechanism

  • LinearLayout, FrameLayout, RelativeLayout performance comparison, why

  • The life cycle of Activity, will other life cycles go after finish is called?

  • Are you familiar with the FW layer? Have you seen the source code?

  • Are you familiar with the GC recovery mechanism and the generational algorithm?

  • Java class loading principle

  • How to troubleshoot memory leaks, MAT analysis methods and principles, and what are the causes of various leaks such as

  • Why does Handler leak

  • Are you familiar with gradle, do you know about automatic packaging?

  • Introduce the first app architecture and communication

  • Which modules have you been responsible for, and what are your advantages compared to your colleagues?

  • What is the most impressive problem you have encountered, and how did you solve it?

On-site interview: Three
First:

  • What work have you done recently?

  • What an impressive problem encountered. A: I will follow the project you introduced and ask about the specific implementation.

  • Do push messages have rich text?

  • Do you understand hot repair, what is it used for?

  • Is there a limit to the size of the apk package? How to reduce package size?

  • Have you used or written any tools at work? Scripts, plugins and more

  • For example: multi-person collaborative development may each have a copy of some of the same resources. Is there a way to automatically detect such duplication and so on?

  • Have you written the underlying code of native?

  • Are you familiar with the drawing of views? Let me introduce you

  • gc related algorithms

  • What is the origin of anr and how to check it

  • Are there any optimizations on the interface? For example, for list display and the like, have you encountered memory problems and how to optimize it?

  • What design patterns do you usually use?


Second:

  • Introduce what you have done in the last year

  • Detailed inquiries will be made on the skills highlighted on the resume: for
    example: the specific steps of audio synthesis, as well as some problems encountered and detailed handling.
    According to the interview, some questions will be distributed. When asked, if the seek method is played to the end and replayed, there will be some stuck and unsmooth problems. How to avoid it, from the perspective of interaction design or technology. (Personally, I don't pay much attention to this).

  • How many people are in the project team and how to allocate work

  • How do the threads communicate?

  • What is the architecture of the app, and why, and what are the pros and cons?

  • Are you familiar with the algorithm? Given a binary sorted tree, the algorithm problem for a given node to find its next element (referring to the next in order of magnitude) is given.

  • Why are you looking for a job and what are your strengths?


Third:
Technical issues are no longer limited to CVs, but may evolve and proliferate based on CVs and responses.

I feel that the various technical interviewers have not communicated before and may ask similar questions

  • Introduce your main responsibilities

  • Activity的生命周期有哪些,知道onRestart么,介绍下

  • savedInstanceState知道么,干什么用的,什么时候有值,什么时候为空,平时是怎么用的

  • View绘制熟悉么,介绍下,能说下是实现原理么?

  • 平时用过什么开发工具,分析工具?

  • ANR是怎么回事?怎么查?Service会引起ANR么?

  • Activity的启动模式有哪些?栈里是A-B-C,先想直接到A,BC都清理掉,有几种方法可以做到?这几种方法产生的结果是有几个A的实例?

  • 有什么工具可以看到Activity栈信息么?多个栈话,有方法分别得到各个栈的Activity列表么

  • 都熟悉哪些命令?知道怎么用命令启动一个Activity么?

  • SharedPrefrences的apply和commit有什么区别

  • java里带$的函数见过么,是什么意思

  • MD5是加密方法么,Base64呢

  • 有博客和github,主要是写的什么?有哪些关注

  • android 8.0 有哪些新特性

差不多就这些吧。。最后每个面试官都会让你问他问题。


二.

  • glide缓存策略?同一个图片跟size有关么

  • android中的动画有哪些

  • View事件传递机制

  • 界面卡顿怎么排查和优化?

  • Fragment的replace和end??的区别?

  • MVP,MVVM,MVC解释和实践

  • 项目之外的,对技术的见解,拓展知识


二面:

  • 微信跳一跳外挂怎么实现,检测怎么做的?

  • 一张纯色背景下怎么有效检测各个矩形?

  • 对接的so算法了解么,有接触过相关的库么?

  • 三个算法题选一个并写出测试用例:打印n-m之间所有的素数;计算n-m之间1出现的次数;指定数字序列的排序;

  • android api层的源码熟悉哪些?解释一下

  • ACTION_CANCEL什么时候触发,触摸button然后滑动到外部抬起会触发点击事件吗,在+ + 滑动回去抬起会么

  • 怎么处理嵌套View的滑动冲突问题

  • 热修复相关的原理,框架熟悉么

  • gradle打包流程熟悉么

  • 任意提问环节:其实可以问之前面试中遇到的问题:比如,多模块开发的时候不同的负责人可能会引入重复资源,相同的字符串,相同的icon等但是文件名并不一样,怎样去重?

三.

NetBase:

  • Canvas的底层机制,绘制框架,硬件加速是什么原理,canvas lock的缓冲区是怎么回事

  • surfaceview, suface,surfacetexure等相关的,以及底层原理

  • android文件存储,各版本存储位置的权限控制的演进,外部存储,内部存储

  • 上层业务activity和fragment的遇到什么坑??页面展示上的一些坑和优化经验

  • 网络请求的开源框架:OKHttp介绍,写过拦截器么


四.

Netbase:AI

  • 数据层有统一的管理么,数据缓存是怎么做的,http请求等有提供统一管理么?

  • 有用什么模式么,逻辑什么的都在Activity层?怎么分离的

  • 如果用了一些解耦的策略,怎么管理生命周期的?

  • 有什么提高编译速度的方法?

  • 对应用里的线程有做统一管理么?

  • jni的算法提供都是主线程的?是不是想问服务类的啊

  • 边沿检测用的啥?深度学习相关的有了解么?

  • 上线后的app性能分析检测有做么


五.

yz:

  • 进程间通信方式?Binder的构成有几部分?

  • HttpClient和HttpConnection的区别

  • View的事件传递机制

  • MVC,MVP,MVVM分别是什么?

  • Android中常用的设计模式,说三个比较高级的?

  • 内存优化,OOM的原因和排查方法

  • 想改变listview的高度,怎么做

  • Https是怎么回事?

  • 除了日常开发,其他有做过什么工作?比如持续化集成,自动化测试等等


六.

DiDi:比较全面

  • ActivityA跳转ActivityB然后B按back返回A,各自的生命周期顺序,A与B均不透明。

  • Synchronize关键字后面跟类或者对象有什么不同。

  • 单例的DCL方式下,那个单例的私有变量要不要加volatile关键字,这个关键字有什么用

  • JVM的引用树,什么变量能作为GCRoot?GC垃圾回收的几种方法

  • ThreadLocal是什么?Looper中的消息死循环为什么没有ANR?

  • Android中main方法入口在哪里

  • jdk1.5?SparseArray和ArrayMap各自的数据结构,前者的查找是怎么

  • 实现的,与HashMap的区别

  • Runnable与Callable、Future、FutureTask的区别,AsyncTask用到哪个?AsyncTask是顺序执行么,for循环中执行200次new AsyncTask并execute,会有异常吗

  • IntentService生命周期是怎样的,使用场合等

  • RecyclerView和ListView有什么区别?局部刷新?前者使用时多重type场景下怎么避免滑动卡顿。懒加载怎么实现,怎么优化滑动体验。

  • SQLite的数据库升级用过么

  • 开放问题:如果提高启动速度,设计一个延迟加载框架或者sdk的方法和注意的问题。

  • Scroller有什么方法,怎么使用的。

  • 分享下项目中遇到的问题

  • webwiew了解?怎么实现和javascript的通信?相互双方的通信。@JavascriptInterface在?版本有bug,除了这个还有其他调用android方法的方案吗?

  • ReactiveNative了解多少

  • JNI和NDK熟悉么?Java和C方法之前的相互调用怎么做?


几点建议

1.简历要如实写,相关的知识点一定要烂熟于心。

2.基础扎实,android和java相关的知识树网上有很多资料,看过但让你讲出来未必能说的好。

3.提前总结,你还擅长什么其他技术?这种开放问题要看知识面了。

4.学会提问,你有什么问题要问我吗?这种礼貌性问题也是一个了解对方的好机会。

5.良好的心里素质,无论遇到什么情况,面试官迟到、面试官态度冰冷说话不客气、质疑你的回答等等各种问题都不要慌也不要排斥,一定要沉住气,耐心积极的思考并回答对方的提问。

6. Recommend a few books, and after several interviews, I found that they covered most of the answers. "Android Development Art Exploration", "Android Source Design Patterns - Analysis and Actual Combat", "Android Advanced Light", "In-depth Understanding of Java Virtual Machine", read it several times.

The interview process in a large factory is relatively long, and the interview is a comprehensive test. If you want to change jobs, it is best to prepare well in advance.

If you have a good article that you want to share with you, you are welcome to contribute, just send me the article link directly


Finally, everyone is welcome to join our knowledge planet. The second phase is in full swing, and nearly 1,000 people have joined the study :

Everyone is welcome to join as soon as possible. This period ends on March 10, 2019, so the sooner you join, the better. The promotion ends. The current entry fee has been raised from 79 yuan to 89 yuan, and the fee will increase by 10 yuan for every 100 people in the future~ When the number of people reaches 900 ( there are still the last 2 places ), it will increase to 99 yuan, so get on the bus!

640?wx_fmt=jpeg

Scan WeChat or click the QR code above to get Android\Python\AI\Java and other advanced resources

For more learning materials, click "Read the original text " below

640?wx_fmt=gif

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=325342278&siteId=291194637