Copyright NOTICE: This article is Stormzhang original article, can be reproduced at will, but must be in a clear location to indicate the source!!!
The story behind this blog post
All the way is not easy, just know on the invitation to answer how to self-study Android programming, take this opportunity in the knowledge of the history of the journey, very inspirational, hope to those who are or ready to walk the programming industry, some positive energy, the content is a bit long, interested can be as inspirational novel reading it.
Received some friends of the micro-blog private message, said can give some guidance to Android novice, I can only say that guidance is not, after all, I am also a lot of things are learning, at the same time a college students are ready to switch to Android, can be said to start from the beginning, then I would like to give some advice on an experienced identity Just hope that in the course of learning can be less to write detours.
Hardware
First of all, I am not the fruit powder, personal windows,linux,mac ox system have been used, can only say that Windows development tools are simply difficult to compliment, especially the command line super difficult to use, and Linux itself must spend a lot of time in the toss, is not suitable for novice, Max OS is I think the most useful system so far, not one, so if you are not bad money, it is strongly recommended to start a Mac, recommended Pro Series, of course, its price is indeed more expensive, if the temporary difficulties, recommended later on hand when the time to start, will bring you a quality experience. (Google's engineers are using the Mac, should be more convincing it)
- Mobile – Recommended Nexus 5
Android development is the most unbearable is that turtle speed simulator, highly recommended to start my Google Nexus series, native ROM, cost-effective ultra-high, conditional recommendation to start a Xiaomi or Samsung, not because they have more useful, It's because the two brands on the market now have the largest share of mobile phones, which may need to be adapted and tested in practice, in short you need an Android phone. You may also need to know that the Meizu has a smartbar, although I think it is really sb. In the end you still have to use the simulator, then let you recommend a more rapid simulator bar--genymotion, specifically see me this blog a powerful Android simulator genymotion
Books
The book is not much, suitable for you, in fact, most of the books on the market are similar, there is no essential difference, so the book must have, but not recommended one-time buy too much. Here are a few of the recommended books I think are better, click to buy directly.
Guo Shen's latest masterpiece, Guo Shen's blog is great, I also bought a part of the book, very good, suitable for beginners, and is for Android 4.0 to explain.
- Crazy Android Handout Second edition
When I studied this book, now out of the second edition, the advantages of this book is very thin, the code is more, you can follow the code step by step, the disadvantage is too much space, resulting in the book is too thick, carry inconvenient, the last few examples of the book tutorial is not so good, do not know the second version of the change did not.
- Thinking in Java Chinese version
Thinking in Java is a classic Java book, this is a book worth repeating, for the people who have a certain Java foundation, can be said to learn the Java language necessary books.
- Effective Java Chinese Second edition
Effective Java is a prerequisite for Java, and it will definitely give you a deeper understanding of Java.
Add: In view of the fact that a lot of small partners have made it a good book to recommend Java learning, thinking in Java is really a great books, but good books are generally not for beginners, so if you do not have any programming experience, then I will recommend you a few Java Basic Books, do not provide purchase links, We search to buy it by ourselves.
- "Crazy Java Handout" (Li Gang), "Java Object-oriented programming" (Sun Weichen), "Java Development Combat Classic" (Li Xinghua), "Core Java"
These books are for beginners, I have not seen, but I did a little to understand, and finally, these books to buy a copy is enough, and then with the video learning, small white entry is not a dream.
Development environment
It is highly recommended for Android developers to abandon Eclipse and embrace the future! This is Google's latest Android development tool, based on idea, compiled dependent Gradle, There is now a 1.0 official version, which is the future of Android development tools, so it is necessary for Android developers to take the time to learn to use it and experience it and never want to touch eclipse ever since it was used.
For this I have also launched some of Android studio's Column learning tutorials, the most detailed in history:
Android Studio Series Tutorial One--Download and install
Android Studio Series Tutorial Two-basic setup and operation
Android Studio Series Tutorial Three--shortcut keys
Android Studio Series Tutorial Four--Gradle basics
Android Studio Series Tutorial Five –gradle command detail and import a third-party package
Android Studio Series Tutorial six –gradle multi-channel packaging
FQ
As the saying goes, not FQ programmers are not good programmers, especially recently Google services are blocked, the above IDE download will need to FQ, here is recommended a reliable VPN bar, support multi-device Mac, Windows, Android, iphone, etc., If you and the small partners together to buy the monthly only a few dollars, the circle of friends are in use, if you buy through the link below, you and my account will be increased by 10 yuan.
Ladder VPN
If you don't want to FQ anyway, here on GitHub you can download the above Android development tools directly
Androiddevtools
Google Android Official Tutorials
Android Training Course in Chinese
Video Testimonials
Here I must strongly recommend the novice to combine video learning, as a result of my very clear the beginning is very difficult, just reading or information difficult to understand, and this time combined with video interpretation, coupled with their own books and actual combat, will play a multiplier effect. So do not underestimate the role of the video, of course, I do not need to see the video at this stage, because the video explanation is somewhat slow, but for the novice's role is very large. Video learning has a lot, but most of the same, I can not recommend the best to you, just to my own point of view that the quality is also good, recommended the following Android video learning.
Android Video Learning recommendations
Android Basics
The above may be a more comprehensive system of training tutorials, for beginners may be some need to focus on something more confused, so tidy up the personal think the novice must master the knowledge points, the way will also accompany the corresponding feel good to explain the blog address.
- Two minutes to fully understand the Android activity life cycle (graphics)!
Activity is most frequently used in actual development, and this must be understood
- Android four basic components introduction and life cycle
The four components of Android must be known and often asked in the interview.
- Basic use and optimization of the ListView
The ListView is the most commonly used in all controls and is more complex for beginners, and the use of various adapter, as well as the optimization of the ListView, must be mastered.
- Standard intent for activity in Android systems
Intent has solved the communication of four components in Android, which is very useful, and this blog collects and collates the standard of the system intent
- Android screen Adaptation
Introduce some of the basics of Android screen adaptation
- A detailed description of the SQLite app in Android
SQLite in Android needs to be mastered, this blog is suitable for beginners
- Android Fragment Full parsing
After 3.0, the newly added fragment must be mastered, and the current use of the scene is becoming more and more common.
Android Intermediate
- The life cycle of Android apps
The life cycle of Android apps needs to be understood, and interviews are often asked.
- Take you step-by-step insight into the view
View is most commonly used in UI development and must be understood in depth
- Android Service Full parsing
Service as one of the four components of Android, plays a very important role in every application
At present, the more popular data format is JSON, this blog teaches you how to use the Google Gson library for JSON parsing
- Android Layout optimization
The XML layout is often used in Android development, so the knowledge of layout optimization needs to be mastered.
- Two ways to pass objects intent in Android (Serializable,parcelable)
Detailed information on how to transfer objects in intent in Android
- Full parsing of the Android asynchronous message processing mechanism
Asynchronous operations are often used in Android development and must be understood to master
- Android Asynctask Full parsing
Another way to work with Android asynchronously
Early a small demo that teaches you how to do an app for loading animations
Android Advanced
Google official Android New build system, can easily manage dependencies, compile packaging, etc.
- Android Performance Optimization
A series of performance tuning tutorials to get your code and apps up and flowing!
- A complete open source project –9gag
An open source client that teaches you to quickly develop a good Android client using studio, Gradle, and some popular open source libraries
- Organize your Android development resources
Self-organizing some of the Android development resources, including development, tools, design, etc., I believe it will be useful to you
Android Design
Before you develop an Android app, you need to understand the design specifications for the Android platform, which is the latest version of Google's material designed Chinese translation
Android Compatibility library
When you understand that the design specifications are ready to start developing your app, you also need to consider the version that your app supports, and if it's a brand new app, it's recommended to support 4.0+ directly in terms of current market share, although 2.3 of the share is still part of the app, but how much of this is actually used by people. Of course, if your company must require support for the 2.x version, then don't worry about it, here are a few of the compatibility libraries that you can fit:
A Actionbar compatible library of the Great God Jakewharton, supported in the 2.x version Actionbar
Before this use Actionbar basic will use the above Jakewharton compatibility library, but currently Google has its own set of Actionbar compatibility library, recommended the use of Actionbar Compact, specific introduction and use of the method described in my blog
Android 3.0 before opening some new animated Api–property Animation, the great god Jakewharton Another masterpiece that allows you to use property animations in the 2.x version of the SDK.
If you need a compatible version of 2.x, you need to use the following classes in the V4 package, such as fragment, Fragmentmanager, Fragmentactivity, Fragmentpageradapter, Cursorloader, Loadermanager, Asynctaskloader
Of course, there are some new controls underneath the V4 package, you have to know.
Navigation Drawer (navigation drawer)
Prior to implementing a drawer navigation on Android you might use the Slidingmenu Open Source Library, and now you can use the official Drawerlayout control to easily implement
Slidingpanelayout
Slidingpanelayout is a newly added component in the V4 package, which allows the two-column panel to be switched, using the link to the effect, see Blog
Swiperefreshlayout
Swiperefreshlayout is a drop-down refresh component of Google's support V4 19.1 version of the library update, which is handy for Google Now's results.
Some open source libraries that Android developers must know
When it comes to the open source Library, you have to mention GitHub, only to say that the most active open source community, do not know to quickly register an account to use, is definitely your fast technology to improve the weapon.
Volley
While app development is inevitable to interact with the server, volley is an open source web communication library that Google officially launches, making it easier and faster to communicate on the Web.
Volley Full Parse
Android Volley Sample
Activeandroid
Activeandroid is a lightweight ORM (Object Relation Mapping) framework that simply uses methods such as Save () and delete () to do additions and deletions.
- Activeandroid–android Lightweight ORM Framework
Retrofit
Retrofit is similar to the ORM concept in the Java World, where ORM transforms structured data into Java objects, and retrofit transforms the data returned by the rest API into Java objects for ease of operation. It also encapsulates the invocation of network code.
- Retrofit–java (Android) Rest Interface Encapsulation Class Library
Android-universal-image-loader
Android-universal-image-loader is a powerful open source image asynchronous loading library that is designed to provide a reusable instrument for asynchronous image loading, caching and display.
- Android-universal-image-loader
Android Open Source project subtotals
A very comprehensive GitHub open source project summary, no need to reinvent the wheel, enjoy the open source world
About Me
Non-technical transfer programming, Android developer, Google brain residue, love open source, share Android knowledge, technology, information
Recommended to follow my public number androiddeveloper"googdev", the first time to get blog updates!
Stormzhang
07/07/2014
Basics of Getting Started with Android: Start here
Http://hukai.me/android-training-course-in-chinese/basics/index.html
Android Studio Import Apidemos
http://blog.csdn.net/dreamer2020/article/details/52316895
The Android Learning path turns