Android Basics – Learn how the APK file Works in Android

Once you have transferred an APK file to your Android device its stored in /data/app/<package-name>

The classes.dex file is extracted from it and it’s converted to native library, when the App is run the first time, and stored in /data/dalvik-cache. This Machine Code can be run by the CPU.

Each Android device runs a process called Zygote. When an App needs to run Zygote creates a forked version of itself. Which means its a process in memory. Using this forked process and by loading the native library the App can be loaded pretty quickly.

Android Basics – Understanding Android Run Time, Dalvik and APK

If you are familiar with the Java Virtual Machine(JVM) then you will know that a JVM works on class files which are comprised of byte code. A class file is a compiled version of the Java code.

When it comes to Android then the Java code is first compiled to a class file which in turn is converted to a file called classes.dex – Dalvik Executable format. This is done by a tool called dx

Like JVM in Android’s case its Dalvik which works on the dex file.

A JVM is stack based processor whereas Dalvik is register based. Both are virtual processors though.

The classes.dex file is then compressed with a bunch of other files, like resource and data files, into a ZIP file called an Application Package or APK

This is the file you will eventually upload to the Google Play Store.

Android Basics – Learn how to handle the user clicks in a RecyclerView

You are familiar with how to respond to user clicks in a ListView using an OnItemClickListener. RecyclerView does not have a similar set of built in functionality so you will have to write some code to handle user clicks.

The code you will add will be in the Adapter’s onBindViewHolder. You will also add an interface, similar to the ay you did for Fragment interaction.

Follow the steps below:

Add a Listener interface to the Adapter.

public static interface Listener{
    public void onClick(int position);

Add a setListener method. This method will be called from the Activity.

public void setListener(Listener listener) {
    mListener = listener;

Add setOnClickListener

cardView.setOnClickListener(new View.OnClickListener(){
    public void onClick(View view){
        if(mListener != null){

In Activity class set the Listener defined in Adapter.

SampleAdapter adapter = new SampleAdapter(inputData);
adapter.setListener(new SampleAdapter.Listener() {
    public void onClick(int position) {
        //Add code here

Source code is available here

Android Basics – Using Layout Manager with Recycler View to arrange Views

The advantage of using a RecyclerView over ListView is that you get the option to arrange how the views display.

You have the option to display views in a linear list, a grid or a staggered grid.

To use the LayoutManager you need to add the following code

LinearLayoutManager manager = new LinearLayoutManager(this);

Source code is available here

Android Basics – Learn how to create Recycler View

So far you have created an Adapter and added a View Holder and also code to onBindViewHolder.

Now it’s time to create a Recycler View which will use this Adapter. It will also pass data to this Adapter.

In order to do this you can create a new Activity, for the purpose of understanding. Let’s call this MaterialActivity. You will call this from the MainActivity on click of a button.

In the layout file for the new Activity you need to add the RecyclerView.


In the Activity class you need to set the Adapter.

public class MaterialActivity extends AppCompatActivity {

    protected void onCreate(Bundle savedInstanceState) {

        String[] inputData = {"Hello Sam", "Hello John", "Hello Riki"};

        RecyclerView recyclerView = (RecyclerView) findViewById(;

        SampleAdapter adapter = new SampleAdapter(inputData);


Source code is available here.

In the next Article we will take this further.

Android Basics – Learn how to use the onBindViewHolder method to bind the data to the View

So far you have created an Adapter for the RecyclerView. You have also added a View Holder.

In order to display data you need to write code to the onBindViewHolder method. This method will map the data to the Card View.

public void onBindViewHolder(ViewHolder holder, int position) {
    CardView cardView = holder.mCardView;
    TextView cardText = (TextView) cardView.findViewById(;

Source code is available here.

Android Basics – Adding a ViewHolder to the RecyclerViewAdapter

When you create a RecyclerView Adapter then you need to create a view holder by extending the RecyclerView.ViewHolder class.

Like the name suggests a ViewHolder is used to hold and display the View. Recycler view maintains a set of these views.

The number of these holders depends on the size of the view.

When the Recycler view is first constructed it builds this set by calling the onCreateViewHolder() method.

public static class ViewHolder extends RecyclerView.ViewHolder{
    CardView mCardView;
    public ViewHolder(View itemView) {
        mCardView = (CardView) itemView;

public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {

    CardView cardView = (CardView) LayoutInflater.from(parent.getContext())

    return new ViewHolder(cardView);

Source Code is available here

Android Basics – Create the basic Adapter for RecyclerView

To create a basic Adapter which can be used by the RecyclerView create a new class and extend RecyclerView.Adapter

Once you do this you need to override the following three methods

  • The getItemCount method is used to return the number of items in the data set.
  • The onCreateViewHolder method is used to create the views.
  • The onBindViewHolder method is used to bind views to data.
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
    return null;

public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {


public int getItemCount() {
    return 0;

Source Code is available here

Android Basics – An introduction to the Recycler View Adapter

Recycler View is an efficient and an advanced version of a List View. It can be used to display a list of Card Views.

This widget is a container for displaying large data sets that can be scrolled very efficiently by maintaining a limited number of views.

Courtesy –

In order to do this it uses an Adapter and a Layout Manager. The Adapter needs to be created by you and should be a sub class of RecyclerView.Adapter

The Adapter is responsible to create and configure the View.

Android Basics – Learn how to create a Card View

The last Article introduced you to Material Design basics. In this Article you will learn how to create a Card View.

Steps to add a CardView

  • Add support libraries – and recyclerview
  • Create a layout xml file for the card view.
  • Refer to the below code snippet
<?xml version="1.0" encoding="utf-8"?>


    <LinearLayout android:layout_width="match_parent"

            android:text="Hello Card View"



Source Code is available here