Preface:

This information is provided by ali work ten years architects, belong to the pure dry paper, summarizes the latest 2020 collecting some interview questions (are organized into a document, with solutions), covers the alibaba, tencent, beating bytes, jingdong, giant Android interview questions, such as huawei, and senior architect learning route and the Android architecture document.

Whether you want to interview big factory or ordinary Internet company, these interview questions are certainly helpful to you, after all, big factory must be the benchmark of the development direction of the industry, many company interviewers will also study big factory interview questions. It will also help you on your way to becoming an architect. There are detailed learning plans in the article, which will give you a different sense of reading.

Dry goods offered:

Part 1 :(advanced Android)

1. The Android:

1. What is Activity?

2. Describe the Activity lifecycle

3. Common Activity types include FragmentActivitiy, ListActivity, TabAcitivty, and so on. Describe the Activity lifecycle

4. How to save Activity state or Activiy restart how to save data?

5. What methods must be executed when two activities jump between?

6. Activity lifecycle when switching between horizontal and vertical screens (★★★★)

7. How do I set an Activity to look like a window

8. How do I exit the Activity? How to safely exit an Application where multiple activities have been invoked?

9. What is the difference between “SingleTop” and “Singletask”? Most bookmarks use singletop, so why not singletask?

What are the differences between Context, Activity, and Appliction in Android? Painted (u)

12. What is a content provider other than an intent, broadcast receiver, or data transfer between two activities?

13. What is Context? , how many contexts does an application have (2019.5.5) (★★)

14. How to transfer values between activities and services? Can you transfer pictures?

15. Check whether services are executed in the main thread and whether time-consuming operations can be performed in the Service. Painted (u)

16. How to bind an Activity to a Service, and how to start its own Service in an Activity?

17. Describe the Service life cycle (★★★)

18. What is IntentService? What are the advantages? Painted painted (u)

Describe a BroadcastReceiver (★★)

20. How to register and use BroadcastReceiver in manifest and code

21. The life cycle of BroadCastReceiver

22. How to share data with ContentProvider (★★★)

23. Why use ContentProvider? How does it differ from the SQL implementation? Painted painted (u)

24. ContentProvider, ContentResolver, ContentObserver (★★★★)

25. Use contentProvider to get all local audio files (Shanghai) (★★★)

26. How can ListView improve its efficiency? Painted (u)

27. How do I update the ListView when the ListView dataset changes

28. How to implement pagination loading in ListView (★★★★★)

29. Can ListView display multiple types of items (★★)

30. How does the ListView locate to the specified position

How to insert a ScrollView into a ListView (★★★★ ★)

32. How to optimize images in ListView (★★)

33. How to create the image mismatch problem in ListView (★★★)

34. How to refresh the ListView for a single item without refreshing the ListView as a whole?

2. The senior Android:

1. How to analyze the performance of Android Applications (★★★★)

2. Under what circumstances will memory leak (★★)

3. How to Avoid OOM exceptions (★★★★ ★)

4. How to catch uncaught exceptions in Android (★★★)

5. What is ANR? How to avoid and solve ANR (★★★★★)

6. How to communicate between Android threads (★★★)

7.Devik process, Linux process, thread difference (★)

8. Describe the android system architecture?

9. What are the memory limitations of Android apps? How should we use memory wisely? Painted painted painted (u)

10. Describe the android application structure. Painted painted painted (u)

11. Please explain the difference between runtime permissions and file system permissions for Android applications. Painted painted (u)

12. How does an Activity generate a view? What is the mechanism? Painted (u)

13. What are the differences between multi-thread communication and multi-process communication, and how to achieve them respectively? (u u u u u)

14. Talk about design patterns and usage scenarios that you know

15. Java language features and OOP ideas

16. Talk about how threads are created in Java and how thread pools work.

17. Talk about handler

Memory leak scenarios and solutions

19. How to avoid OOM?

Talk about the startup mode of an Activity, its lifecycle, and the lifecycle of two activities if one Activity jumps to the other. What happens when you press the Home button again to return to the Activity lifecycle

23. Boot mode

24. Call scenario of onRestart

25. Do you know SurfaceView? What is it? What is his method of succession? How it differs from View (from a source perspective, loading, drawing, etc.).

26. How to implement process survival

27. Explain what cold startup and hot startup are, the difference, how to optimize, use scenarios, etc.

28. Why does cold start have white screen and black screen?

29. What are the principles and characteristics of threads in Android

30. ANR reason

31. Principle of three-level caching

32. The underlying implementation principle of LruCache:

33. Explain your understanding of the Collection class.

34. Ratio of older to newer JVM generations

35. What is the relationship between JVM, JRE, and JDK? The Java Development Kit (JDK) is a product for Java developers. It is the core of the entire Java, including the Java runtime environment (JRE), Java tools, and Java basic class libraries.

36. What is your understanding of JNIEnv and JavaVM?

37. What is the difference between Serializable and Parcable?

3.Android source code related analysis:

  • Android animation framework implementation principle
  • API differences between Android versions
  • Requestlayout, OnLayout, onDraw, DrawChild
  • The difference and use of invalidate and postInvalidate
  • Activity-window-view
  • Talk about your understanding of Volley
  • How to optimize a custom View
  • How does a lower version SDK implement a higher version API?
  • Describes the flow of a network request
  • Relationship between HttpUrlConnection and OKHTTP
  • Understanding Bitmap objects
  • Which architecture
  • How ActivityThread, AMS, and WMS work
  • How does custom View consider model adaptation
  • Custom View events
  • What is the difference between AstncTask and AsyncHttpClient?
  • LaunchMode application scenario
  • How to use AsyncTask?
  • SpareArray principle
  • How does ContentProvider implement data sharing?
  • Several ways to communicate between AndroidService and Activity
  • What does IntentService work and function?
  • What is the relationship between an Activity and an Intent and a Service
  • Difference between ApplicationContext and ActivityContext
  • Is SP process synchronized? Is there any way to synchronize?
  • Talk about the use of multithreading in Android
  • The process and Application lifecycle
  • How do you know the size of a View when you’re encapsulating it
  • RecycleView principle
  • The role and understanding of AndroidManifest

Part II Advanced development technology interview questions

1. The image:

1. Picture library comparison

2. Principle of LRUCache

3. Picture loading principle

4, to achieve their own picture library, how to do?

5, Glide source code analysis

6. What cache does Glide use?

How to control the size of Glide memory cache?

2. Network and Security Mechanism:

1. Network framework comparison and source code analysis

2. How to design the network request framework by yourself?

3. How does OKHTTP handle network caching

4. Load a 10M image from the network

5.TCP’s three-way handshake and four-way wave

6. Differences between TCP and UDP

7.TCP and UDP applications

8. The HTTP protocol

9. Differences between HTTP1.0 and 2.0

10.HTTP packet structure

11. The difference between HTTP and HTTPS and how to achieve security

12. How do I verify the validity of the certificate?

13. Where is symmetric encryption used in HTTPS and where is asymmetric encryption used? Do you know encryption algorithms such as RSA?

14. How does the client ensure that the message sent by the client is received by the server?

15. Talk about your understanding of WebSocket

16. Differences between WebSocket and Socket

17. Tell me your understanding of Android signature.

18. Please explain why Android has a signature mechanism?

19. Video encryption transmission

20. How and why are apps sandboxed?

21. Permissions management system (how is the underlying permissions granted)?

3. Database:

1. Update Sqlite to add field statements

2. Database framework comparison and source code analysis

3. Optimization of database

4. Database data migration

4. Plug-in, modular, componentized, hot fix, incremental update, Gradle:

1. Understanding of hot fixes and plugins

2. Analysis of plug-in principle

3. Modular implementation (benefits, reasons)

4. Hot repair and plug-in

5. Understanding of project componentization

6. Describe what happens after you click the Build button in Android Studio

5. Architectural design and design mode:

1. Talk about your understanding of Android design patterns

2.MVC MVP MVVM principle and difference

3. What design patterns do you know?

4. Design patterns commonly used in projects

5. Handwritten producer/consumer model

6. Write code for observer mode

7. Similarities and differences between adapter mode, decorator mode, and appearance mode?

8. Use of some open source framework, introduced a read source code, internal implementation process.

9. Talk about understanding RxJava

10.Rxjava sends event steps

11. Advantages and disadvantages of RxJava compared with asynchronous operation

12. Explain what EventBus does, how it is implemented, and how it replaces EventBus

13. How to design the overall architecture of an App from scratch?

14. Name and design an application that you think is currently popular (e.g. live streaming APP, P2P finance, small video, etc.)

15. Talk about understanding Java state machines

16. How should fragments be decoupled if used in Adapter?

17.Binder mechanism and underlying implementation

18. How is the application update section done? (Answer: grayscale, forced update, sub-region update)?

19. Implement a Json parser (speed up with regex)

20. Start time statistics, standard

6. Performance optimization:

1. Enable black-and-white screen optimization of the APP

2. Stability — Memory optimization

3. Fluency — Caton optimization

4. Saving — power consumption optimization

5. Installation package — APK slimming

6. Cold start and hot start

7. Memory leak scenarios and solutions

8. Bitmap optimization

9. The principle of LRU

10. The webview optimization

11. How to avoid OOM?

7.Android Framework

1.Android system architecture

2.View event distribution mechanism? How to resolve sliding conflicts?

3. The drawing process of View?

4. Cross-process communication

5. What is the startup process of Android system?

6. Start a program, you can click the icon on the main interface to enter, or you can jump from a program to the past, what is the difference?

7. Explanation of important terms of AMS family

8. Use of some open source framework, introduced a read source code, internal implementation process.

Android excellent tripartite library source code:

1. Network underlying framework: implementation principle of OkHttp

2. Network encapsulation framework: Implementation principle of Retrofifit

3. Responsive programming framework: implementation principle of RxJava

4. Picture loading framework: Glide realization principle

5. EventBus framework: implementation principle of EventBus

6. Memory leak detection framework: Implementation principle of LeakCanary

Dependency injection framework: ButterKnife implementation principle

8. Dependency global management framework: Implementation principle of Dagger2

9. Database framework: Implementation principle of GreenDao

Android Senior Architect Learning planning route:

As an Android architect, these are the key points of Android:

1. Advanced UI, custom View

2. The NDK development

3. Data structure and algorithm:

4.Java kernel principle

5.Flutter

6. Performance optimization

The UI piece of knowledge is the most widely used today. That year the popular Android training, learn this small piece of knowledge can casually find a good job.

But obviously now is far from enough, refused to endless CV, personally to project combat, read the source code, research principle!

2. The NDK development

Audio and video, artificial intelligence, these are the future development trends cannot be stopped. We can look at the recruitment positions on Liepin.com and the salary required to be proficient in NDK is 30-60K+. If you’re looking for a high-paying job, don’t miss it

3. Data structure and algorithm:

Bytedance interview, algorithm failed and was rejected. Just want to change to a big factory with low algorithm requirements?

As a result, I went to Ali, Tencent, Huawei, Xiaomi and other companies for interviews, only to be rejected!

4.Java kernel principle

One hundred percent. It’s a must for all companies, big and small

5.Flutter

It’s been burning for over a year. You don’t need it for work. But when you go out for an interview, you will be asked.

I can’t tell you whether Flutter is the future. What I can tell you is that you need to be able to master this mainstream new technology if you are going to interview for a high-paying job. (What big factories value most is your ability to learn besides basic and technical level.)

6. Performance optimization

I’ve heard that big companies have a last-place elimination system for employees with poor code quality and low performance. How to write high-performance code? How do you tune performance?

In addition to the above information xiaobi also sort out the Android core advanced technology PDF document, BAT factory interview 真题解析, is free to share with everyone, just click on GitHub free download.