I am not talking about the documentation but the actual framework code. I have seen many developers who were afraid to dive deep into the Android framework internals. Don't be one of them. It's amazing how much you can discover when you see how things actually work and how the different pieces fit together properly. If you need to up your Android game, stop shying away from the inner workings of the Android SDK and start befriending it.
Android is big, very big. You cannot learn it completely end to end in a month or three. And the more you learn, the more you will understand how much you don't know. As a beginner, it’s perfectly normal to be afraid that you're missing out on learning crucial information by trying to build things while still in a state of great ignorance, but try to get over it. Learn the things that you really need to get started with the app you are currently working on and then slowly expand your horizon.
Most developers don’t take time to read what other developers are writing. And they spend most of their time writing what they already know. But that will not help you grow as a complete Android developer. The only way to truly become a better developer is to read the excellent code of more experienced developers. You should start looking at other open-source apps and libraries, where you'll discover a lot of coding techniques and feature implementations that you had no idea about before. Tip: Here is an excellent resource of some of the best open-source apps to help you get started.
I can’t stress enough how important this can be in your Android development career. Whenever you are stuck in trying to solve a critical programming problem, design patterns can be a lifesaver. You also need to be on the same page with other developers, so that when they are talking about using a Factory, Decorator, or Facade pattern, you instantly know what they mean. Make a promise to yourself to learn one new design pattern every week until you know most of them. Tip: Here is a great resource for you to get started with Java design patterns. If you want even more detail, give this book a read for sure.
If you have developed a library, plugin, or other useful piece of code and you're using it in your own app, consider open-sourcing it. There's much to learn in the process of contributing to open-source projects or maintaining your own. It's an excellent crash course in open-source development that will exponentially increase your value as a developer. If you don’t have anything to open-source, consider checking out other open-source projects that interest you, and fix some bugs, improve the documentation, or write a few tests there. Even the smallest bit of contribution (such as fixing some grammatical errors in the docs) will be helpful for the project maintainer to keep the project running. Tip: Here is an awesome guide for you to get started in open-source development.
Start spending more time in understanding the IDE you are using: Android Studio. It can do much more than you probably think it can. There are many cool features and shortcuts hidden in the IDE that most developers don’t even try to discover. Make it a habit to discover new and better ways of making your tools work for you, thereby improving your workflow and productivity. Tip: Here is an amazing article to help you master Android Studio.
Most of the time we end up dumping all our code in the Activities or Fragments (I've committed this sin as well), turning them into gigantic God objects that are nearly impossible to maintain and test. It is very important to adopt a good architecture for your app, such as MVP or MVVM. Separate your app’s business logic, view interactions, and data interactions into different layers so that they're easy to manage and test. Tip: Check out these useful blueprints from Google to make your life easier with Android app architecture designs.
You can’t ignore this either, because it's really difficult to maintain the standard coding guidelines of Android development when working with developers who don’t write clean code. It’s not rocket science, and it shouldn't take you more than a few hours to learn most of the fundamental Android coding guidelines. Tip: Here is an excellent resource for you to start learning.
To give yourself an edge over other developers and build apps that look good and work well, you need to start learning some of the best practices of Android development. Learn the dos and don’ts that will help you become a better developer and help your app stand out from the rest. Tip: Here is a compilation of some of the best practices for you to make better apps.