Home Tutorials Training Consulting Products Books Company Donate Contact us









NOW Hiring

Quick links

Share

This tutorial describes how to use (and how to avoid the usage) of the Android support library.

1. Using the support libraries from Google

1.1. What are the support libraries

The Android Support Library package is a set of code libraries that provide backward-compatible versions of Android framework APIs. They also provide features and widgets that are only available through the library APIs. Each support library is backward-compatible to a specific Android API level.

In general you find two types of support libraries. The first type provides framework functionality for older API releases, the second type provides new functionality for all devices. This functionality is either net yet part of the platform or will never be part of the platform, so that Google can continue to improve it faster than Android platform API.

1.2. Install support library

The support library allows you to use additional functionality. This functionality might be provided by higher Android API levels. It also provides functionality that is unbundled from Android, for example the RecyclerView widget for efficient list display.

Android provides several versions of the support libraries. These are valid as of the respective API level of Android. For example, the support library v7 works as of Android devices with version API 7. Higher versions of the support library require also the lower versions to work. For example, support the v7 library requires the v4 library.

1.3. The support libraries from Google

You have different components here. At the time of this writing you have:

Table 1. Support library versions
Support Library Description Gradle dependency

v4 Support Library

Designed for Android 1.6 (API level 4) or higher. Includes lots of things including support for Fragments and the Loader framework.

Located in the android-sdk/extras/android/support/v7/appcompat/ directory.

v7 Support Libraries

Set of libraries which require Android 2.1 (API level 7) and higher. Requires also the v4 Support library.

v7 appcompat library

Adds support for the Action Bar. Includes also support for material design user interface.

Located in the android-sdk/extras/android/support/v7/appcompat/

v7 cardview library

Adds support for the CardView widget.

android-sdk/extras/android/support/v7/cardview/

v7 recyclerview library

Adds support for the RecyclerView widget.

compile "com.android.support:recyclerview-v7:24.0.0"

Design library to support material design

Adds support for material design applications

compile 'com.android.support:design:24.0.0'

To see a complete list of the available libraries see http://developer.android.com/tools/support-library/features.html.

2. Remove usage of the support library from a new project

2.1. Why would you remove the support library?

Support libraries are changing very fast therefore it is hard to create a "stable" description how to use them. Also unfortunately the templates of Android studio for generating Android projects are changing all the time. This make testing a new feature or standard API harder. It also makes it harder to follow a tutorial.

2.2. Converting a project to a standard Android project

The build dependency in the Gradle build file does not hurt but you need to remove the references to the compatibility library from your code and your resources.

For this, change the code of the generated activity to extend Activity instead of any other activity like AppCompatActivity. Also, reduces the example code to the minimum. The following is an example for an activity called MainActivity.

package com.vogella.android.myapplicationsdf;

import android.app.Activity;
import android.os.Bundle;

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
}

Also ensures that only standard elements are using the generated layout file. The following is an example listing for a simple standard layout file.

Changing the styles file
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    >

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Hello World!" />
</RelativeLayout>

Also ensure that the theme is a default theme, instead of the compatibility theme. For this check the app/res/values/styles.xml folder to use the standard material theme.

Changing the styles file
<resources>

    <!-- Base application theme. -->
    <style name="AppTheme" parent="android:Theme.Material.Light.DarkActionBar">
        <!-- Customize your theme here. -->
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
    </style>

</resources>

3. About this website

4. Android ActionBar Resources

4.1. vogella GmbH training and consulting support

TRAINING SERVICE & SUPPORT

The vogella company provides comprehensive training and education services from experts in the areas of Eclipse RCP, Android, Git, Java, Gradle and Spring. We offer both public and inhouse training. Whichever course you decide to take, you are guaranteed to experience what many before you refer to as “The best IT class I have ever attended”.

The vogella company offers expert consulting services, development support and coaching. Our customers range from Fortune 100 corporations to individual developers.

Copyright © 2012-2016 vogella GmbH. Free use of the software examples is granted under the terms of the EPL License. This tutorial is published under the Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Germany license.

See Licence.