What is Android?
Android is the name of the mobile operating system owned by American company, Google. It most commonly comes installed on a variety of smartphones and tablets from a host of manufacturers offering users access to Google’s own services like Search, YouTube, Maps, Gmail and more.
What is an Android App?
An Android app is a software application running on the Android platform. Because the Android platform is built for mobile devices, a typical Android app is designed for a smartphone or a tablet PC running on the Android OS.
Android apps are available in the Google Play Store (formerly known as the Android Market), in the Amazon Appstore and on various Android App-focused sites.
Building Android Apps
There are several tutorials to build Android Apps. The official one you can find here, but there are lots of articles and tutorials out there.
Android apps are written in Java and using the Android SDK. There is also a possibility of writing those applications in C++, with an added performance boost, but also a bigger learning curve.
The Project
This project is a study on building native Android apps using Java. Most of the apps are simple apps, with the purpose of covering only a very specific topic. These are not finalised apps and serve no purpose other than the study of it.
You can find the list of the several apps you can find in this project bellow:
Show full list
- Hello Android: This is an Hello World app, with added functionalities:
- A second screen (Activity) that displays a text message received through an Intent (TextView);
- A text box (EditText) on the first screen;
- A button on the first screen, that will travel to the second screen, sending in the “Intent” the text inserted on the “EditView”;
- A second button on the first screen, that will show a “Toast Message” the text inserted on the “EditView”.
- Layouts: This app allows us to understand the differences between the various layout types (LinearLayout, RelativeLayout and TableLayout), as well as introduce a new type of Activity called TabActivity. This TabActivity will consist of three tabs where each tab has a different layout type.
- Country List: This app aims to introduce the use of lists, preferences and SQLite databases in the Android environment. The components that make up this application are:
- Database – contains code for SQLite database access;
- CountryListActivity – a ListActivity type (contains a ListView);
- CountryListAdapter – a ArrayAdapter type;
- CountryPreferenceActivity – a PreferenceActivity type.
- GeoTracer: The GeoTracer app lets you view the current location of the user on Google Maps using the GPS coordinates of the mobile device.
- DownloadFile: This app allows you to download a file in the background using a Service. This Service will then communicate with the main Activity of the application and a Widget to show the percentage of download that is currently complete.
- TelephonyAPI: App that allows us to make calls, receive a notification when a call is received and send SMS.
- MediaFramework: An app that will use the camera of the device, capturing the image and showing it on the screen. It is also possible to take photos and save them to the memory card of the mobile device. In addition to this functionality, a Custom View (a graphic object created by us) will be created, which will behave like a button.
This component will have a background and will show a text that we want.
Finally, we will use Custom View on a layer above the camera image.
We will create two instances of this View: one will play a song when we click on it, and only stops when we click it again; the other will cause the device to vibrate whenever you press Custom View. - SensorProject: An app that will use two sensors present on most Android devices: the accelerometer and the compass.
- The final app is a Weather app, with a launcher Widget. In it I tried to concentrate all the lessons learned into a final, complete app.
Collapse list
Demo
CountryList
GeoTracer
DownloadFile
TelephonyAPI
MediaFramework
SensorProject
WeatherApp
Please bear in mind that these apps are targeted for older versions of Android and have not been updated since, so a few bugs can occur. There is no support, therefore some of them may not work as intended.
Github
Link for Github Repo