Getting started with Android development! The first 100,000-word Android development actual document is published, which is clear and clear!

Jinjiuyinshi, I have compiled a collection of essential questions for Android interview questions with a monthly salary of 20K. I hope that everyone can check the missing and fill vacancies. Finally, I wish everyone can find a good job in Jinjiuyinshi!

1. Basics of Java se

1). Java basic data types and expressions, branch and loop.
2). Use of String and StringBuffer, regular expressions.
3). Object-oriented abstraction, encapsulation, inheritance, polymorphism, class and object, object initialization and recovery; constructor, this keyword, method and method parameter transfer process, static keyword, internal class.
4). Object instantiation process, method coverage, final keyword, abstract class, interface, inheritance advantages and disadvantages analysis; object polymorphism: conversion between subclasses and parent classes, abstract classes and interfaces are many Application in the state, the benefits of polymorphism.
5). Java exception handling, the mechanism of exception.
6). Commonly used design patterns: Singleton, Template, Strategy patterns.
7). JavaAPI introduction: a kind of basic data type packaging class, System and Runtime class, Date and DateFomat class, etc.
8). Java collection introduction: Collection, Set, List, ArrayList, LinkedList, Hashset, Map, HashMap, Iterator and other commonly used collection APIs.
9).JavaI/O input and output streams: File and FileRandomAccess classes, byte stream InputStream and OutputStream, character stream Reader and Writer, and corresponding implementation classes, IO performance analysis, byte and character conversion stream, and the concept of packaging stream, And commonly used packaging, computer coding.
10). Java advanced features: reflection and generics.
11). Multithreading principle: how to create multiple threads (Thread, Runnable) in the program, thread safety issues, thread synchronization, communication between threads, deadlock.

2. Android UI programming

1) Android development environment construction: Android introduction, Android development environment construction, first Android application, Android application directory structure.

2) The use of Android primary controls:

How to use TextView control How to use
Button control How to use
EditText control How to use
ImageView How to use
RadioButton How to use
Checkbox How to use
Menu

3) The use of Android advanced controls:

How to use ListView How to use
GridView How to use
Adapter How to use
Spinner How to use
Gallary How to use
ScrollView
RecyclerView

4. Use of dialog boxes and menus:

Basic concepts of Dialog How to
use BlockquoteAlertDialog How to use
DatePickerDialog How to use
Menu How to
customize Menu

5. The layout method of the control:

How to use linear layout How to use
relative layout

6. Multi Acitivity Management:

The role of the AndroidManifest.xml file The
method of
using Intent The method of transmitting data using Intent The method of
starting Activity The method
of using IntentFilter The method of using
Activity Group

7. Implementation method of custom control:

How to implement custom ListView How to
use collapsible ListView How to
implement custom Adapter How to implement
custom View How to implement
dynamic control layout
Pull up to refresh Pull down to load more

3. Android network programming and data storage

1). HTTP communication based on Android platform:

Http protocol review The
method of using the Get method to submit data to the server The method of
using the POST method to submit data to the server
Using the Http protocol to achieve multi-threaded downloading
Using the Http protocol to achieve resumable transmission

2). Android data storage technology:

SQLite3 database introduction
SQL statement review
SQLite3 programming interface introduction
SQLite3 transaction management
SQLite3 cursor usage
SQLite3 performance analysis
method
to access SDCard method to access SharedPreferences

Junior engineer

skills requirement:

  • Basic knowledge points,
    such as how to use the four major components, how to create a Service, how to layout, simple custom View, animation and other common technologies
  • Recommended books
    "First Line of Code Android", "Crazy Android"

mid-level engineer

skills requirement:

  • Slightly in-depth knowledge points
    AIDL, Messenger, Binder, multi-process, animation, sliding conflict, custom View, message queue, etc.

  • Recommended books
    "Android Development Art Exploration", "Android Heroes"

  • AIDL: Familiar with AIDL, understand its working principle, understand the difference between transact and onTransact;

  • Binder: understand the working principle of Binder from the Java layer, and understand the use of Parcel objects;

  • Multi-process: master the operation mechanism of multi-process, understand Messenger, Socket, etc.;

  • Event distribution: elastic sliding, sliding conflict, etc.;

  • Play with View: View drawing principles, various custom Views;

  • Animation series: Familiar with the difference between View animation and attribute animation, understand the working principle of attribute animation;

  • Understand performance optimization, familiar with mat and other tools

  • Know some common design patterns

  • Understand the sliding principle of view

  • Understand how to achieve elastic sliding

  • Understand the sliding conflict of the view

  • Understand the measure, layout and draw of view

  • Then learn a few examples of existing custom views

  • Finally, you can get the custom view, the so-called constant change

Senior engineer

skills requirement:

  • A little bit deeper knowledge

  • System core mechanism

  • Details of basic knowledge points

  • Design patterns and architecture

  • Recommended books:
    "Exploration of Android Development Art", "Analysis and Actual Combat of Android Source Code Design Patterns", "Analysis of Android Kernel"

  • Continue to deepen the understanding of the content defined in "Slightly in-depth knowledge points"

  • Understand the core mechanism of the system:

  1. Understand the startup process of SystemServer
  2. Understand the message loop model of the main thread
  3. Understand the working principle of AMS and PMS
  4. Can answer the question "How many windows exist in an application?"
  5. Understand the general workflow of the four major components
  • Details of basic knowledge points
  1. Activity startup mode and the performance of different activities under abnormal conditions
  2. Service's onBind and onReBind association
  3. The difference between onServiceDisconnected(ComponentName className) and binderDied()
  4. AsyncTask performance details on different versions
  5. Details and parameter configuration of thread pool
  • Familiar with design patterns, have architectural awareness learning methods

The above is a learning route to organize and share advanced Android development.

to sum up

This is the end of writing. I put a small benefit at the end of the article. The following is a learning idea and direction about Flutter that I compiled during the learning process. When engaged in Internet development, the most important thing is to learn technology. , And learning technology is a slow, long and arduous road. It cannot be learned by a moment’s passion or by staying up for a few days and nights. It is necessary to develop the habit of studying hard in ordinary times, and it is more necessary to learn accurately to achieve effective learning results. .
Since there is more content, only a rough outline is placed. If you need a more detailed learning mind map,  click on my GitHub to get it for free.
There are also free advanced UI, performance optimization, architect courses, NDK, hybrid development (ReactNative+Weex) WeChat applets, Flutter all aspects of Android advanced practical technical materials, and there are technical experts to discuss and solve problems together .

%9D%A2%E8%AF%95%E6%8B%BF%E9%AB%98%E8%96%AA%EF%BC%81.md) Free access.
There are also free advanced UI, performance optimization, architect courses, NDK, hybrid development (ReactNative+Weex) WeChat applets, Flutter all aspects of Android advanced practical technical materials, and there are technical experts to discuss and solve problems together . **

Cross-platform development: Flutter.png

Guess you like

Origin blog.csdn.net/a132445/article/details/112986385