How to prepare for Android learning?
If you have identified the goals of learning Android, what should you do in advance and what foundation should you lay first?
First of all, you'd better get familiar with a programming language, and now the university and computer-related professional and even science and technology majors will generally open a C language course, just a lot of students in the university and did not study hard, if it is not good or long-term useless, it is recommended to review it carefully, A good review of its basic syntax would be better to build an environment to run and debug it. If you have not learned, may wish to study in advance, you can refer to the Tsinghua University publishing house rectification Teacher's "C Language Program design", recommended the reason for this book, one is that it has been tested for many years, it should be said is more rigorous; The second is that most of the colleges and universities to open the C language use of textbooks are used as teaching materials, so whether it is to buy or borrow, are easy to find. In addition, the Huaqing Vision website also has some of this teaching video, can be combined to see.
Secondly, if you follow the development of the game, you'd better have some basic knowledge of data structure and algorithm. Although modern high-level programming language, its class library has helped us to achieve most of the data structure, in general, we can directly use. But if you can understand the principle, when you need to be in the middle of these data structures and algorithms, you can be more clear in the end should choose that data structure or algorithm. In addition, in the graphic image processing above, the role of linear algebra is also very important, if you can grasp a bit of this basic knowledge, will undoubtedly be in the subsequent learning. For example, in Android, there is a class matrix for graphics transformations that is slightly harder to use. In fact, its theoretical basis is the matrix in linear algebra, if you understand the basic algorithm of the Matrix, the use of this class can be said to be a breeze.
Third, because the development language of Android is used in the Java language, and in Android also use the Java Core Class library of a large number of classes, so before learning Android development, you can first Java Basic grammar and Java SE base Class library to learn a bit, For example: IO, network, thread, list, Map, tree and other data structures in Java. Now there are many colleges and universities have opened the Java curriculum, textbooks and books are very rich, if your department is not open, you can also open from the other departments of the department to borrow some of the students, and carefully completed their assignments, and strive to write some simple Java applications. If you buy a book, you can buy "Java core Technology, Volume 1 (Original book 8th edition)" This book to learn.
Four, because in Android, the database is used to store data, so you can also advance database knowledge to make relevant reserves. In the SQLite used by Android, its syntax follows the standard SQL-92 syntax (of course, compared to enterprise databases such as Oracle, which is much weaker in functionality), and if there are conditions, it is best to install a database for actual operation. For ease of use and data completeness, it is recommended that you work with Microsoft SQL Server or MySQL. They are all a good platform for us to learn the database. In addition, if you have learned the principle of database or relational algebra, then, in the process of learning the database, you can also review these basic knowledge, it is very useful for us to understand the database.
Android Development Learning Methods
Finally, we'll talk about the learning approach to Android development with "3G Android system development."
Android is a large system, from the bottom of the Linux kernel to the upper layer of the application layer, the content span is also relatively large. Therefore, a good learning method is very important for us to learn the development of Android. Therefore, we should take a gradual step, the big goal into a number of small goals, and gradually achieve the development of Android from the application layer to the underlying system and drive development of a comprehensive grasp of the purpose.
For example, you can start with Android app development, wait until you're familiar with the app mastery, start reading some of the Android application framework layer's source code, and then get down to the Android Jni, Libraries, Dalvik virtual machine, HAL layer, Hardware drivers, the Linux kernel, the ARM technology architecture, and so on, while Intel has recently announced that Intel chips will support Android, the advantages of arm on mobile devices are not to be shaken for a foreseeable period of time.
Specifically, you can start by building your own Android system on the Development Board to understand the overall architecture and startup process of the Android system, so that you have a preliminary understanding of Android, and then learn about Android app Development, Here you can learn some of the main components of Android, UI components, first for Android application development has a perceptual knowledge. After being able to build up the user interface, we will gradually enrich the function of the application, for example: adding event processing to enable it to interact with the user, plus the data storage function, plus the networking function and so on. After learning the application, on this basis to learn game programming, first understand the basic idea of game design, and then start from the small game, little module started to start, and finally to complete a similar to the current popular "fishing man" such a game. After mastering the content of these application levels, you can learn how to use JNI to invoke the interface of the C + + in Android application, then learn Linux kernel and driver development such as character device driver, flash device driver, network device driver and so on, on this basis, To learn about Android driver development, HAL (Hardware abstraction Layer) development, ARM architecture and instructions, and so on, the entire system of Android development is running through.
Of course, because the time is limited, and the content of the bottom part is more complex, so in the real to do this part of the work, we only need to understand its basic principles, good knowledge of the reserves, can be based on the guidance of teachers to complete the relevant experiments. So in the follow-up work, can be convenient to this aspect of development, so that their career to a higher level.