Learning goals

The reason why summarizes the source code of the tripartite library, is to read the source code to learn the original intention of the designer, including the design model, the principle of the computer architecture, not to deal with the interview, but the real understanding of the designer intention, imitate ideas, improve their coding level

  • Learning open source library related questions, to learn well, you have to think about a few questions, these questions to think clearly, you can casually answer.
    • What does this library do?
    • Why use this library in your project?
    • What are the uses of this library? What are the application scenarios?
    • What are the strengths and weaknesses of this library, compared to similar types of libraries?
    • What are the core implementation principles of this library? If you were asked to implement some of the library’s core features, how would you do it?
    • What valuable or useful design lessons have you learned from this library?
  • The core of the source code should be handwritten

Mainstream third-party libraries:

  • Network:

    • OKHttp
    • Retrofit
  • Image:

    • Glide
  • Responsive programming:

    • RxJava
  • Memory leak:

    • LeakCanary
  • Dependency injection:

    • ButterKnife
    • Dagger2
  • Event bus:

    • EventBus source code parsing
  • Routing mechanism

    • ARouter
  • BlockCanary

  • Database:

    • GreenDao