I work in recent years (five) - Android learning 4.5 months (a) summary

Recommended for you: Get network issues from WhatsUp Gold. Not end users.

This is for my personal career growth and programmers a great impact in a year.

After a child, the home has too many too many things, and now has been slowly on the right track, I made it, of course, wife, parents, my parents, there are a lot of concern and support of my people to help. In all kinds of setbacks appear alternately and slowly come after the episode, these life let me begin to mature. The vast majority of time I can't change the environment and others, can only change myself, and my own perception of the problem and attitude.

The programmer career, because the authorities to adjust, I was forced to give up I made multimedia conference for more than 3 years of business, gave up the fight together for nearly two years and gradually mature team, joined a new Department, to do new business. This makes me very painful, maybe this is life, most of the time we will only get a notice in a specific incident, That's it, you can only accept, no more choice.

My luck is not bad, the new department head is I just entered the company leadership, he also became my PM took more than a year of the project, are very familiar with each other. Another leadership is also worked on nearly 2 years of the project. Just join the new Department, I did develop a month of server, this is my very familiar field, enter the company to that point in time, basically doing server development. This more than a month to do things behind, are free to write a blog records in detail.

This more than a month in the development server code period, I have been thinking about my future the direction, pure development? Project? Or with people?...... I don't know, also consulted before the leader's opinion, are not well solve my confusion, in does not see clearly in front of the case, I conducted a comprehensive analysis of the distribution of personnel and Business Distribution Department. Framework of + server; source of about a week, basically understand, the core part of the code are studied almost, not too many things to learn, improve chances. The client, mainly consists of iOS, Android, Android is based on the Java, I have 3.5 years experience in Java, will soon start; iOS syntax is jerky, give up. In the changing departments before, simply read a little Android introductory video, do Android, the Department of Android is less, the long experience is more than 1 years.

First, there is no clear tasks, have more time to study, mainly have two Daniel Blog:maxleng, old. Maxleng blog, about 70%, some point of view, some read; Luo, about 30%, including Binder, Activity, View, ActivityManagerService and other related, seen 3 times. Maxleng article, very atmospheric, starting from the macro on the Android analysis, from the angle of system architecture to be a logical structure and system. He will be the whole Android into N blocks, and then a piece of analysis, to learn more details about me, in fact, more of the appetite.

I mainly read this book: The ANDROID framework , A key part of seen it 2 times, non key skimmed through. This book let me process of Android system initialization, The startup process of Dalvik, Starting procedure of Android App, A preliminary understanding of the Binder mechanism., In this book at the same time, I downloaded a complete code complete Android 4.2.2, The key part of the code all lead to the same Source Insight project, Control key code mentioned in the book, Complete with all over again., Tell the truth, After reading the book and code, Over time the details basically forgotten, Just remember the general framework.

The first official Android received the relevant task, is related to the AndroidLauncher. Launcher framework to achieve a dynamic loading application based on Launcher, the display a screen is divided into 3 parts: the upper, left, right, left side; the two parts are realized through the dynamic loading. This realization of the benefits is: because we want to achieve a complex Launcher, if all the small applications, animation effects are realized in the Launcher, the Launcher will be very large, is not conducive to the upgrading of the Launcher behind, according to the needs of dynamic loading APK Activity, can well solve this the problem. This part has been recorded in these articles: LauncherIn the dynamic loadAPKIn theActivityIdeas to solve the problem , Android 4.0Launcher2Source code analysis-LaucherThe interface element decomposition(Main layout file content) , AndroidThroughsharedUserIdMechanismAPKData sharing, The skin App can use this mechanism to realize the "," Android 4.2.2 native Launcher modified to run on, "Launcher" process of function "," a APK using the BroadcastReceiver dynamic registration, Launcher in the dynamic load this APK java.lang.SecurityException appear abnormal solution "," Launcher in the dynamic loading APK java.lang.SecurityException appear abnormal solutions (two) . Part is a reference to the other previous blog. During the Launcher framework is over, and the related code process focuses on the startup Launcher. Through the study of Launcher, a basic understanding of how to use the interface to achieve the layout of the complex interface, also probably know the concrete distribution process of Android touch events, see the specific "Android touch event delivery mechanism and the onInterceptTouchEvent () and onTouchEvent (summary) . Study of Launcher probably continued to cost me more than two weeks time, period there is a function not implemented. Through the dynamic loading of Launcher V1 version of the APK, for the first time in the updated version of the V2, the Launcher can be loaded into the updated new class; but after the update to version V3, v4... After loading, Launcher version have been switching back and forth between in V1, V2. In the analysis of this problem, Android ActivityManagerService, PackageManagerService and other related classes focus on, still did not find the root cause, and later because of other things, the problem of low priority. So far as reasons for the project, also did not spare the further analysis. If there is an expert also dealt with a class of like the problem, hoping to communicate with.

Analysis of Launcher process, my biggest harvest is not on the Android dynamic loading mechanism to understand, but I know that Binder mechanism, and fully studied at. The Binder mechanism to understand, behind me know through Android application development, very helpful, through the understanding of the principles, I also helped other group found the root cause of a network problem. The Binder mechanism is described more thoroughly, can have a look this article: "Android Binder", explain profound theories in simple language mechanism of "Android Binder design and implementation of" Android "- design, inter process communication (IPC) mechanism of Binder are briefly introduced and study plan . In front of the two from the principle of level analysis more thoroughly, third from the code in Binder system is analyzed. Android application development is relatively simple, but in fact Android lower stem N many things, a simple Activity finally displayed on the screen, the N service for the Activity service. Activity and these service interaction, are based on the Binder mechanism, if you don't know Binder, you can't go further down the learning. What is the Binder, to achieve high performance is the inter process communication. I learn Binder mechanism, The ANDROID framework This book basically read again, Matsuo Aki is a minute, "The seventh chapter of Android Binder IPC "this part read 3 times, Android explain profound theories in simple language Binder "," Android system design and implementation of Binder - Design "in just contact Binder and a basic understanding of Binder respectively, read it again, Old Binder that few articles almost read two articles, In reading the article at the same time, I day some Binder related code two, The Binder driven code I - a small part.

Don't know Binder, also does not affect the Android application development, but if you want to go further in the Android, recommendations or to understand Binder.

The Binder mechanism, I further study of the AndroidFramework related content, like ActivityManagerService, WindowManagerService, and click on the icon to be displayed to the application of Activity main source in the whole process of the screen analysis.

The Blog continued to write, I have to finish it, found that only wrote half, part of the remaining time to fill.

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download

Posted by Melody at December 16, 2013 - 2:53 PM