Android Foundation Notes 1


I have been an Android developer for 3 years. I entered Android world since when previous Android developer quit her job, and there is no one in the company have time to take over. I was a contractor at that time and who only have time to carry on.

Before start my Android journey, I haven’t written a single line of Java code. The most close skill I had related to Java is Javascript. And I using iPhone and Mac as my tools of life and work.

I managed to get everything in track. I have deployed two enterprise app to the public for my company and clients till now. I now familiar with the tools I use, the code I wrote and know some tricks about Android world.

But I have to admit that most of my skills and knowledge came from pure practice. I searching Internet, ask questions on StackOverflow, join online forums and discussion group, try everything I could to solve the problem I have encountered. By fixing one bug after another, I grow up.

I never have a chance to do a complete and in depth study and research about Android. I mean by go over most of its documentation and do some researching on the source code, and also some famous open source libs.

My last app for the company has been released to public last month, and I have a chance to use Android L and completed redesign the structure and code. Which let me learn a lot of stuff during this half year release cycle. Now I have some free time, and I think it is a good chance to do some foundation job, to go over Android world from beginning, from very basic to advance, bit by bit, doc by doc, and code by code.

This series of article is code I made during the journey. I know it will help me become a better developer, and I hope it will also help you.

Let’s start.


I get myself several resources for this learning path. Most are Google’s official documents. Will cover some good practice from other developers too.

For the tools, I’m using Android Studio. Please forget Eclipse.

I will use Google Official Android Developer site as my main learning resources for these articles. It’s here:

The site categories Android development into 3 section: Design, Develop and Distribute.


One thing I dislike Android, is that Google constantly changing their design guide. At beginning, there is ActivityGroup so a lot of developer using page viewer to achieve Tab like interface. And than Action Bar took place and Tab was not been recommended anymore. Then Android L drop Action Bar, replace it with Tool Bar, and introduce Material Design. Which I have to say much better than before. And now Android M is about to coming, have no idea what will change again.
In my situation, I don’t have to care about design too much. Since the management team make the final decision. And as many other Android developer, the one thing I heard most is “Make it looks like iphone!”.
I use my iPhone for my personal life, and Android as my working device. From my point of view, before Android M, talking about design and user experience iPhone is way better than any Android devices.
But Android L and Material Design do changed things a lot. A good designed Android app, which follows Google’s design guide, and carefully arrange its navigation detail, with good use of animation provided by OS, is very attractive and joyful to use.
From Android L, Google has found its own way to let app looks better and easy to use. And it doesn’t like Ios at all. Both company make their own effort to let the mobile world looks better. But unfortunately, they are completely different. Asking Android app looks and behave like Ios is a very bad idea since they are rooted in different land. Force to do so will not only waste of money, but also cause a lot of trouble in future.
I won’t too detail into design world since that is not my expertise. For me, as a developer, I do need some tools and resources to help build better app, here is a list of some resources I found very useful to me.

Resources List

Google has build a very beautiful website to show off its design guild for Material Design. Start here:
Also, I found there is a articles section, the papers there are all very helpful.
When you needs some Icons, you can come here and take a look:
A general list of size for most popular Android devices:
If you need some color combination ideas, here is a place to go:
Super handy tool for generating image resources for android app. Save me at least 1000 hours!


I will focus mostly on this section in the future article. In google’s site, it includes:
Training: mostly for practice work, basic concept and not in depth about how the OS work. I will start here.
API Guides: More detail explanation about how the Android works, most of learning will be here.
Reference: API documents, as it says, references. I may take some important document to do deep learning.
Tools: Good Resources about how to let your work easier. Will take a look.
Google Services: This part is interesting. It introduce some google services you can intergrated into your app, such like Analytics, which I am doing it right now. Maps, Sign in, Cloud and so on.
Samples: Some example provided by google, very handy.
Preview: Next generation of Android.


This section include some very nice guide by how to make a high quality app. In my opinion these contents should be learned before start developing app, not after. I will cover part of these content when they are needed.


So that all basic ideas and plans for this note serise. Again, this is my personal learning notes and I can’t guarantee that all the stuff I wrote are correct and best practice. Android is a large concept and needs a lot of practice to be mastered. These articles are means to build a solid foundation for the future work.

Leave a Reply

Your email address will not be published. Required fields are marked *