What are the necessary skills for an excellent Android development engineer? I think there are several aspects to be mastered:
Language Foundation;
The language base should master C language development and Java language development, some people will ask to learn Android development also to learn C language? That is true. Android Bottom is the C language and C + + to implement and run the Linux platform, the upper application is the Java language implementation, we often use Java JNI way to call C and C + +, if not C will not know how to use JNI, how to invoke the underlying C and C + + implementation
2. Android basic components and programming ideas;
While Android apps are written in Java, Android programs have their own programming components and programming ideas that are not found in Java. Android programs are configuration-based programming, including dependencies between components, which is why you rarely see the new keyword in Android, and these programming styles and ideas are throughout the entire Android development process, so you have to master it.
3. Android UI;
Any app, no matter how powerful the function, if the appearance of ugly, the user will immediately throw away, to find other, so, UI selection, design and implementation and the performance of the UI optimization is necessary to master.
4. Android Advanced Module;
Android applications are very wide, website clients, GPS positioning, games, tools and software, to achieve a certain application should grasp a module knowledge, such as: the development of the client on the application of how to achieve network communication, how to use multi-threading, how to parse the data. To achieve a GPS positioning should master the knowledge of GPS positioning. To achieve a music player, you should master the knowledge of multimedia, so the advanced modules must be mastered.
5. Android Project;
This is our ultimate goal, I use Android development, eventually to learn to do projects, good projects, it is like building a house, you build the first house may not be satisfied, when you build a third to fourth house is handy, so through a number of project exercises to master the ability to develop a complete project.
Here I have organized some of the several stages of Android learning tasks, intentionally become a siege Lion group you can refer to:
Here I am divided into five stages;
First stage (Android Development Basics)
This stage is the foundation stage, with the goal of understanding the Android project structure, using the emulator to run Android programs, understanding the Android program's debugging methods, understanding the industry background, understanding the Android framework, building an Android development environment, Developing the first program in the Android development environment
Fundamentals of Android Programming
--java Language Basics
Data types, variables, constants, and arrays;
Operators and expressions, branching, looping;
Using Android base controls for input and output
Algorithms and common data structures
Software Programming Specification
Take the initiative to master the basic Java grammar, in-depth understanding of variables, expressions, operators, Process Control, algorithm preliminary, software programming specifications and other related content.
--oop programming
Object-oriented Programming (OOP), classes and objects;
Inheritance and combination, this and Super keywords, properties;
Method overloading and encapsulation
Use of access modifiers, static, and final keywords
Method overrides and polymorphism
Inner class and Static class
Common design Patterns
Mastering the advanced features of the Java language, understanding the object-oriented programming idea, mastering encapsulation, inheritance, polymorphism of the three major characteristics.
--java Core API
Regular expressions
Reflection
Collection Frame
IO operation
MVC pattern
Multithreading
Socket Network Programming
Learn more about the relevant APIs in Java
Android UI Basics
5 Big layouts in Android
Common Controls in Android
Event Handling in Android
Use of system menus and context menus
Use of dialog boxes
Activity's Jump
Master common layout and controls in Android, use of dialogs, jump and life cycle of activity
Phase II (Service-side technology)
Database, JDBC, and XML
SQL statement Base and improve
SQL statement Tuning
Fundamentals of Database Design
JDBC Core API (Connection, Statement, ResultSet)
XML BASIC Syntax
XML parsing
Mastering MySQL database technology, using JDBC technology to connect database, mastering XML syntax and parsing
Html/css
HTML basic Document Structure
The various elements in HTML
Use of forms in HTML
CSS Specification
CSS Selector
Common Properties of CSS
Using CSS to implement page layouts
Master the HTM l page design, writing, skilled use of CSS style words html
Servlets and JSPs
How the Web server works, tomcat installation and startup
Configuring virtual directories and publishing Web apps in Tomcat
The life cycle of the servlet
Servlet Core API
session and use of cookies
Basic syntax for JSP
JSP Tag Library
JSP programming tips and classic design patterns
Mastering servlet and JSP technology, can complete the application development of B/s structure independently
Phase III (Android core technology)
Data storage
Get internal and external data storage directories in Android via the context
Read-Write and preference-setting framework for preference files
Create and access a SQLite database
Using Sqlitedatabase objects to implement database operations
Using the cursor to traverse query results
Initializing the database and upgrading the database using Sqliteopenhelper
Defining ContentProvider Shared Data
Access ContentProvider using Contentresolver
HTTP protocol Detailed
Using HttpURLConnection to access the HTTP service side
Using HttpClient to access the HTTP service side
Parsing XML using the Sax method
Parsing XML using Pull method
Mastering Storage Technologies in Android: IO, Preferences, Database (SQLite), ContentProvider, and networked storage
Thread Communication
Learn about ANR
Solving ANR problems with multithreading technology
Understanding the principles of thread communication technology
Handler and message
Using multithreading to implement asynchronous loading of pictures
Encapsulates the threading communication model in Android, Asynctask
Creating message queues, Handlerthread in worker threads
Understand the principle of ANR generation and single-threaded model, master the Threading communication technology and Andorid programming skills in Andorid
Android components
Process priority in Android
Life cycle of service components
Using Intentservice to perform asynchronous tasks
Filtering of implicit intent (intent and Intentfilter)
Six Properties of Intent
Broadcast, orderly broadcast, and resident broadcast
Using Broadcastreceiver to accept broadcasts
Accessing media providers using Contentresolver
Master the life cycle of activity and service, master the six attributes of intent, and skillfully use explicit intent and implicit intent. Master the use of broadcast receivers. Use media providers to manage pictures and audio and video resources in Android
Telephone technology
Manage and query contacts using a contact provider
Use calls-related APIs for call log management
Use intent to make a phone call
Use a broadcast receiver to listen for phone calls
Use Telephoneymanager to listen for incoming calls
Hang up the phone using the Aidl interface Itelephony
Send a short message using Smsmanager
Listen for SMS acceptance using broadcast receivers
Use content providers for SMS Records management
Use content provider + Content Viewer implementation to send SMS listening
The use of telephone technology to make calls, send and receive text messages, master telephone and SMS monitoring mechanism. Use content providers to manage phone contacts, call logs, and SMS records.
GPS and location services, GoogleMap services, Baidumap services
Use Locationmanager to get the current position
Base station triangulation and GPS positioning
Automatically determine the best location service source
Elements of Google Maps
Use of Mapview
Control the map, zoom the map
Add an icon to a map
Master GPS positioning Technology, master the GoogleMap related APIs, use map and positioning function together
android4.x new Features
Fragment fragments
Viewpager
ActionBar
Master Android4.0 new technology and usage of common classes in Android Compatibility Pack
Stage four (Android advanced technology)
Advanced Graphics for Android
Picture and text effects
Dynamic Backgrounds
Custom animations
Music oscilloscope
Master Android Custom Graphics drawing, with the foundation for developing complex control effects
Android Advanced Controls
Drag of ListView, GridView
Two-way adjustable scroll bar
Quick function boxes that pop up as needed
ARC-arranged controls
Master the development of advanced custom controls for Android. Ability to develop custom controls as needed
Structure analysis and design of commercial application project
interface function organization and navigation in commercial projects
Mastering the right use of resources
How to use the Welcome screen and novice Navigation
Basic encapsulation of network operations
Master the business software in the early stages of development, how to build the basic structure of the project, how to communicate between the interface and background functions. And how to properly organize the various resources
Fifth stage (Android Project practice)
At this stage, it means that the real start of Android development life, then need to use a real project to practice practiced hand (of course, each of the previous stages can not be separated from the project practice). such as mobile phone defenders, audio-visual software and other projects. This kind of project online has a lot of source code to download, follow the source code slowly learn the effect will be more effective.
Doing these five stages can only indicate that you have stepped into the ranks of programmers, but technology is much more than that. The IT industry needs to constantly explore the spirit.
Well, finally, mutual encouragement!
Android Application Development Engineer detailed learning route