Hardware Acceleration In Android

Updated 29 January 2021

Save

 

Hardware acceleration is the process to use device hardware to speedup drawing operations of android application. In other word, android use hardware acceleration to speed up 2D rendering or fast up the image and video rendering.

It is by default enabled if your Target API level is >=14.  You can also enable and disable it according to requirements. Application can deliver faster and smoother animations if you have enable it.  It directly effects the rendering and scrolling behaviour of views. As all 2D drawing Operation are not supported by hardware acceleration, it might be effect some of your custom views.

Levels to Control Hardware acceleration.


Hardware acceleration can be control at the following levels:

  1.  Application
  2.  Activity
  3. Window
  4. View

Application level :

We can enable hardware acceleration at application level by adding “android : hardwareAccelerated” attribute to application tag.

For Example :

 

Activity Level :

Similarly, we can enable or disable hardware acceleration at Activity level by using same attribute as we are using for application level.

For Example:

 

 

If you are facing issue in any activity by enabling hardware acceleration globally, you disable it only for that activity.

For Example :

 

Window Level :

If you want hardware acceleration window only, then you can done this by using “FLAG_HARDWARE_ACCELERATED” flag.

For Example :

 

Note :

At window level you can only enable the hardware acceleration but currently  you can’t disable it.

 

View Level:

At View Level we can only disable hardware acceleration by setting layer type to software of any view.

For Example :

 

Note:

If you have disabled hardware acceleration in your app then “LAYER_TYPE_HARDWARE” layer type behaves same as “LAYER_TYPE_SOFTWARE”.

Hardware Acceleration Enable / Disable access on different level :


  1. Application :   Here we can enable and disable hardware acceleration.
  2. Activity:    Enable and Disable
  3. Window :   Only enable
  4. View:   Only Disable.

 

Problem Due Hardware Acceleration in some Devices.


A Common crash which you may face if you have enable hardware acceleration in you app and using large image.

 

Sometimes you may face this issue on splash screen when you are using large size of splash screen (ex: 1280*1920 ) on some device like Samsung galaxy s7 or any Hawaii devices.

Solution :

1. Disable hardware acceleration. You can disable Hardware acceleration at any level, but try to disable it only for image splash image(view level)

For Example :

 

 

2. You can also reduce/decrease the size of image.

3. Don’t put your splash image directly into draw-able folder. Put your image into folder according to resolution like.. drawable-xxdpi.

Determine view is hardware accelerated or not :


1.  View.isHardwareAccelerated()  returns true if the View is attached to a hardware accelerated window.

2. Canvas.isHardwareAccelerated()  returns true if the Canvas is hardware accelerated

To get more info please visit developer official site : https://developer.android.com/guide/topics/graphics/hardware-accel

 

Conclusion


In this blog we learn importance of hardware acceleration in android and how it will effects our apps.

 

author
. . .

Leave a Comment

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


Be the first to comment.

Start a Project


    Message Sent!

    If you have more details or questions, you can reply to the received confirmation email.

    Back to Home