Advanced Android Development
Because we wish to stay cutting-edge when it comes to developing low-cost, custom-made, state-of-the-art Android apps for our customers, we make sure that we follow the ‘Advanced Android Development' sessions created by the Android development training team at Google so we know the most secure and robust way to add the very latest, advanced features to our Android apps.
The Advanced Android Development instructor-led courses are aimed at experienced Android app developers like us who wish to keep abreast of advanced Android programming concepts from the people who have created and maintain the Android operating system.
The Advanced Android Development courses are broadly broken down into extending Android apps to improve user experience, using tools to identify performance issues to make our custom-made Android apps run faster and more efficiently, localising our apps for other languages and making them accessible to users with disabilities, detecting and using the device location and creating advanced graphics and custom views.
Extending Android apps to improve user experience
This tells our Android app developers how to use fragments, widgets, and sensors to improve the user experience.
Using fragments allows us to create a master/detail layout for our bespoke Android apps which means we can keep a consistent look and feel to each screen of the app without having to replicate code. The less coding, the less development and testing time and hence we can charge you a lower the price for the development of your custom-made Android app.
The small app views that appear on the Android home screen are called app widgets; these can be made both interactive and able to update requests.
Because the Android operating system supports the following range of sensors, it is important that our experienced Android app developers know the best way (without draining the battery) to obtain and use data from these sensors in the bespoke Android apps we develop for you.
These sensors (e.g. accelerometers, gravity sensors, gyroscopes, and rotational vector sensors) measure acceleration forces and rotational forces along three axes.
These sensors (e.g. barometers, photometers, and thermometers) measure environmental parameters like air pressure/ temperature, lighting and humidity.
These sensors (e.g. orientation sensors and magnetometers) measure the physical position of a device. This category includes orientation sensors and magnetometers.
Not every Android phone or tablet has all of these sensors; most will have a magnetometer and an accelerometer, however, very few will have a barometers or thermometer.
The Android platform allows us determine at runtime which sensors are present on a device as well as their capabilities (e.g. maximum range, resolution, power requirements, etc.) so we can make sure the bespoke Android apps we develop for you can utilise or gracefully ignore functionality reliant on certain sensors.
Making the Android apps we develop run faster
This is where we work with the latest tools to identify possible performance issues in our apps (e.g. using too much battery, calling cloud servers too frequently, not compressing data) because the performance of the bespoke Android apps we develop for you is very important to us.
One of these tools is the excellent Android Profiler which comes with the Android app development IDE we use, Android Studio. The Android Profiler tools give our Android app developers real-time data so we can see how the custom-made Android apps we develop use CPU, memory, network, and battery resources.
Inspect CPU activity with CPU Profiler
Optimising an app’s CPU allows us to give users a faster and smoother user experience whilst saving battery life. We can inspect the bespoke Android app's CPU usage and thread activity in real time whilst we are using the app. This allows our Android app development team to make sure the app we have coded is not invoking resource-heavy tasks too often.
View memory allocations with Memory Profiler
The Memory Profiler helps our Android app developers identify any memory leaks that could lead to screen freezes or app crashes. The way the Android operating system works with memory is that it automatically pauses some app processes when it needs to fee up memory and if our app allocates memory faster than the system can collect it, the app might be delayed while the collector frees enough memory to satisfy the allocations which could cause the app to skip frames or become slow to respond. Even if our app isn't running slowly, however, it is invisibly leaking memory our app could retain that memory even while it's in the background, thereby slowing the rest of the system's memory performance. Hence the importance of managing memory use in the custom-made Android apps we develop for you.
Inspect network traffic with Network Profiler
The Network Profiler displays real-time network activity (data sent and received) as well as the current number of connections. This lets us check how our Android apps transfer data and optimise our coding accordingly. This is very important because every time our bespoke Android apps sync data with say a cloud server, the smartphone or tablet has to use either mobile or WiFi radios to send and receive data packets and this leads to battery drain because these radios use battery power to both transfer data but also to turn on and keep awake. Where possible we will try to batch any network requests (e.g. syncing data with the cloud) to reduce the number of times the radios must turn on to send or receive data (thereby allowing the radios to go into low-power mode and save battery in those gaps between batched requests).
Inspect energy use with Energy Profiler
The Energy Profiler helps us determine if the custom-made Android app we have developed for you is using more energy than necessary by using a model that estimates the energy consumption for each resource on the device (e.g. CPU, GPS sensor, alarms, wake locks, etc.).