I don't know much about Ionic or other HTML5 Hybrid Mobile App Frameworks. I'd like to learn more. They seem promising, though I think a native app is always going to have the advantage of being able to take better advantage or the resources available from the operating system. I think it just depends on whether that's important to your app or not.
My book is an introductory book that should teach you all of the basics for developing an Android apps including how to work with activities, fragments, services, adapters, intents, notifications, broadcast receivers, SQLite databases, content providers, and app widgets. I think these are core concepts that all Android developers need to understand. After you learn these concepts, you might want to get a more advanced book to learn other skills that build on these concepts.