This article deals with everything related to developing applications for Android. Starting from the basic Android architecture and design philosophy to helping you get acquainted with the technical stuff before you can develop your app.Most of us already have an Android device or have at least experienced the Android UI. Android smartphones and tablets are the devices every one now yearns for; so what causes such a frenzy over Android? I believe it is a combination of the power of Android apps and the developer ecosystem. The ease with which developers can develop and implement Android apps and monetize them is phenomenal, and it is the time people interested in this technology learn how to get started with Android app development developers to charge for their apps in Indian rupees, there could not be a better time to learn Android.
Android architectureAndroid is developed on a layered architecture, with libraries and drivers forming the lower abstraction layers, and the framework, applications, etc, forming the top layers. Each layer provides the necessary services to the layers above and below them. This layered architecture ensures that there are no ambiguities, and the app developer has access to all the APIs.
Why learn AndroidAs many of you would already know, Android is an open source, Linux-based OS optimized for use on handheld devices. Although Android started with mobile phones and moved on to tablets, many new consumer electronics devices have been developed based on Android; these include cameras, set-top boxes, and even laptops. Since the devices supporting Android are increasing, so are the opportunities to develop more and more new and innovative apps for them. With Google now allowing requested permissions during the app installation. Besides permissions, the components of the app, the minimum API level required, the hardware and software features used, and the API libraries that the application should be linked with— all these must be declared in the manifest file. An Android app can have four types of components. It is important to understand each component type, and how it is useful, so let’s briefly cover each.
The Android appLet’s cover some basics regarding app development, so you get an idea of how it works and can plan to develop your app. Android apps are developed in Java, so you should be clear about Java and object-oriented programming concepts (if not, at least the concepts of classes and objects should be known). The Eclipse IDE for Android development can easily be downloaded from the Android website. This download includes the ADT (the Android Development Tools) packaged with the IDE. If you already have Eclipse, then you can download only the ADT, and install it as a plug-in for Eclipse. ADT makes sure you have all the latest packages and libraries required for Android apps and the latest Android image for emulation. The Eclipse IDE creates the file organization for your app. After the app is developed, all the code, resources, and everything that is part of your app should be archived together to form a .apk(Android package) file. This is the file that is installed on the Android device. Eclipse does the archiving part also so that you can focus on the app development. During or after app development, the IDE also lets you run your app on a real Android device (if you have any) via a USB connection or a virtual Android device. With this, you can test and debug your app very easily. The manifest file, an XML file, is a major component of an Android app. First, it allows you to declare the permissions the app requires. The user will be prompted with all the
Why learn Android
- Activity: This represents an activity done by the user in your app. For example, in a camera app, the camera viewfinder screen and the image browser screen are separate activities. An activity of your app can be invoked by other apps also if they have the permission, and vice-versa, while the users feel as if the activity is part of the app they are using. Such architecture allows for better code and functional usage.
- Services: These run in the background while the user continues to interact with the app in the foreground. They are used for cases where you need to fetch data, record a sound or play music in the background. As you would have guessed, a service doesn’t provide a user interface; at most, there can be a notification for completion of the service.
- Content provider: This is the component that provides data to the app, i.e., an application can query or modify a database through the content provider. So, when you have proper permissions, you can use the content provider to read or modify the user data.
- Broadcast receivers: The system interacts with the apps via broadcasts, if required. For example, when the battery is low, or the screen gets turned off, the system issues a broadcast to all applications. The broadcast receivers respond to the broadcasts and initiate the corresponding service. Now that we’ve been through the different aspects and the basic information about Android app development, I hope you are excited about getting started on developing a real Android app, which I will begin within the next article. Till then, get ready with ideas for what your app will do!
- Android development