With 2.5 billion active monthly installations, Android is the most popular operating system for mobile devices. And with such a large number of installations, the app development activity is a fun, challenging, and profitable opportunity. It is necessary to have knowledge of Java programming and familiarity with XML to develop Android applications.
Before going into details of how an app is made, let's make a first general overview of the app world.
Android apps can be purchased/downloaded from the Google Play store (or from Amazon for Fire devices). Apps are usually available for different devices: tablets, smartphones, supported Chrome OS devices, Android TV, Android Auto, and Android Wear. The Android operating system versions (starting from 1.5 Cupcake) have been officially named with names of desserts in alphabetical order but the latest version doesn’t have dessert name:
- Ice Cream Sandwich
- jelly bean
- Android 10
When creating an app for Android, pay attention to the version of the SDK with which it is created and then on which version can be installed.
Developing an app for Android requires some basic steps. First of all, you need to create a project, a sort of container with the app's files, resources, and settings. The basic components of a project are the following:
1. The settings. They define how the app works, what is needed for the project, how it will appear in Google Play, the version number, the app icon, etc.
2. The resources. For example, a sound effect for notification or action of the app is associated with an audio file, which is a resource of the project.
3. The layout. It is the set of screens, each with its own buttons, text boxes, scrolling areas, and menus.
4. The behavior. What the app must do and how it should do it is described in the source code written by the programmer, compiled, converted into native code to be executed on the device.
5. The SDK. It is the component provided to allow the app to be run on the Android device, access operating system resources, display graphics on the screen, etc.
All these elements in a project are used to assemble the application that can then be run on your device, but you must also allow others to download it, sending it to Google Play. Google analyzes the app (to make sure it doesn't do anything illegal) and makes it available on Google Play. If the app is the subject of updates (for example, new features are added, or bugs are fixed), one or more project components must be modified, the app reassembled, and uploaded to Google to update the version in the Store.
This is, in a nutshell, the normal process for developing an app, and therefore the basic procedure that will be performed when creating an app for Android.
The tools for developing apps for Android
The development of an app for Android requires the use of some tools. The main one is an IDE (Integrated Development Environment), like Android Studio.
Android Studio is completely free and allows you to create applications for mobile phones, tablets, supported Chrome OS devices, TVs, and ware with the Android operating system.
Another useful tool is Adobe Creative Cloud, a collection of software and cloud services for photography, graphic design, video editing, content creation for the web, and other creative applications developed and distributed by Adobe Systems. Adobe Creative Cloud uses a Saas license (Software as a Service), so the end-user purchases monthly or annual subscriptions that allow him/her to download and take advantage of the latest versions of the collection software. Programs included in Adobe Creative Cloud, such as Photoshop or Illustrator, are important for creating app icons, graphics, and other design resources used in the app.
Finally, you'll need hardware devices to test the app, rather than using the emulators that are part of Android Studio. An emulator runs a virtual version of Android for different devices. Emulators are very useful for testing basic functions, but you always need to have real hardware for an actual test.
The framework for Android development
Android was designed around a Linux-type kernel optimized for mobile devices, so it works well on devices that have limited CPU and memory capabilities. Above the kernel are the Android runtime and a set of libraries (libc, WebKit, SQLite, SSL, FreeType, Media Framework, SGL, OpenGL, Surface Manager, etc.).
The Linux kernel
The Linux kernel (chosen for reasons of portability, security, and the high number of features) contains a set of drivers for audio, camera, display, keyboard, flash memory management, power, Wi-Fi, and so on. Device manufacturers (like Samsung, Asus, HTC, LG, Huawei, etc.) take care of customizing the drivers and making them works for their devices.
The Android runtime
The Android runtime includes a collection of main libraries and the virtual machine. Until Android 4.4, a virtual machine called Dalvik was used. Starting from Android 5, the Dalvik VM has been replaced by a new virtual machine called ART, which uses ahead-of-time compilation compared to the just-in-time model used in Dalvik. The apps are compiled into machine code at the moment installation or the first time you open the app, rather than waiting for features to be used for the first time. As a result, apps run a little faster with ART, other things being equal.
And as we said earlier, there are now two compiler chains, the Legacy compiler and the Jack compiler, which was introduced in Android 7. The compiler looks at your code and also works with a bunch of libraries provided within the Android SDK. These libraries handle all kinds of features, including graphics, databases, encryption, typefaces, and so on. They work at the same level as the base runtime software stack, but they are expandable so device manufacturers can add their own libraries at this level.
Above the Linux kernel level, there are native libraries like WebKit, OpenGL, FreeType, SQLite, Media, C runtime library (libc), etc. The WebKit library provides browser support; the SQLite library provides database support, the FreeType library provides font support, the Media library for audio and video playback and recording, and so on.
The application framework
The application framework has modules for controlling all the components of the app, such as activities notifications, resources, phone management, and more.
Finally, on the last level, there are the apps. Every version of Android provided by Google has been distributed with several predefined apps, such as Gmail, Hangouts, Google Maps, and so on. A device that does not have Google licenses (such as an Amazon Fire tablet) will have a different set of predefined applications. All Android versions have a home screen, a browser, contact management and a calendar, phone, and camera management.
Dec 18, 2019