Proceedings of the Third International Conference on I-SMAC (IoT in Social, Mobile, Analytics and Cloud) (I-SMAC 2019)
IEEE Xplore Part Number:CFP19OSV-ART; ISBN:978-1-7281-4365-1
ANDROID APPLICATION DEVELOPMENT: A
BRIEF OVERVIEW OF ANDROID
PLATFORMS AND EVOLUTION OF
SECURITY SYSTEMS
Anirban Sarkar1 Ayush Goyal1 David Hicks1
Dept. of Electrical Engineering and Dept. of Electrical Engineering and Dept. of Electrical Engineering and
Computer Science Computer Science Computer Science
Texas A&M University – Texas A&M University – Texas A&M University –
Kingsville Kingsville Kingsville
Kingsville, Texas, USA Kingsville, Texas, USA Kingsville, Texas, USA
[Link]@[Link] [Link]@[Link] [Link]@[Link]
Debadrita Sarkar2 Saikat Hazra2
Dept. of Computer Science Dept. of Information Technology
Engineering FIEM
New England College Kolkata, India
Henniker, New Hampshire saikathazra75@[Link]
dbdrtsarkar440@[Link]
Abstract—With the advent of new mobile technologies, the these java codes to control devices like mobile phones,
mobile application industry is advancing rapidly. Consisting of tablets, etc. Android mobile application development
several operating systems like symbian OS, iOS, blackberry, provides a flexible platform for developers where they can
etc., Android OS is recognized as the most widely used, popular use both java IDEs and android java libraries. Nowadays
and user-friendly mobile platform. This open-source linux
Android operating system is an important platform that
kernel-based operating system offers high flexibility due to its
customization properties making it a dominant mobile provides a dynamic way of developing innovative third-party
operating system. Android applications are programmed in java applications. The android operating system gained popularity
language. Google android SDK delivers a special software stack among developers for its customizable nature. It is very
that provides developers an easy platform to develop android efficient to build an application in one platform and deploy it
applications. Moreover, developers can make use of existing in several platforms simultaneously without having a concern
java IDEs which provides flexibility to the developers. Java about changes to be made. Cross-platform proposes several
libraries are predominant in the process of third-party approaches to achieve this objective in efficient and creative
application development. Cross-platform approaches make sure ways. Safety is the main concern of android operating
that developers do not have to develop platform-dependent
devices. It does not allow external applications to change or
applications. With the help of these approaches, an application
can be deployed to several platforms without the need for modify installed files. It allows customization of permissions
changes in coding. However, android is more prone to security which specifies applications to use the hardware and software
vulnerabilities which the majority of the users do not take into resources of the device. Android users have the authority to
account. Any android developer can upload their application on accept or deny permissions of an installed application.
the android market which can cause a security threat to any However, android allows IPC (Inter-Process
android device. These applications do not have to go through Communication) which makes the device vulnerable to
rigorous security checks. In this paper, a layered approach for security threats resulting in piracy. One of the main features
android application development along with various cross- of this operating system is that the architecture is quite the
platform approaches is discussed. Moreover, a brief
same as personal computers. Therefore, security issues can
introduction to new android platforms including security
framework as well as security systems is discussed. be fixed in similar ways. However, both technologies can be
the victim of DoS attacks using resources like bluetooth or
Keywords— Android architecture, Cross-platform approaches, Wi-Fi. Although android applications are highly
Android security. customizable, it also increases the risk of unintentional use of
resources or unintentional installations. Therefore, users need
I. INTRODUCTION
to be aware of such malicious activities which can reduce the
Android is an open-source operating system that runs risks of a security breach.
on the linux kernel. Android applications are developed using
II. ANDROID ARCHITECTURE
the java language. Google has its own SDK which enables
978-1-7281-4365-1/19/$31.00 ©2019 IEEE 73
Proceedings of the Third International Conference on I-SMAC (IoT in Social, Mobile, Analytics and Cloud) (I-SMAC 2019)
IEEE Xplore Part Number:CFP19OSV-ART; ISBN:978-1-7281-4365-1
A. Application Layer
In this layer, the android application components get
executed. End-users can make use of applications that are
compiled and executed using the Dalvik Virtual Machine. IV. LAYERED APPROACH FOR APPLICATION
Developed applications use API libraries to make use of core DEVELOPMENT
resources available in the device. In this layer, default
applications like contacts, messaging are available [1].
B. App Framework Layer
This layer is designed to allow developers getting
access to the core application services. These services can be
named as Active and windows manager, resource and
package manager, etc. In this layer, developers can customize
their applications in order to customize the system structure
of their applications so that they can make use of various
services provided by the API libraries [1].
C. Android Runtime Layer and Linux Kernel
Android runtime layer is primarily focused on the
running state of the processes. In this layer, every program
has its own specific Dalvik VM environment. Android kernel
is similar to the kernel of a desktop running linux. It is an
open environment providing access to the kernel system.
Android kernel is mainly associated with management
utilities which include process, power, and memory.
Moreover, it is also concerned with network management
and security systems [1].
III. DEVELOPING ANDROID APP, APPLICATION
FRAMEWORK
Android applications are developed using java
language using SDKs that provide robust and efficient
application programming interfaces (API). Android Fig 1: Layered Architecture
applications can use native features of the device after the
user grants permission. Inter-process communications and The android application development process
sharing resources are more secure in android than other consists of several layers. The lowest layer in the hierarchy is
platforms. Android provides an open environment for the HTTP layer which sends and receives HTTP requests to
application development while taking advantage of every the server. API layer parses server response and formulates a
core functionality [3][1]. The set of services provided by the query. These queries then passed onto the HTTP layer.
android development platform includes the following Subsequently, the API layer parses the response string to the
functionalities [1][2]: generic data layer while extracting the important fields from
the string. Implementation of necessary functions is included
x A set of customizable and extensible Views, which in generic data layer. These important functionalities can be
include buttons, textboxes, browser, lists, etc. termed as caching, validations programs and data
x Content providers are used to enabling inter-process management systems. In platform dependent data layer
communications. These providers are responsible necessary data is collected from generic data layer to use.
for applications retrieving and sharing data with This layer is named platform dependent because collected
other applications. data is stored in several classes like adapter or listview
x The resource manager is responsible for enabling depending on the platform in which they are going to be
the application to access resources like strings, used. UI layer is responsible for the interaction with the end-
layout files, etc. user via views, layouts, buttons, etc. This layer consists of
x Application notifications are handled by a two components named user interface and user process. The
customizable notification manager. From first module, user interface components is responsible for the
permission requests to user notifications, everything interaction of the user with developed applications. User
is handled by the notification manager. process components are responsible for synchronization and
x The activity manager manages and analyzes every organization of interactions [3][1].
lifecycle phase of an application.
978-1-7281-4365-1/19/$31.00 ©2019 IEEE 74
Proceedings of the Third International Conference on I-SMAC (IoT in Social, Mobile, Analytics and Cloud) (I-SMAC 2019)
IEEE Xplore Part Number:CFP19OSV-ART; ISBN:978-1-7281-4365-1
A. Application Model while deploying them on many platforms. These approaches
are beneficial in cost and time-saving. Developers can use
In this model, every application consists of several only one programming language to develop the application
components. Every component can be used even by other and use a cross-platform framework to translate this code to
applications. These components can be categorized as many platforms [5].
activity, service, receiver and provider components. Activity
components are used for user interfaces. These components A. Requirements for Cross-Platform Approaches
are responsible for every window of the application. Service
components are useful for communicating with other Cross-Platform approaches are efficient in
applications. These components can remain active in the producing applications for various platforms. There are
background while the user switches to another window and several requirements to maintain the high performances of
resume when it is necessary. Receiver components are these applications. Cross-platform must support the
responsible for communication with other applications. scalability and maintainability of the applications. If
These communications are done via messages. These modifications need to be done, cross-platform needs to allow
messages are received and processed asynchronously by the the developer to do these modifications in cross-platform
receiver components. Provider components are responsible levels only and deploying them on several platforms. These
for storing data which are necessary for the application in applications need to have features to use all the resources of
databases. These data can be exploited by several the device. Having no intermediate layer to access the
applications at the same time [1][2]. resources and features is preferable in the cross-platform
For example, a chat application for android is application development process. Maximum allocation and
considered. This application stores its data in firebase. This optimization of resources is the prime concern for cross-
application has several components. There are activities in platform applications. The efficient consumption of resources
which a user’s profile picture can be viewed. There are need to be considered by the developers, but cross-platform
services like uploading a profile picture of the user. Receiver needs to offer automatic optimization and management as
components are useful when priority functionalities like well. Security has always been a concern for the developers
incoming calls or messages arrive, the application gets since there are many ways to penetrate the security system of
paused and resumed again after these functionalities a device as well as losing the device in public. In both cases,
terminate. Finally, provider components can be seen working there are higher risks of losing confidential data. Developers
when credentials and media files are uploaded to the need to pay attention to the risks of a security breach in the
database, for this application which is a firebase real-time form of storing encrypted data in the device. Therefore,
database. cross-platforms must consider security policies. Cross
platforms need to have the capacity of environment
B. Component Classes and Methods integration, which includes auto-completion, debugger, etc.
[5]
The android application development framework
consists of several component classes. This framework is B. Categories of Cross-Platform Approaches
flexible towards application development where application
dependencies can be collaborative among each other’s 1) Web Approach
providing necessary simple or complex functionalities This approach is based on mobile web browsers and
depending on the situations. An application has several uses HTML, JavaScript, and CSS for implementation. In this
screens or activities, each activity is responsible for a approach, implementation of an application is done as a
different set of tasks. These components are called activity website and the browser is used as a runtime environment.
components. User interface is handled by these components. Necessary optimization techniques like device screen size
Next is service components which are responsible for need to take into account for the development purpose. Web
managing and organizing background processes. Content mobile applications have similar interfaces and do not need
Providers are responsible for sharing important data between updates. However, these applications have limited access to
applications in the form of a relational database. Android is native features of devices such as GPS, messaging service,
embedded with SQLite providing support for the relational etc. Moreover, these applications are slower as they need
database. Finally, the broadcast receiver components which time to render the webpages from the network. Web
works as a communication bridge between system and applications are not available on application stores such as
applications [4]. playStore or iOS market which is a major drawback of this
V. CROSS-PLATFORM APPROACHES approach [5][6].
In the process of application development,
developers tend to develop an application that works on a
specific platform. That application then works on that single
platform alone. For example, android applications are
developed using java language, while iOS applications are
developed using objective-C or swift programming language.
Windows phones support applications that are developed
using visual C# or C++. The main goal of cross-platform
approaches is to develop applications in one environment
978-1-7281-4365-1/19/$31.00 ©2019 IEEE 75
Proceedings of the Third International Conference on I-SMAC (IoT in Social, Mobile, Analytics and Cloud) (I-SMAC 2019)
IEEE Xplore Part Number:CFP19OSV-ART; ISBN:978-1-7281-4365-1
Fig 3: Hybrid Approach
3) Model-Driven Approach
Model-Driven architecture is the basis of this
approach. This approach is driven by the modeling activities
where low-level issues need not be dealt with. These issues
are like saving data to the database or sending a notification
to the user etc. MDA consists of three fundamental models,
PIM of Platform Independent Model, PSM or Platform
Specific Model and PIM to PSM model.
Fig 2: Web Approach
The PIM model does not depend on the platform in
which it has been implemented. Whereas the PSM model is
2) Hybrid Approach dependent on the details of a specific platform that uses the
system. MDA can be used to implement the interface for
This approach is an amalgam of the advantages of several platforms for once and thereafter it can be used to
web approaches and features of the devices. Within this implement PSM. Implementation of the user interface can be
approach native functionalities can be accessed by using an done without any help from intermediate runtime
abstract bridge of JavaScript. HTML contents are embedded administration. Every platform needs to organize the native
in WebView or UIWebView web containers of the device code in order to maintain the application model. The only
using the cellphone browser. Web applications are not concern in this approach is that any application that needs to
available in the application store, whereas hybrid applications be modeled must be categorized within this approach. For
can be distributed in the various app store. An abstract layer every platform native code should be generated manually
is responsible to make sure that the applications can use the using SDKs and platform-dependent language. However, the
native functionalities [5][6]. issue arises with the integration of manually written code as
it is a challenging task to implement. MD2 is a prototype
designed for a model-driven application development
approach. MD2 is completely based on DSL textual format
which can generate specific runnable applications. However,
this prototype has its own drawbacks which require complete
solutions [5][6].
978-1-7281-4365-1/19/$31.00 ©2019 IEEE 76
Proceedings of the Third International Conference on I-SMAC (IoT in Social, Mobile, Analytics and Cloud) (I-SMAC 2019)
IEEE Xplore Part Number:CFP19OSV-ART; ISBN:978-1-7281-4365-1
its activities. If anomalies are spotted while watching the
device state and network activities it produces a bug report
for malicious applications. Sandboxing is the most common
approach of dynamic analysis where the system is isolated in
a way to prevent system calls to use core functionalities
[9][10].
VII. SECURITY SYSTEMS
A. Attacks on Mobile Devices
1) Attacks from the Internet
Nowadays mobile applications and computer
applications have similar interfaces, components, and
features. Mobile applications are developed using the same
techniques. Therefore, attacks on smartphones are done using
a similar technique using DoS and DDoS attacks. Mobile
viruses, worms, and trojan horses are implemented using
similar techniques like PC viruses. Opening malicious
websites in a mobile web browser can cause serious harm as
well. Moreover, some web applications are built using free
servers. In that case, an administrator can access personal
data of any user without their consent [11].
2) Malware transmitted through PC
Users normally synchronize their smartphones with
Fig 4: Model-Driven Approach PC. This feature enables a hassle-free email, calendar,
VI. ANDROID SECURITY FRAMEWORK contacts, etc. synchronization. However, this also enables a
higher risk for a security breach. Attackers target PCs using
A. Android App Sandbox malware which remains dormant to avoid detection.
Whenever users connect their devices with PCs, they become
The kernel provides functionalities by acting as a active and affect the device’s internal storage to get
bridge between hardware and software in a system. It is a credentials stored on mobile devices [11].
very important part of a system as monitoring OS and
hardware operations concurrently is a critical task. 3) WPAN attack on Smartphones
Sandboxes are set up in the kernel space so that they can
access the core functionalities of an OS. Generally, Wireless Personal Area Networks (WPAN) are a
applications cannot interact with one another without user popular medium for the attackers to infect a device. Free Wi-
intervention and they don’t have full access to OS Fi signals can be found everywhere, however not every
functionalities. Therefore, malicious applications that want to signal can be trusted. Attackers set traps using open wireless
get access to those functionalities, prevented by sandboxes networks and when a user connects their phone in that
that are developed using UNIX. Sandboxes are responsible network, they plant their malware and trojans in that device
for monitoring system calls and system acknowledgments. to access device location and completely taking control of the
This is done using a process called system call hijacking by device. The first smartphone worm that has been built used
redirecting system calls. System calls are made by the this technique to create havoc in the history of trojan attacks
application in the user space asking permission to use core [11].
functionalities of the operating system. Sandboxes are B. Malware Detection Techniques
capable of isolating app-resources form other applications in
order to prevent malicious activities [7] [8]. Malicious programs can hide their identity. These
potentially harmful applications sneak into the devices via
B. Static and Dynamic Analysis communication channels or network medium. They are
Static and dynamic analysis is the most common capable of stealing user credentials and sending confidential
practice for virus detection. In the case of static analysis, the information to attackers. These types of applications can be
application does not get executed. In this analyzing process, detected by using software-based attestation. They are
binaries get filtered using patterns of malicious programs, constructed using cryptographic mechanisms. They generally
which are known as signatures. Although pattern matching is take a longer time to process due to their execution of every
the main analysis program, the static analysis also involves single function carefully which is defined in the algorithm
decompilation and decryption as well. Analyzing system [12].
calls before acknowledging is also considered as static A malware can cause several anomalies in the
analysis. In the case of dynamic analysis, it involves device resulting in high power usage, draining battery
executing the system in a closed environment and watching quickly in standby mode and overheating the device by
978-1-7281-4365-1/19/$31.00 ©2019 IEEE 77
Proceedings of the Third International Conference on I-SMAC (IoT in Social, Mobile, Analytics and Cloud) (I-SMAC 2019)
IEEE Xplore Part Number:CFP19OSV-ART; ISBN:978-1-7281-4365-1
running several unwanted processes in the background. Advantages:
These types of malware can be detected using anomaly
detection techniques. For example, if a specific application x With the advent of technologies, bare-metal
uses power more than it normally does, it will create a bug hypervisors perform with native speed having
report. Anomaly detection techniques use bug reports to minimum performance overhead. Hypervisors do
execute complex computations to detect if there is a malware not allow low-level modification of the device such
in the system trying to slow down the device. However, these as telephony systems. It reduces the risk of the
detection techniques are not fault-proof and they might tampering security system of a device.
provide erroneous results [12][13]. x An update of the whole operating system will not be
required, which will reduce the need for a huge
Computers use Rootkit Detections to analyze the amount of coding. This may increase the efficiency
system at the kernel level and provide malware reports. of the system as manufacturers and network
However, these techniques aren’t implemented in the mobile providers only have to update the hypervisor itself.
platform yet. It is still uncertain how efficient this system is x Hypervisors have the ability to determine the threat
and requires a vast amount of computation. The most popular of tampering with the core features of the device.
mechanism for malware detection in the mobile platform is When it makes sure that the user is not a threat, it
signature based [12][13]. provides an openness where the user can install any
preferred OS. It will not limit any software
VIII. REVIEW OF EXISTING APPROACHES
download thereafter [15].
A. Security Framework based on Reputation
Disadvantages:
Developers develop applications and publish them
The main drawback of hypervisors is that every
on the application market for the users to download and use
operating system needs modification in order to run a
them. A good application always gets a positive review by
specific type of hypervisor. Hypervisors are needed to
the users. They have downloaded the application and used it.
maximize their performance to work in full potential [15].
If they are satisfied with the product, they post reviews.
These reviews can be based on any modification that is C. Evaluation of Android security loopholes with Malware
necessary to be done or to update the application. This whole applications
process of garnering positive feedback on an application
takes time and makes sure that the application is not harmful With the advent of new technologies, application
to the users. Users need to be cautious about the applications development platforms provide a novel and easier way to
that have bad reviews. develop an application. These applications can utilize the
core features of any device for the need for user
In this process, anti-malware programs can play an requirements. However, the applications need the permission
important role. They keep the user informed if the application of the users in order to use those facilities. Mobile phone
is secure enough to download. Anti-malware programs keep manufacturers have made the security of the devices as the
track of the same applications which are downloaded by the prime concern. There are numerous anti-virus programs with
users. They set a threshold to determine if an application is a huge database are present which can easily detect any
good enough to install and makes the user aware of it. malicious activity within the device. However, loopholes are
always present in any system and if the user is not cautious,
In the other scenario, if an application hasn’t
they can give up their credentials without their consent.
developed any positive or negative reviews yet, anti-malware
Two applications are developed using an android
programs will make sure to inform the user not to install it or
studio using Firebase server to bypass the security
to install it in a sandbox. If the user downloads it anyway, the
mechanisms of a device. The first application is a very
anti-malware programs will update their database with
common chat application that people always use nowadays.
critical information on the application. When the same
In this application, the user can register their account to enter
application will be downloaded by several users, anti-
into a group chat. Users can upload their profile pictures as
malware programs will gather enough information to declare
well. However, each time a user registers, his or her
it as a suspicious or good application. Therefore, users will
credentials get updated into the firebase database. When they
have a choice not to use applications that have the potential
upload their profile picture it also gets saved in the firebase
to harm their devices [14].
database. The administrator who is in charge of the database
can easily get the credentials in order to log in with the
victim's account.
The second application is a transport application
where users can call a cab or taxi. In order to use this
B. Hypervisor Platforms application, both customers and drivers have to register.
A hypervisor is a small set of code which enables a After logging in customers have to call for a taxi and if any
virtual platform running on top of the operating system. This driver is available, it will get assigned to the customer
virtual platform takes control of every native feature and request. If a driver is assigned for a customer, that driver
interacts directly with the hardware of the device. It takes cannot make another request. This application is built using
total control of the cellular environment and does not allow an android studio, firebase and google API for accessing
user or OS interference with the telephony features [15]. location on the map. However, in this application when users
978-1-7281-4365-1/19/$31.00 ©2019 IEEE 78
Proceedings of the Third International Conference on I-SMAC (IoT in Social, Mobile, Analytics and Cloud) (I-SMAC 2019)
IEEE Xplore Part Number:CFP19OSV-ART; ISBN:978-1-7281-4365-1
register, their credentials get updated in firebase. When a International Conference on Trust, Security and Privacy in
Computing and Communications (pp. 896-901). IEEE.
driver is online, the location of that driver will be updated
[15] Averlant, G., Alata, E., Kaâniche, M., Nicomette, V., & Mao, Y.
periodically on firebase. This depicts a security breach where (2018, November). SAAC: Secure Android Application Context a
the location of any user can be tracked without the consent. Runtime Based Policy and its Architecture. In 2018 IEEE 17th
International Symposium on Network Computing and Applications
IX. CONCLUSION (NCA) (pp. 1-5). IEEE.
Android applications are evolving at a faster pace in
order to satisfy the user needs at a higher level. Android
mobile application development processes are maturing with
technological advancements. Android has given the
opportunity to have the satisfaction of using the features of a
PC in a small device. Supporting cross-platform approaches
has widened up the scope of technological advancement at a
meteor pace. MDA approach is the most anticipated and
popular cross-platform approach which has been considered
as a trend in global technological advancement. Security has
always been a concern for the users. Android provides
numerous aspects of providing security. Malware detection
systems like static and dynamic analysis, sandboxing a
system have proved to be efficient techniques. This paper has
briefly described some aspects of the application
development process and security systems.
REFERENCES
[1] Backes, M., Bugiel, S., Derr, E., McDaniel, P., Octeau, D., &
Weisgerber, S. (2016). On demystifying the android application
framework: Re-visiting android permission specification analysis.
In 25th {USENIX} Security Symposium ({USENIX} Security 16) (pp.
1101-1118).
[2] Cinar, O. (2015). Android Platform. In Android Quick APIs
Reference (pp. 1-14). Apress, Berkeley, CA.
[3] Holla, S., & Katti, M. M. (2012). Android based mobile application
development and its security. International Journal of Computer
Trends and Technology, 3(3), 486-490
[4] Latif, M., Lakhrissi, Y., Nfaoui, E. H., & Es-Sbai, N. (2016, March).
Cross platform approach for mobile application development: A
survey. In 2016 International Conference on Information Technology
for Organizations Development (IT4OD) (pp. 1-5). IEEE.
[5] De Andrade, P. R., Albuquerque, A. B., Frota, O. F., Silveira, R. V.,
& da Silva, F. A. (2015). Cross platform app: a comparative
study. arXiv preprint arXiv:1503.03511.
[6] Latif, M., Lakhrissi, Y., Nfaoui, E. H., & Es-Sbai, N. (2017, April).
Review of mobile cross platform and research orientations. In 2017
International Conference on Wireless Technologies, Embedded and
Intelligent Systems (WITS) (pp. 1-4). IEEE.
[7] Bläsing, T., Batyuk, L., Schmidt, A. D., Camtepe, S. A., & Albayrak,
S. (2010, October). An android application sandbox system for
suspicious software detection. In 2010 5th International Conference
on Malicious and Unwanted Software (pp. 55-62). IEEE.
[8] Philip, J., & Raju, M. (2019). A Formal Overview of Application
Sandbox in Android and iOS with the Need to Secure Sandbox
Against Increasing Number of Malware Attack. Indian Journal of
Computer Science, 4(3), 32-40.
[9] Spreitzenbarth, M., Schreck, T., Echtler, F., Arp, D., & Hoffmann, J.
(2015). Mobile-Sandbox: combining static and dynamic analysis with
machine-learning techniques. International Journal of Information
Security, 14(2), 141-153.
[10] Wang, X., Sun, K., Wang, Y., & Jing, J. (2015, February).
DeepDroid: Dynamically Enforcing Enterprise Policy on Android
Devices. In Ndss.
[11] Dhara, M. N. B. T. M., & Darji, N. Malware Attacks on Smart Phone,
Its Limitation & Evolution to Detect New Techniques.
[12] Beyer, C. (2014). Mobile security: A literature review. International
Journal of Computer Applications, 97(8).
[13] Ingale, S., & Gupta, S. (2014). Security in Android Based
Smartphone. International Journal of Application or Innovation in
Engineering Management, 3.
[14] Tesfay, W. B., Booth, T., & Andersson, K. (2012, June). Reputation
based security model for android applications. In 2012 IEEE 11th
978-1-7281-4365-1/19/$31.00 ©2019 IEEE 79