Android development art exploration! First release of 100,000-word Android development actual combat documents, first collection

Preface

To do well, you must first sharpen your tools! In modern IT, every Android programmer needs the best tools to improve their skills and efficiency. In the cruelly competitive industry of Android application development, only good programmers can survive. You need to show your customers the best technology and capabilities you have.

Not only show off your device to attract customers, but also make sure that your Android application is built with the highest quality in an efficient time. So which are the best Android developer tools? There are many options, but not all tools are good enough. Without wasting any time, let's take a look at the following Android application development tools.

Ali technical side-35min

Self introduction

Android

  • Have you encountered OOM problems (have encountered memory leak problems)
  • Handler mechanism
  • ThreadLocal
  • Activity starts to load View process
  • View drawing process
  • LinearLayout (wrap_content) & TextView (match_parent) final result???
  • OKHttp(1. Why choose it? 2. Do you understand the performance? 3. What are the internal design patterns)
  • Do you know EventBus?

Design Patterns

  • Which design patterns have been used
  • Examples of observers

The internet

  • HTTP & HTTPS difference

other

  • Why choose Fliggy
  • professional concern
  • Competition

Ali technology two sides-1h hanging

Self introduction

project

  • Why choose OKHTTP framework
  • Load picture frame? (Learn about Glide)
  • JSON parsing framework? (Learn about Gson, FastJson)
  • Technology selection?
  • Number of pages?
  • How to cache OSS upload credentials? How to encrypt? (Encryption Algorithm??)
  • What else can be said?

Android

  • Activity life cycle? Start the transparent Activity life cycle? Press the Home button life cycle?
  • How to restore data after killing APP in background?
  • Can one APP have multiple processes?
  • What is the difference between ListView and RecyclerView?
  • How to troubleshoot RecyclerView stuck?
  • How does RecyclerView implement multiple types?
  • How to optimize the ItemView level of RecyclerView is too deep?
  • Android multi-process?
  • How to design the communication between Android threads?
  • Handler mechanism? Can Handler be used for child threads?
  • ANR?

Java

  • Private protected public keyword usage difference! ! !
  • What is the difference between interface and abstract class? Should abstract classes implement interface methods? ? ?
  • Is Map thread safe? Which set to read more and write less? (CopyOnWrite, I dare not say if I don't understand the principle)

The internet

  • HTTP/HTTPS difference
  • Does TCP understand? Handshake and wave process?
  • Long connection?
  • How to implement push?

Tencent

Batch one side in advance-35min

Project Introduction

  • Realized function, realize network request based on OKHTTP

HTTP(s)

  • Introduce the HTTP protocol
  • What to do if HTTPS public key is exposed
  • How to ensure the correctness of HTTP multipart upload files
  • HTTP cache

Java

  • Process thread difference
  • Communication between child threads
  • The method to solve the deadlock, how to judge the deadlock

Algorithm question

  • Odd and even arrays, re-sort to ensure that the order remains unchanged, odd numbers first and even numbers behind
  • 2 number / 3 number

Batch two sides in advance -30min-hang

Self introduction

Project Introduction

  • Project combing
  • Image compression algorithm? Talk about Android image compression
  • Bitmap JPG difference image processing: the difference between JPG, PNG and BMP?
  • Breakpoint retransmission? How to dynamically determine the range? Android realizes breakpoint upload file
  • Breakpoint download? CRC principle file verification MD5, SHA1, CRC32, sha256, cksum

Design Patterns

  • MVC advantages and disadvantages
  • Where is the C implementation of MVC in MVP
  • The choice between the hungry man and the lazy man in the singleton mode, use different writing methods of the Java singleton mode of the scene (lazy man, hungry man, double check lock, static inner class, enumeration)

HTTPS encryption method

Tencent officially approves one side for testing -25min

  • Crash
  • How to solve ANR
  • Design the data structure of the top 32 World Cup matches
  • 2 balls on the 100th floor to find that floor will be broken
  • Test specific work

Tencent officially approved the opening of the second side-1h

project

  • Chat details

Android

  • Picture, voice, large memory data performance troubleshooting, positioning?
  • Handler memory leak problem
  • ART Dalvik difference?
  • GC mechanism?
  • How does CountDownLatch work?

Algorithm question

  • Do not use for to find the maximum value of an array?

Small talk

  • Self advantage

Baidu

Baidu One Side-1h

Self introduction

Project Introduction

  • Are coding standards useful?

Android

  • Security of the four major components of Android
  • Activity start mode
  • IntentFilter matching rules, the difference between action and category?
  • Why isn't Handler blocked?
  • Click event distribution mechanism, onTouchEvent returns false? DispatchTouchEvent returns false?
  • Looper
  • Object pool, handwritten object pool implementation
  • ContentProvider principle
  • Does sp support cross-process? How to solve cross-process, how to achieve process synchronization
  • Frame animation realization: 100 pictures, 200ms to display one, 400ms to read a picture, how to solve it to avoid the stall (multithreaded reading)
  • Bitmap memory reuse restrictions
  • Principle of thread time slice allocation

Baidu two sides -45min

project

  • Sort out the project
  • difficulty
  • Technical framework

Algorithm question

  • Handwriting dichotomy
  • Elevator state machine design

Pros and cons

  • advantage
  • Disadvantage
  • profession

Baidu three sides-45min

technology

  • Longest common substring
  • Class loading mechanism
  • okhttp principle
  • Principle of hot repair

Rest small talk

  • Advantages Disadvantages
  • University regrets
  • What activities to organize
  • Long-term things
  • Professional destination

NetEase

NetEase technical side-1h

Self introduction

Project Introduction

  • Huawei has the deepest impression of bug solutions

Android

  • TouchEvent delivery process? What if onTouchEvent returns flase?
  • How to design cache
  • Android data persistence
  • How to batch process the database (principle)
  • Does SP support multi-threading? How does SP implement multithreading
  • View drawing process
  • Handler message mechanism

Java

  • How does the B thread wait for the A thread to complete the work
  • How does a thread end work? Three ways to end a thread in Java
  • Which Java methods support interrupts
  • Design a request with limited resources
  • How to design the object pool (storage and return of objects)
  • When are the threads of the thread pool created
  • Locks in Java
  • Re-entrant lock performance

Writing testing

  • Two arrays exchange a value, make the sum equal, and find the two values

NetEase Technology Two Sides-1h

Self introduction

Huawei intern

  • project involved
  • Solution bug
  • Let’s talk about the participating programming specifications
  • Lint tool?

Design Patterns

  • Singleton mode
  • volatile keyword atomicity

Android

  • Inter-process communication method (different from linux inter-process communication)
  • How does Socket verify security
  • Broadcast (global and local differences)
  • How to realize multi-process communication of files (how to notify B process to read when process A changes the file)
  • How to design secondary cache (relationship between network database views)

View

  • Activivty life cycle
  • onSaveInstanceState onRestoreInstanceState difference, call timing
  • Broadcast registration should be in which life cycle of Activity
  • How to count the number of onCreate
  • Difference between Fragment and Activity
  • Fragment life cycle management
  • How do Fragment and ViewPager load repeatedly
  • Three modes of View drawing process MeasureSpec
  • How to make Framelayout LinearLayout ReativeLayout view in the lower right
  • The difference between margin padding
  • The difference between gone invisible
  • The difference between requestLayout, invalidate and postInvalidate
  • Android animation how to cancel the loop animation repeat mode
  • What are the differences between drawable and view

Netease technology three sides-50min

Self introduction

Needless to say, the project introduction is too detailed

Android

  • What to do if the URL plus the default size is wrap_content during image transmission
  • Picture related slow size, coding, memory reuse
  • svg (other picture formats)
  • drawable mutate do not understand
  • okhttp bridge interceptor and cache interceptor
  • Design a custom DNS resolver
  • Management system design: There will be a buffer in the process of writing files. What to do when the process is killed? How to design the log system What to do if the management log is tampered with by the user to ensure log security
  • Principle of Disk Memory Mapping
  • Have you seen the open source management framework
  • Have you ever encountered resource reuse in development?
  • What's new in Android recently?
  • Self study plan

Meituan's face is over in one day

Self introduction

project

  • Internship Program
  • The most difficult point of the project
  • Technology choice
  • OSS STS certificate design
  • Is Lint tool compile-time? principle?

Scene question

  • Meituan homepage design?
  • Difficulties with multiple items in RecyclerView?

Design Patterns

  • MVP MVVM usage scenarios

HR

  • What's the offer now?

  • Choose the basis of offer?

  • Shanghai is expensive?

  • How to solve communication problems?

Write at the end

In the technical field, there is no single course that you can do once and for all after you finish it. The best course can only be "the master leads the door, and the practice depends on the individual." The phrase "learning without end" is not only a good habit in any technical field, but also a necessary prerequisite for programmers and engineers not to be eliminated by the times and to obtain better opportunities and development.

If you feel that your learning efficiency is low and you lack correct guidance, you can join a technical circle with rich resources and a strong learning atmosphere to learn and communicate together !

Join us! There are many first-line technical experts in the group, as well as code farmers who are struggling in small factories or outsourcing companies. We are committed to creating an equal and high-quality Android communication circle. It may not be possible to make everyone’s technology advance by leaps and bounds in the short term. In the long run, vision, pattern, and long-term development direction are the most important.

The 35-year-old middle-aged crisis is mostly caused by being led by short-term interests and squeezing out the value prematurely. If you can establish a correct long-term career plan from the beginning. After 35, you will only be more valuable than the people around you.

Guess you like

Origin blog.csdn.net/m0_53537576/article/details/113093335