With the advance of mobile technology, many people have become interested in Android development. If you're thinking of developing Android apps but are unsure where to start, that's understandable. The platform actually involves a range of technologies, so developing applications for it does require a varied skill set. However, if you have development experience of some kind, for example Web development, you can definitely pick these skills up. In this article we'll go over the technologies involved in Android development, explaining what tasks each language is used to accomplish as well as the overall development models and contexts.
Java
Java is the main programming language involved in developing Android apps. With Java, you define the logic of your applications, including handling user interaction. If you have no Java experience, but have other programming experience in a language such as PHP or even JavaScript, you should be able to learn. However, the first step in approaching Android development without Java experience should be to learn the basics of the language. Java is a strongly typed language, so programming in it may seem fundamentally different if you have only used weakly typed languages in the past.
Object Oriented Development
When you program in Java you use Object Oriented development. If you have done some Web development in the past you may be familiar with this. If not, you will need to learn the basic principles involved in it. Essentially, Object Oriented applications divide tasks between a group of objects. When you program your apps, you create a series of class declarations for object types. Each declaration defines the properties and behaviour that objects of the class will provide. Once you have a class declaration in your Android project, you can create objects of the class to carry out your application processes.
Inheritance
One of the main principles of Object Oriented development that you will need to learn in order to build Android applications is inheritance. With inheritance, you can re-use the functionality of an existing class by extending it, or inheriting from it. This includes your own classes as well as classes within the Java and Android platforms. All Android apps involve extending at least one of the Android classes. Don't worry if this seems intimidating, as it actually saves you a lot of work. By inheriting the Android and Java classes, your own application code does not have to handle the details of, for example, presenting a user interface screen to your users.
XML
The other main language involved in Android development is XML. XML models various aspects of Android applications, including data and the different elements within a user interface. One of the first things you will do with XML in Android is design the layout of your app interface. Many of the development tools for Android, particularly the Eclipse IDE (Integrated Development Environment), provide automated tools for generating and editing the XML for your projects through graphical interfaces. While some of these are useful, you will need some level of XML knowledge to create apps successfully.
Data
Android applications can use data loaded from within the app directory structure itself as well as data loaded from elsewhere on the user's device, such as the SD card, or over the Internet. The Resources directory within an Android app contains XML files with data items in it. You can additionally use data management technologies such as SQL, especially SQLite, to create databases for your apps. The Java language also provides resources for fetching data over the Web, including XML and relational database systems.
Developing
To develop Android apps, you need to download and install various resources. The official Android developer guide recommends Eclipse for developing and exporting your apps. You will also need to install the Android SDK (Software Development Kit) and ADT (Android Developer Tools). Using these resources, you can design and build Android apps on your computer as well as running them on virtual devices, or Android emulators. The Eclipse tools also provide extensive debugging utilities.
Releasing
To release an Android app through the official Android Market, now the Google Play Store, which is the main app store for distributing applications on the platform, you need to sign up for a developer account. You can export your apps through Eclipse, signing them with a secure key. In order to upload your apps for distribution through the Market/ Google Play, you must also version them correctly using your application Manifest file. The publishing process also allows you to choose whether your apps will be free to download, or available for a set fee if your project is commercial.
Links
Android Developer Guide
Android Things Blog
Developing Android Widgets | The Tech Interpreter
What Are Android APK Files? | The Tech Interpreter
Android Widget Development | The Tech Interpreter