The latest Android and Google Play news for app and game developers.
Posted by Hoi Lam, Developer Advocate
Rushing onto a train, entering a concert, or simply ordering a coffee, we have all seen users (or ourselves) rummaging through their wallets or mobile app trying to get the right boarding pass, ticket or loyalty card. With Android Wear and a few lines of code in your mobile app, this can all work like magic.
While QR Code images could be attached to a notification since the first release of the Android Wear platform, developers have asked about two situations which they would like to see improve:
With the latest support library, we have added two additional methods to WearableExtender to give developers more control over how background images are displayed in notifications. These new APIs can be used in a number of scenarios, we will focus on the QR code use case in this post:
(false)// this is the Default
We have experimented with a number of customization options with QR codes and here are some of the lessons learnt:
Using QR codes on Android Wear is a very delightful experience. The information that the user needs is right on their wrist at the right time in the right place. With the new APIs, you can now unlock more doors than ever before and give users an easier time with check in on the go.
Sample code can be downloaded from this repository.
Posted by Russell Ketchum, Lead Product Manager, Google Analytics for Mobile Apps
Knowing how your customers use your app is the foundation to keeping them happy and engaged. It’s important to track downloads and user ratings, but the key to building a successful business is using data to dive deeper into understanding the full acquisition funnel and what makes users stick around.
Google Analytics is the easiest way to understand more about what your users are doing inside your app on Google Play, while also simultaneously tracking your users across the web and other mobile platforms. To show how Google Analytics can help, we've created a new "Analyze" section on the Android Developers website for you to check out. We provide guidance on how to design a measurement plan and implement effective in-app analytics – and take advantage of features only available between Google Play and Google Analytics.
Google Analytics for mobile apps provides a comprehensive view into your app’s full user lifecycle, including user acquisition, composition, in app behavior, and key conversions. Our Analytics Academy course on mobile app analytics is also a great resource to learn the fundamentals.
Eltsoft LLC, a foreign language learning and education app developer for Android, recognized early on how impactful Google Analytics would have on the company's ability to quickly improve on its apps and meet user needs.
Analytics has really helped us to track the effectiveness of the changes to our app. I would say six months ago, that our success was a mystery. The data said we were doing well, but the whys were not clear. Therefore, we couldn’t replicate or push forward. But today, we understand what’s happening and can project our future success. We have not only the data, but can control certain variables allowing us to understand that data. - Jason Byrne, Eltsoft LLC
Here are some powerful tips to make the most of Google Analytics:
By measuring your app performance on a granular level, you will be able to make better decisions for your business. Successful developers build their measurement plan at the same time as building their app in order to set goals and track progress against key success metrics, but it’s never too late to start.
Choose the implementation that works best for your app to get started with Google Analytics today and find out more about what you can do in the new “Analyze” section of developers.android.com.
Posted by Shanee
Nishry, Developer Advocate
As you may know, high resolution textures contribute to better graphics and a
more impressive game experience. Adaptive Scalable Texture Compression (ASTC)
helps solve many of the challenges involved including reducing memory
footprint and loading time and even increase performance and battery life.
If you have a lot of textures, you are probably already compressing them.
Unfortunately, not all compression algorithms are made equal. PNG, JPG and
other common formats are not GPU friendly. Some of the highest-quality
algorithms today are proprietary and limited to certain GPUs. Until recently,
the only broadly supported GPU accelerated formats were relatively primitive
and produced poor results.
With the introduction of ASTC, a new compression technique invented by ARM
and standardized by the Khronos group, we expect to see dramatic changes for
the better. ASTC promises to be both high quality and broadly supported by
future Android devices. But until devices with ASTC support become widely
available, it’s important to understand the variety of legacy formats that
We will examine preferable compression formats which are supported on the GPU
to help you reduce .apk size and loading times of your game.
Popular compressed formats include PNG and JPG, which can’t be decoded
directly by the GPU. As a consequence, they need to be decompressed before
copying them to the GPU memory. Decompressing the textures takes time and
leads to increased loading times.
A better option is to use hardware accelerated formats. These formats are
lossy but have the advantage of being designed for the GPU.
This means they do not need to be decompressed before being copied and result
in decreased loading times for the player and may even lead to increased
performance due to hardware optimizations.
Hardware accelerated formats have many benefits. As mentioned before, they
help improve loading times and the runtime memory footprint.
Additionally, these formats help improve performance, battery life and reduce
heating of the device, requiring less bandwidth while also consuming less
There are two categories of hardware accelerated formats, standard and
proprietary. This table shows the standard formats:
As you can see, with higher OpenGL support you gain access to better formats.
There are proprietary formats to replace ETC1, delivering higher quality and
alpha channel support. These are shown in the following table:
That’s a lot of formats, revealing a different problem. How do you choose
which format to use?
To best support all devices you need to create multiple apks using different
texture formats. The Google Play developer console allows you to add multiple
apks and will deliver the right one to the user based on their device. For
more information check
When a device only supports OpenGL ES 2.0 it is recommended to use a
proprietary format to get the best results possible, this means making an apk
for each hardware.
On devices with access to OpenGL ES 3.0 you can use ETC2. The
GL_COMPRESSED_RGBA8_ETC2_EAC format is an improved version of ETC1
with added alpha support.
The best case is when the device supports the Android Extension Pack. Then
you should use the ASTC format which has better quality and is more efficient
than the other formats.
The Android Extension Pack has ASTC as a standard format, removing the need
to have different formats for different devices.
In addition to being supported on modern hardware, ASTC also offers improved
quality over other GPU formats by having full alpha support and better
ASTC is a block based texture compression algorithm developed by ARM. It offers multiple block footprints and
bitrate options to lower the size of the final texture. The higher the block
footprint, the smaller the final file but possibly more quality loss.
Note that some images compress better than others. Images with similar
neighboring pixels tend to have better quality compared to images with vastly
different neighboring pixels.
Let’s examine a texture to better understand ASTC:
This bitmap is 1.1MB uncompressed and 299KB when compressed as PNG.
Compressing the Android jellybean jar texture into ASTC through the
Mali GPU Texture Compression Tool yields the following results.
As you can see, the highest quality (4x4) bitrate for ASTC already gains over
PNG in memory size. Unlike PNG, this gain stays even after copying the image
to the GPU.
The tradeoff comes in the detail, so it is important to carefully examine
textures when compressing them to see how much compression is acceptable.
Using hardware accelerated textures in your games will help you reduce the
size of your .apk, runtime memory use as well as loading times.
Improve performance on a wider range of devices by uploading multiple apks
with different GPU texture formats and
declaring the texture type in the AndroidManifest.xml.
If you are aiming for high end devices, make sure to use ASTC which is
included in the Android Extension Pack.