App Android development! Meituan Android development engineer job function requirements, just read this one!

The current state of Android development

At present, mobile development is already in a saturated stage, and Android development is not as popular as it was in the past, and it is no longer as popular as it was a few years ago. Just as a programming language has experienced its peak, it must have such a curve, like the sine curve we learned, first rises rapidly, then reaches the peak, then falls, and finally approaches a stable value.

It can be seen that starting from the second half of 2016, the mobile Internet is basically in a stage of slow development, and many bigwigs call it the second half of the Internet. If the first half of the mobile Internet is an extensive and strong turf stage, then the second half is the stage of defending the turf. At this stage, there will be many oligarchs.

Technically, compared to the previous interview, only the four major components of Android were asked. The database, network and project experience are different. Now the interview for Android positions will design various principles (including some principles of the system and principles and processes of third-party libraries), Android Optimization and cross-platform technology related to Android. In addition, slightly larger companies will also require App user experience, fluency, etc., so Android interviews are no longer the same.

Face-to-face sharing

The first part is a summary of my front-end interview experience, and the second part is a topic that I think has more room for thinking.

Summary of experience

  • A beautiful resume must include the following parts (top-down layout)
    • Personal highlights (specialization field, personal blog, open source project)
    • Educational experience (graduated college, school experience, honors)
    • Work experience (internship)
    • Project experience
    • professional skill
  • A solid front-end foundation, such as you know
    • <meta http-equiv='X-UA-Compatible' content='IE=edge,chrome=1'/> What is the role?
    • flex:1 What does the 1 stand for?
    • Generator How to throw an error?
  • Familiar with a front-end framework (React first)
  • Brush LeetCode's algorithm questions frequently, and be familiar with the corresponding data structures such as common linked lists, stacks, queues, hash tables, and trees
  • Familiar with network basics, Git commands, Linux commands
  • Learn more about the new front-end trends (Flutter, PWA, Serveless, GraphQL, CSS Houdini)
  • Be confident and let the interviewer feel your love for the front end

Interview questions

Due to the relatively large number of companies and the number of interviews, the usual interview questions will not be released, and the interview questions will not be divided by company.

Algorithm question

Most of them come from LeetCode, LeetCode HOT 100, it is best to go through it yourself to understand the optimal solution

Programming questions

  • Use Class to implement EventEmitter, which requires on, once, emit, and off methods

  • To implement deepClone, it is required to successfully clone objects with circular references

  • CSS implements a box with a width of 1/2 of the browser and an aspect ratio of 2:1

  • Implement the sum function

    sum(1)(2)(3) == 6; // true
    sum(1, 2, 3) == 6; // true
    复制代码
    
  • Implement the sum2 function

    console.log(sum2(1)(2)(3)()) // 6
    console.log(sum2(1, 2, 3)()); // 6
    复制代码
    
  • Realize fibonacci sequence with tail recursion

  • Implement the co function

  • The following functions are implemented. When a push operation is performed on an arr, a line of prompt message will be automatically printed

    const arr = [1,2,3];
    arr.push(4);
    // arr pushed a new element: 4
    复制代码
    
  • Code implementation interrupts the operation of Promise

  • There is a set of pictures, after the realization of a picture, it must wait until the previous picture is loaded before it can start loading

  • Add a method to the Test class to print the specified content

    class Test {
        constructor() {
            this.person = { name: "jack", age: 38, position: "CTO" };
        }
        // ......
    }
    
    const test = new Test();
    for (const ele of test) {
        console.log(ele);
    }
    // [ 'name', 'jack' ]
    // [ 'age', 38 ]
    // [ 'position', 'CTO' ]
    复制代码
    
  • To implement the handler function, both b and ac must be removed

    console.log(handler("aabaa")); // 'aaaa'
    console.log(handler("abaccbc")); // 'c'
    console.log(handler("aaccc")); // 'c'
    console.log(handler("aaabccc")); // ''
    复制代码
    
  • Implement the decode function

    decode('HG[3|B[2|CA]]F') === 'HGBCACABCACABCACAF' // true
    复制代码
    
  • Implement the _bind function to make printing success

    function Animal(name, color) {
      this.name = name;
      this.color = color;
    }
    Animal.prototype.say = function() {
      return `I'm a ${this.color} ${this.name}`;
    };
    const Cat = Animal._bind(null, "cat");
    const cat = new Cat("white");
    if (
      cat.say() === "I'm a white cat" &&
      cat instanceof Cat &&
      cat instanceof Animal
    ) {
      console.log("success");
    }
    复制代码
    
  • CSS to achieve the effect of circular progress bar

  • Say the following to print

    console.log(-1 >>> 32); 
    console.log(-1 << 32);
    console.log(1 >> 32);
    console.log(5 >>> 2);
    
    var a = { n: 1 };
    var b = a;
    a.x = a = { n: 2 };
    console.log(a.x);
    console.log(b.x);
    复制代码
    

Short answer

  • Implement the inspect function of F12 developer tools
  • Realize drag and drop a box from one area to another designated area
    • Part of the box is inside the area, and part of the box is outside the area. What should I do?
    • Briefly describe several key methods of encapsulation
  • How to troubleshoot the white screen of the developed project on the WeChat browser
  • How to count which areas on a page have the most clicks by users
  • How to design user permissions according to the granularity of the button level, for example: A can access the button, B can not
  • How to automatically take screenshots of a web page content and how to solve login restrictions

  • A component wraps B component, B component wraps C component, their componentDidMount trigger sequence
  • Is React setState asynchronous or synchronous, and what is the principle?
  • What are the precautions for the use of React Hooks
  • React's synthetic event mechanism
  • Briefly describe the old and new life cycles of React components, and talk about the introduction of React Fiber architecture
  • A detailed introduction to Redux state management and how to connect with React components
  • The purpose of React HOC, what is the decorator pattern
  • The realization principle of Mobx

  • Koa's middleware principle, introduce the compose function
  • Introduce the EventLoop mechanism of NodeJS, the role of process.nextTick()
  • Is NodeJS single-threaded or multi-threaded, what threads are there, and why is JS single-threaded
  • The realization principle of CommonJS
  • What flows exist in NodeJS, how to understand pipe() and its advantages
  • The parsing rules of require
  • Introduce load balancing, what is the cluster and child_process of NodeJS

  • How webpack is packaged
  • How webpack dynamic import is implemented
  • How to write your own loader and plugin
  • Briefly describe the externals in the webpack configuration file, does UMD understand?

  • Introduce DNS, what is iterative query and recursive query, what is first-level domain name and second-level domain name
  • What is the separator between HTTP header and body, and how to match with regular
  • The detailed process of HTTPS, what is a digital certificate, message digest, asymmetric encryption, Hash algorithm
  • How to realize real-time communication between Tab pages, client and server
  • HTTP status code: the difference between 301, 302, and 307

  • Briefly describe the garbage collection mechanism of the browser, and what are strong references, weak references, and circular references
  • Briefly describe the role of requestAnimationFrame and requestIdleCallback
  • Is the parsing order of CSS selectors from right to left or from left to right? Why
  • What is the problem with the click event on the mobile terminal, how to solve it, and what pits do you encounter on the mobile terminal?
  • Briefly describe the generation process and advantages and disadvantages of JWT, how to actively cancel JWT and renew JWT
  • What are the indicators used to detect the performance of the website?
  • How to check which line of code the website’s Ajax request is sent from, which events are bound to an element, and what does the Chrome debug panel F8, F10, and F11 represent?
  • Tell me about your knowledge of jpg, gif, jpeg, png, webp, base64 URL

At last

For Android programmers, I have compiled some materials for you, including not limited to advanced UI, performance optimization, architect courses, NDK, hybrid development (ReactNative+Weex) WeChat applets, Flutter and other all aspects of Android advanced Practicing technology; I hope to help you, and save everyone's time to search for information on the Internet to learn, and you can also share dynamics with friends around you to learn together!

  • Android Frontier Technology Outline

  • Full set of systematic high-level architecture videos

Information collection: Like + click on GitHub to get it for free

Previous Android advanced architecture materials, source code, notes, and videos. Advanced UI, performance optimization, architect courses, hybrid development (ReactNative+Weex) all aspects of Android advanced practical technology, and there are technical experts in the group to discuss, communicate and solve problems.

E4%B8%8D%E4%BC%9A%E8%BF%99%E4%BA%9B%EF%BC%9F%E5%A6%82%E4%BD%95%E9%9D%A2%E8%AF%95%E6%8B%BF%E9%AB%98%E8%96%AA%EF%BC%81.md)**

Previous Android advanced architecture materials, source code, notes, and videos. Advanced UI, performance optimization, architect courses, hybrid development (ReactNative+Weex) all aspects of Android advanced practical technology, and there are technical experts in the group to discuss, communicate and solve problems.

Guess you like

Origin blog.csdn.net/chayel123/article/details/114099438