I received the Offer of wechat Pay on the first working day after Qingming Festival, and I did the preparation work of brushing the questions and constantly enriching my skills. Actually, the interview questions of Tencent are not as popular as they are now, but I got the Offer successfully. Now LET’s share the interview questions I met with you.

3.22 Tencent wechat Pay (60min)

1. The process of View drawing

2. Long connection Process of establishing a connection

3. TCP three-way handshake

4. Startup process of Android applications

5. Handler mechanism

6. How to handle a large Bitmap

7. How to compress Bitmap

8, algorithm question “{} [] ()” priority, whether the string is valid

9. When can I start

. (Some non-technical questions)

3.28 Tencent wechat Pay Second interview (35min)

What role did you play in the project

2. What was the most difficult part of your project

3. The place in the project that can best prove your personal skill level

4, TCP three-way handshake, and in this process, what is not safe? Against these insecure attacks? And defense?

5, HTTP redirection principle

What are the components of the Android JVM?

7. JVM memory structure

Dynamic proxy design pattern

9. Implementation principle of HashMap

Android event distribution

11. Choose one of the two:

①App startup process

(2) The system handling mechanism after Android Crash and other anomalies occur

12. What are your strengths and weaknesses compared with your classmates?

13. If you can successfully join Tencent, what value do you think you can bring to Tencent?

3.29 Tencent wechat Pay three sides/Director side (wechat phone 31min)

Do you have any other internship experience?

2. Pick a project that best represents your technical skills

Dig projects, keep digging, crazy digging.

4. What technology related things have you learned in the project?

5. Talk about the drawing process of a View

6, scene: how to achieve a Tetris game?

7, In Tetris, how to carry out collision detection?

8. What are your future plans?

Nowadays, many graduates think that the housing price in first-tier cities is too high. What do you think about this problem?

Where are you from?

Do you have a girlfriend?

12. Are you being interviewed by other companies

3.31 Tencent wechat Pay HR (27min)

1. Laboratory related information

2. When did you start Android

3. Pick a competition or event in which you feel you contributed the most

4. What do you think was your core contribution to the project

5. How to realize the relevant data in the project?

6. Other members of the project

8. What are the final achievements of the project

9. How do you usually study? Are there any unique study habits?

10. How do you spend your day?

11. Share a case of overcoming technical difficulties

12. How would you evaluate yourself?

13. Why did you consider Android development?

Share your most frustrating case

15. Check your basic information

(1) Educational background

(2) Working hours

(3) Work place

(4) A brief introduction to your family

(5) Only child?

(6) Do you have any immediate family members working in Tencent

(7) Health problems

(8) What other companies have you been interviewed for?

Generally speaking, the interviewer of one side is more cordial, the interviewer of the second side is more serious and speaks with charisma (he should be a leader), and the interviewer of the third side is under a bit of pressure. Fortunately, I finally got the Offer smoothly.

The interview guide

This interview guide is I saw in a forum and combined with my own interview experience to make some adjustments and modifications, only for Android development posts, I hope to give you some reference.

1. Resume Overview

The basic principle of a CV is that the information should be true, and a small number of job seekers may err on the side of the truth, such as deliberately extending or shortening a job experience or cosmetically modifying a degree. Oh, come on. It’s more than awkward when they find out.

Write your resume well, thoughtfully, authentically, and know everything on it like the back of your hand. Because anything on your resume, you can be asked. When I interviewed, the interviewer kept digging into the project until he couldn’t answer it.

If the school is good, it is suggested that the resume file name adopt the following format: XX university – undergraduate – Apply for Tencent Android development position. PDF, see this resume name, I want to see the pulse.

If you have a well-written Github account or open source work, it’s also a plus to put it on your resume and show your love and passion for technology.

Other resume tips are also numerous, including four that do not accept refutation:

A. Resumes must be in PDF format only.

B. The resume cannot be a compressed file.

C. No typos in your resume.

D. Your resume should be no longer than 2 pages.

In a word, after writing your resume, you should check and modify it well. You should look at your resume from the perspective of others and let your trusted friends help you modify it.

2. Technical overview

The master of Chicken Soup said, if you see confetti on the floor, pick it up, and you’ll be hired. It’s kind of counter-intellectual. Seriously, don’t do it! It won’t work! To be clear, this is technical, it takes real skills.

Group member, group leader, director…… You may encounter more technical rounds, but I won’t go through the walkthroughs. These processes, are based on the examination of technology, so unified introduction.

Before the interview, I went to the Tencent recruitment website to read the job requirements, so I knew the technical content and direction to prepare. To prepare the technical content, complex, roughly as follows:

1.Java basics
  • The basic idea of object orientation
  • Object class related: several key functions of Object class, String involved in the constant pool concept, serialization & deserialization.
  • Key keywords: final, static.
  • Inner classes: Classification of inner classes, application scenarios, and how inner classes are translated into classes.
  • Abstract classes & interfaces: differences, application scenarios.
  • Coding: the purpose and classification of coding.
  • Exception: Exception system, custom exception.
  • Annotations: Basic concepts of annotations, classification, compile-time annotations & runtime annotations.
  • Containers: Important internal implementations of containers, and comparisons between containers.
  • Memory model.
  • Recycling.
  • The process of class loading.
  • Generics: classification, wildcard & upper and lower boundaries, generic erasure.
  • Reflection: use.
2.Android basics
  • Dalvik and Art virtual machines
  • Activity: Life cycle, launchMode.
  • Fragment: Life cycle, lazy loading, the difference between two types of Adapter.
  • BroadcastReceiver: basic concept, broadcast classification, and permissions.
  • Service: life cycle, return value of onStartCommand, difference between startService and bindService, interaction between the same process and different processes, implementation principle of IntentService
  • Important tool classes & source code implementation: AsyncTask, HandlerThread, Handler, IntentService, LruCache, LinkedHashMap, SparseArray.
  • RecyclerView: cache principle, and ListView contrast, Adapter how to adapt to a variety of layout.
  • Storage: Database upgrade & Optimization, ContentProvider, SharePreference.
  • SDK version upgrade compatibility problem.
  • Android permission management mechanism.
Picture 3.
  • Bitmap related: Bitmap size calculation, quality, inJustDecodeBounds, inBitmap.
  • Comparison and compression of several image formats.
  • Large image loading: BitmapRegionDecoder
  • Photo gallery comparison
  • LRUCache principle
  • Picture loading principle
  • To implement the image library, how to do?
  • Glide source code analysis
  • What cache does Glide use?
  • How does Glide memory cache size control?
4. The algorithm

There is no shortcut, brush questions, but brush questions, according to the type of summary.

Open source frameworks
  • RxJava: Application scenarios of operators, internal implementations of key operators, and comparison with RxJava.
  • Glide: Process, cache related implementation.
  • Retrofit: Process, dynamic proxy & annotation parsing.
  • OkHttp: process, queue implementation, cache implementation.
Performance of 6.
  • Performance optimization techniques: startup speed optimization, layout optimization, memory optimization, power optimization, APK size optimization, list sliding optimization.
  • Performance optimization tools: TraceView, Systrace, Debug GPU overdrawing & GPU rendering mode analysis, Hierarchy Viewer, MAT, Memory Monitor & Heap Viewer & Allocation Tracker, LeakCanary, Lint.
  • ANR
  • ANR reason
  • ANR generation process source code analysis
  • Information Collection Process
  • Trace file Analysis
  • Analyze the basic process
  • Concrete example
  • How can ANR be avoided
  • Performance practice: the performance problems solved are described from four points: problems encountered, problems analyzed, problems solved, and results.
7.View
  • Drawing process: Measure, layout, draw three key processes.
  • Event distribution: Principle of event distribution, handled sliding conflicts.
  • Custom View: Canvas & Path, the implementation of a more complex custom View.
8. Architectural design and design patterns
  • MVC MVP MVVM principle and difference
  • MVP: The idea of MVP & pros and cons, application to the project
  • Design patterns commonly used in projects
  • Handwritten producer/consumer model
  • Write the code for observer mode
  • What are the similarities and differences between adapter patterns, decorator patterns, and appearance patterns?
  • Use of some open source framework, introduced a read source code, internal implementation process.
  • Talk about your understanding of RxJava
  • Rxjava sends event steps
  • Advantages and disadvantages of RxJava compared to asynchronous operations
  • Explain what EventBus does, how it’s implemented, and how it replaces EventBus
  • How to design the overall architecture of an App from 0?
  • Name and design an application that you think is currently popular (e.g. live streaming APP, P2P finance, small video, etc.)
  • Talk about understanding Java state machines
  • How should fragments be decoupled if used in Adapter?
  • Binder mechanism and underlying implementation
9. The source code
  • AMS
  • WMS
  • Binder
  • Application Startup Process
  • APK related knowledge points
  • APK composition: resources.arsc composition, Androidmanifest.xml, aAPT function and principle
  • APK packaging process
  • APK installation process
  • Principle of APK signature & verification
  • Dexopt principle
10. Networks and security mechanisms
  • Network framework comparison and source code analysis
  • To design your own network request framework, how to do?
  • How does OKHTTP handle network caching
  • Load a 10M image from the network
  • TCP’s three handshakes and four waves
  • Differences between TCP and UDP
  • TCP and UDP applications
  • The HTTP protocol
  • Differences between HTTP1.0 and 2.0
  • HTTP packet Structure

I don’t mean to say that all of the above points should be mastered. There is no universal man in the world, and we all have blind spots. It is normal to encounter difficulties. Only when encountering difficulties can we solve them on the spot can we show our value. Even if you can’t solve the problem, you can try to speak your mind, and a person’s mind is often a reflection of that person’s mental model and future potential.

In short, technical preparation, work in peacetime. Or should cultivate the basic skills, with this basic skills, not afraid of change, after all, change is inseparable from its roots. As for how to improve the basic skills, I suggest learning more, thinking more, practicing more and summarizing more.

I brush all the big factory interview questions have done a sort, have the need of friends can like + comment support me, and then[Click here]Free to read and download.

There is no silver bullet, there is no universal shortcut, do not impetuously think, cram, brush a few questions, you can pass the Tencent interview, not so simple. Kung Fu practice, thousands of thousands of xi. One hour of use is a thousand days of training.