With this core document of 'Data Structure and Algorithm', the latest Android framework architecture interview questions in 2024
With this core document of "Data Structure and Algorithm", the latest Android framework architecture interview questions in 2024
Alibaba's technical side-35min
Self introduction
Android
- Have you encountered OOM problems (have you 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
- What design patterns have been used?
- Observer example
network
- Differences between HTTP & HTTPS
other
- Why choose Fliggy
- professional concern
- Competitions participated
Ali technology two sides-1h hanging
Self introduction
project
- Why Choose OKHTTP Framework
- Load image frame? (Learn Glide)
- JSON parsing framework? (Learn Gson, FastJson)
- Technology selection?
- Number of pages?
- How to design cache for OSS upload credentials? How to encrypt? (Encryption Algorithm??)
- What other projects can you talk about?
Android
- Activity life cycle? Start transparent Activity life cycle? Press home button life cycle?
- How to recover data after killing APP in the background?
- Can an APP have multiple processes?
- What is the difference between ListView and RecyclerView?
- How to troubleshoot RecyclerView freezes?
- How does RecyclerView implement multiple Types?
- How to optimize the ItemView hierarchy of RecyclerView that is too deep?
- Android multi-process?
- How to design inter-thread communication in Android?
- Handler mechanism? Can child threads use Handler?
- ANR?
Java
- Differences in usage of private protected public keywords! ! !
- What is the difference between interface and abstract class? Does an abstract class need to implement interface methods? ? ?
- Is Map thread-safe? Which collection should I choose to read more and write less? (CopyOnWrite, I don’t dare to say it if I don’t understand the principle)
network
- HTTP/HTTPS difference
- Do you understand TCP? Handshake and wave process?
- Long connection?
- How to implement push?
Tencent
Batch one side in advance - 35 minutes
Project Introduction
- Implemented functions to implement network requests based on OKHTTP
HTTP(s)
- Introducing the HTTP protocol
- What to do if the HTTPS public key is exposed
- How to ensure that HTTP multipart upload files are correct
- HTTP cache
Java
- The difference between process and thread
- Communication between sub-threads
- How to solve deadlock and how to determine when deadlock occurs
Algorithm questions
- Array of odd and even numbers, reorder to ensure the order remains unchanged, odd numbers first and even numbers last
- Sum of 2 numbers/3 numbers
Approval of two noodles in advance - 30 minutes - hanging
Self introduction
Project Introduction
- Project sorting
- Image compression algorithm? Let’s talk about Android image compression
- Bitmap JPG difference Image processing: What are the differences between JPG, PNG and BMP?
- Breakpoint and retransmit? How to dynamically determine the range? Android implements breakpoint upload files
- Breakpoint download? CRC principle file check 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, the different writing methods of Java singleton mode in usage scenarios (lazy man style, hungry man style, double check lock, static inner class, enumeration)
HTTPS encryption method
Tencent officially launches batch test - 25min
- Crash
- How to solve ANR
- Design the data structure of the top 32 matches of the World Cup
- 2 balls. Find the floor on the 100th floor. If you drop them, they will break.
- Test specific work
Tencent officially launches second batch test - 1h
project
- Talk about details
Android
- Performance troubleshooting and positioning of large memory data for pictures and voice?
- Handler memory leak problem
- What is the difference between ART Dalvik?
- GC mechanism?
- CountDownLatch principle?
Algorithm questions
- Find the maximum value of an array without using for?
chat
- Self-advantage
Baidu
Baidu side-1h
Self introduction
Project Introduction
- Are coding standards useful?
Android
- Android four major component security
- Activity startup mode
- IntentFilter matching rules, what is the difference between action and category?
- Why doesn't Handler get stuck when 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 issues and how to achieve process synchronization
- Frame animation implementation: 100 pictures, one picture is displayed every 200ms, and it takes 400ms to read one picture. How to solve the problem to avoid lagging (multi-threaded reading)
- Bitmap memory reuse restrictions
- Thread time slice allocation principle
Baidu Ermian-45min
project
- Sorting out projects
- difficulty
- technical framework
Algorithm questions
- handwritten dichotomy
- Elevator state machine design
Advantages and Disadvantages
- advantage
- shortcoming
- major
Baidu Three Sides-45min
technology
- longest common substring
- Class loading mechanism
- okhttp principle
- Thermal repair principle
The rest of the chat
- Advantages Disadvantages
- University regrets
- What activities are organized?
- long-term things
- Professional destination
NetEase
NetEase technical side-1h
Self introduction
Project Introduction
- The most impressive thing about Huawei’s bug fixes
Android
- TouchEvent delivery process? What should I do if onTouchEvent returns false?
- How to design cache
- Android data persistence
- How to batch process database (principle)
- Does SP support multi-threading? How to implement multi-threading in SP
- View drawing process
- Handler message mechanism
Java
- How does thread B wait for thread A to complete its work?
- How does a thread end its work? Three ways to end a thread in Java
- Which methods in Java support interrupts
- Design a request for limited resources
- How to design an object pool (deposit and put back objects)
- When are thread pool threads created?
- Locks in Java
- Reentrant lock performance
Pen questions
- Swap a value between two arrays, make sum equal, find these two values
NetEase Technology 2nd Session-1h
Self introduction
Huawei internship
- involved projects
- Solved bug
- Let’s talk about the programming standards involved
- Lint tool?
Design Patterns
- Singleton pattern
- volatile keyword atomicity
Android
- Inter-process communication method (difference from Linux inter-process communication)
- How to verify the security of Socket
- Broadcast (global local difference)
- How to realize multi-process communication of files (how to notify process B to read when process A changes the file)
- How to design the second level cache (relationship between network database views)
View
- Activity life cycle
- onSaveInstanceState onRestoreInstanceState difference, calling time
- Which life cycle of Activity should broadcast registration be in?
- How to count the number of onCreate times
- The difference between Fragment and Activity
- Fragment life cycle management
- How to load Fragment and ViewPager repeatedly
- Three modes of View drawing process MeasureSpec
- How to make View in the lower right of Framelayout LinearLayout ReativeLayout
- Differences in margin padding
- The difference between gone invisible
- The difference between requestLayout, invalidate and postInvalidate
- How to cancel the loop animation repeat mode in Android animation
- What are the differences between drawable and view?
NetEase Technology Three Sides-50min
Self introduction
There is no need to go into too much detail about the project introduction.
Android
- What should I do if the URL plus the default size is wrap_content during image transfer?
- Picture related buffering, encoding, memory multiplexing
- svg (other image formats)
- Do you understand drawable mutate?
- okhttp bridge interceptor and cache interceptor
- Design a custom DNS resolver
- Dot system design: There will be a buffer during the file writing process. What should I do if the process is killed? How to design the log system? What should I do if the dot log is tampered with by the user to ensure log security?
- Disk memory mapping principle
- Have you ever seen the open source management framework?
- Have you ever encountered resource reuse during development?
- Have you learned about any new Android trends recently?
- own study plan
Meituan’s on-site interview was completed in one day
Self introduction
project
- Internship Program
- The most difficult part of the project
- Technology options
- OSS STS certificate design
- Is the lint tool at compile time? principle?
Scenario questions
- Meituan homepage design?
- What’s the difficulty with multiple Items in RecyclerView?
Design Patterns
- MVP MVVM usage scenarios
HR
-
What are the offers now?
-
Basis for choosing an offer?
-
Is Shanghai expensive?
-
How to solve communication problems?
Let me introduce myself. I graduated from Shanghai Jiao Tong University in 2013. I have worked in small companies and large companies such as Huawei and OPPO. I joined Alibaba in 2018 and have been there until now.
I know that most junior and intermediate Android engineers who want to improve their skills often explore and grow on their own. However, their unsystematic self-study is inefficient and lengthy, and it is easy to hit the ceiling and stagnate in technology!
Therefore, we have collected and compiled a "Complete set of learning materials for the latest Android mobile development in 2024" to give to everyone. The original intention is also very simple. I hope it can help friends who want to learn and improve themselves but don't know where to start, and at the same time reduce everyone's burden.
Since the file is relatively large, here is just a screenshot of part of the directory. Each node contains interviews with major manufacturers, study notes, source code handouts, practical projects, and explanation videos.
If you think these contents are helpful to you, you can add the V below for free. receive! (Note Android)
How to become an Android senior architect!
Architects must have the ability to think abstractly and analyze, which is your basic quality for system analysis and system decomposition. Only with this ability can the architect see the entire system clearly and control the overall situation. This is also the basis for the architect's overall view. How do you develop this ability? One is from experience, and the other is from learning.
Architects need to have experience not only in the problem domain, but also in the software engineering field. In other words, the architect must be able to accurately understand the requirements, and then use software engineering ideas to transform and decompose the requirements into a level that can be implemented in computer language. The accumulation of experience requires a time process. No one can help you with this process. You need to go through it.
However, if you cultivate consciously and constantly learn from the experience of your predecessors, you can still shorten this cycle. This is also one of the original motivations for me to organize architects to advance to this series.
Essential knowledge and skills to become an Android architect
Study notes corresponding to the map (handwritten by Ali P8 Daniel, I am responsible for organizing them into PDF notes)
Partial content display
"Design Thinking Interprets Open Source Framework"
- Table of contents
- Hot repair design
- Plug-in framework design
"360° all-round performance optimization"
- Design thinking and code quality optimization
- Program performance optimization
Partial content display
"Design Thinking Interprets Open Source Framework"
- Directory
[External link pictures are being transferred...(img-SjrAONCl-1710036635787)] - Hot repair design
[external link image transfer...(img-LK4aUYw2-1710036635787)] - Plug-in framework design
[External link pictures are being transferred...(img-0vuvbfbj-1710036635787)]
"360° all-round performance optimization"
[External link pictures are being transferred...(img-hC9w4GXu-1710036635788)] - Design ideas and code quality optimization
[external link pictures are being transferred...(img-JEd0p0LH-1710036635788)] - Program performance optimization
[external link image transfer...(img-cWc0WFdY-1710036635788)]
This article has been included in the open source project: [ GitHub ], which includes self-study programming routes in different directions, interview question collections/interviews, and a series of technical articles, etc. The resources are continuously updated...