You are on page 1of 8

Android Development

Individual study on mobile development for Android

Author: Robert Ontiu

University College Nordjylland

Starting to learn Android development has been a good choice for me for two main reasons: It brings a new. as a software development environment has grown exponentially for the past years and it brings a new market in the area. products designed to be marketed only) Description During the time spent on learning the topic I have focused my attention on understanding the concepts of Android. instead. I personally believe that Android. The purpose of the process is not to create a final. working product but. both abstract and concrete. offering amazing opportunities for software developers to easily create and deploy their products. To start with. on the other hand. 1 . Some of the information I’ve researched has not been new to me while. to try different approaches on the subject and experiment with the amazing functionalities the system provides. I’ve encountered some interesting concept s which were a bit trickier to understand.Android Development  Android Development Individual study on mobile development for Android Introduction This report intends to present and evidentiate the process of learning the basic concepts on developing Android applications as well as the problems encountered on the way.g. as well as learning the core libraries the system provides while implementing some of them in experimental applications. ongrowing market for software developers eager to affirm and express their ideas and knowledge The fact that Android itself is an open-source product perfectly suits my beliefs that a product design by “people” offers a better experience than any other product designed by corporations (e.

While on the design phase the system provides tons of components that are just to be added and bind to the application. Therefore. One of the important aspects that caught my attention is that the system itself (Android) is user-centric (more details are to be found here: http://developer. The most similar approach I’ve encountered before is the .android. the Android is built on top of a Java Runtime Library (JRE). While I was very familiar to Java.Android Development  Learning outcome To start with. when you are designing an application. Some of the principles I remarked from this list are: Use “real objects” (visual entities that can be manipulated by the user) Get to know the user (use previous actions to simplify tasks) Take advantage of the visual standards to make the UI look familiar The architecture of the system is also something new to me and I personally appreciate and enjoy the way the system is implemented. Android implements rigorous standards for both designing and coding your application. the development phase has to follow structure standards and other abstract concepts in order to work properly. you have to think about the permissions you would like to acquire and create a contract to be sent to the end user.NET development environment which I think. the harder aspects of learning became the understanding of Android libraries as well as the concepts of structuring the application.html).com/design/get-started/principles. each application represents a user of the system which is assigned permissions (through contracts) by the superuser (which is ultimately the person operating the system). In Android. Learning outcome  2 . implements even more rigorous standards. Abstract concepts In contrast to other development environments I have studied before.

Structural concepts An Android application in the development state is split into three major. each.) to images and layouts (views) The entities definition – defined in Java (classes extending the core entities mentioned before) Learning outcome  3 . providing an user interface and becoming inactive when they are closed or lose focus (minimized) Services similar to Processes in Windows or Demons in Linux do not provide an user interface and run in the background Content providers similar to Streams from . parts: The Manifest (AndroidManifest. from any other application within the system. from within the application itself or. integers etc. conceptual. with proper permissions. The system provides the developer with only four types of functional entities (or access points): Activities which are applications ran in fullscreen mode.xml) – is the file which defines the application.Android Development  Fundamental concepts In opposition to other architectures. they also feel as flexible as the system itself. I can think of these “access points” as separate entities running individually and providing. describing all entities it has available for internal and external run The resources – which vary from constant variables (strings. however. a different functionality.NET – are used to read and write content to internal storage or databases Broadcast receivers are entities that listen to system events and take actions accordingly At a first glance a was a bit let down by the feeling that such a flexible system would impose such rigorous standards. applications running on Android have more than a single access point (depending on the nature of the project). after a peak into development a believe that they perfectly suits the principles and desired functionalities of the system and even more. They can be ran both.

Although in some development environments creating the UI can be easy. can only be learn through more experimental work rather than reading the documentation. An activity (which ultimately takes the meaning of the UI) is constructed from two parts: An XML defined layout using the Android XML Schema A Java entity (Class) which scope is to manipulate the layout. activities are individual entities that are ran in the foreground and provide a user interface.Android Development  Experimental development Before I even started the study on Android I had an idea of an application inspired by some of my dayto-day troubles: waking up from a hard sleep. instead. Experimental development  4 . I did not set my focus on developing this application but. Setup an activity As mentioned before. I believe. bind listeners and act accordingly The XML Layout Android XML Schema provides the developer with tons of objects and components that. in the Android SDK this part is a bit trickier than expected. The application would be called “Annoying Alarm Clock” and it should provide a basic alarm clock that cannot be turned off unless you activate some of the sensors or hardware like: Microphone – Scream loudly at your phone to make it stop Accelerometer – Shake your phone hard enough to make it stop GPS – Take your phone for a long enough walk to make it stop Since the time was short and I wasn’t familiar enough to the environment. I tried to understand and experiment with the libraries and sensors required to develop such kind of application.

and it feels better and better as I go deeper into it. transitions. During the past years I’ve experienced with different programming languages and different frameworks and coding approaches and I really enjoyed the ones that gave you more creative freedom rather than standardizing everything (e. The Android XMLS is similar to .g. 5 . menus. the library it provides is bigger than expected and it encapsulates big handling libraries for quite simple tasks. learn and experiment with simple functionalities such as layouts.NET.Android Development  Working with HTML and CSS for the past years really conflicted when trying to understand the logic in the Android XMLS.NET’s ASP or Adobe’s FLEX which I personally do not enjoy. events etc. the rigorous way it is approached was very confusing. buttons. PHP instead of . I’ve been able to understand. however. HTML and CSS instead of XMLS or Javascript instead of pretty much everything). Although the concepts in Android development are kept quite simple. The entity itself (Java) Being already familiar with Java helped me a bit in understanding the coding logic behind the application.

Android Development  Content Providers (Working with a local database) As mentioned before. Knowing the variables changed by the accelerometer can easily describe when the phone is shaken. moved or rotated. The outcome of this experiment was a ball moving on the screen as the accelerometer variables are changed by phone motion. or databases. local files. In order to work with it and debug it I had to install several drivers and debuggers to be able to connect my Android phone and debug the application directly on the device. 6 . From the main activity (the foreground running entity) you call a content provider just as you would run another application. The entities operate individually and asynchronously from the central activity and can access both. Experimenting with the accelerometer The accelerometer experiment was the one that cost me most of the time. content providers are entities that are run in order to retrieve or write data.

on overall. in the beginning. after all. this knowledge only comes with experience. The fact that an Android device provides much more “things to play with” than I regular PC caught my attention and opened my imagination. seem very confusing and which I’ve managed to work with well. There were concepts or libraries which. I think it is a friendly development environment. Conclusion  7 . however. I believe that developing for these kind of devices is fun and it also has its opportunities to make a serious business out of it. Another solution for the future would be to try out PhoneGap. I think I have fulfilled my goal of getting familiar with the basics and this was done mostly through experiments. I could mention that I had some difficulties understanding some of the features the SDK provides. On the downsides.Android Development  Conclusion During my spell on learning the Android SDK and its concepts I have come to a conclusion that it has its ups and downs but. which is an HTML/CSS/Javascript framework to create portable mobile applications.