POSIX.1 conformance for Android Applications

Android operating system is designed for use in mobile computing by The Open Handset Alliance. Android market has hundreds of thousands of Android applications and these applications are restricted only to the mobiles. This restriction is mainly because of portability and compatibility issues of Android operating system. So need of employing these countless Android applications on any POISX Desktop operating system without disturbing the internal structure of application is very desirable. Thus we need to resolve these standardization and portability concerns by using POSIX standards (Portable Operating System Interface). The concepts of POSIX conformance for Android applications provide full-scale portability services and Android applications reusability for any POSIX desktop operating system. So Android applications will become usable for all POISX desktop users. This research theme introduces POSIX.1 Android thin layer model that simply provides the POSIX conformance for Android applications. It is using the POSIX.1 APIs for Android applications, which maintains the compatibility between the POISX Desktop operating systems and Android applications. We have analyzed our research work by implementation of the different applications in standard POSIX environment and, have verified its results. The results of POSIX.1 model clearly showed that it will boost up the Android applications market revenue up to 100% plus add real-time standardization and reusability.


I. INTRODUCTION
Android is open source mobile OS .It is particularly adapted by various manufacturers and modified based on their own taste for its openness [1].Currently, Android cell phones are becoming more sophisticated by providing functionalities that once expected from laptop and/or desktop computing systems.[2] For example, using cell phone, callers can now interact with system using spoken language, brows internet, exchange emails, chat online and social network medias, use navigation systems, etc. Mobile computing is real time computing.But mobile computing did not compete with Desktop OS because the Desktop users are still large in number plus it becomes the necessary need of user thus Mobile OS companies are still trying hard to make their space in the Desktop OS environment.Android is most famous and open source mobile operating system.It covers nearly 60% of mobile market but even Android OS (operating system) had the compatibility limitations.Therefore the need of standardization and portability is very essential.Android applications have multiple dependences so this limits the Android application utilization.One of the best possible solutions for catering these limitations is POSIX.
POSIX is an international standard with an exact definition and a set of assertions, which can be used to verify compliance.A conforming POSIX application can move from system to system with a very high confidence of low maintenance and correct operation.If you want software to run on the largest possible set of hardware and operating systems, POSIX is the way to go.[3] POSIX conformance for android Application is the basic aim of this research in, which multiple Android

A. The Problem Statement
Android is open source OS introduce by Google.Android is still developing.In the design of today's computing systems it is becoming increasingly important to design software with an open system architecture utilizing industry adopted standards.The need to develop open systems is driven by these major factors.
 Inefficient usage of manpower: First, gone are the days where a single developer can implement the entire system from scratch.Software development programs are continuously growing in scale, requiring teams of increasing size.
 Portability problem: Secondly, software does not operate in isolation; it must co-exist with the vast amount of commercially available software and can be run on available OS.
 Maintainability problems: The lifecycle of a software application is typically long requiring numerous modifications and updates as new features are added.
 Need of standardization: Lastly the biggest problem facing in these days is implementation of standards because portability and maintainability only fruitful when software developer follows the standards.www.ijacsa.thesai.orgBut Android performance is not enough, In addition, performance-analyzing environment has not been developed yet, and then its performance cannot be discussed well.Android OS addresses multiples challenges of today's software development process like interoperability, portability and compatibility issues.The major question is here, is Android application market is usable for all OS.Android applications standardization is major dilemma for Android market.Android applications for all OS are core idea of this research.But HOW is big question here.Thus Android applications need the openly published standard interfaces for competing these hybrids issues in Android OS.We are applying the Android applications standardizations by using the POISX.POSIX is based on UNIX, a well-established technology.POSIX defines a standard way for an application to interface to the operating system.[4] POSIX, the Portable Operating System Interface .The goal of POSIX is the source-code portability of applications: it means transform an application from one operating system to another by simple conversion.This Thin layer model of POSIX.1 provides the portability for Android applications that can be run on any operating system.

1) Android Application Portability:
There are more than 600,000 apps and games available on Google Play store.[8] But the sorrowful act is limitation of these 600,00 apps only for the Android OS.All of this work need conformance for any operating system according to the users and developers need.Because developers are also looking to employ Android in a variety of other embedded systems that have traditionally relied on the benefits of true real-time operating systems performance, boot-up time, real-time response, reliability, and no hidden maintenance costs.
2) Is Android POSIX Compliance?: Android is considering a partial POSIX compliance.Limited POSIX threads (pthreads) library is implemented in Android Bionic library.It provides built-in support for pthreads, but implementation is very restricted.So Android applications conformance is very inspiring, which never has done yet.
3) Earliest Idea Invention of POSIX Compliance for Android: Android used the non standard Bionic library which restricted the android applications to only for android OS.So best into our knowledge this proposed model first time in the history trying to merge the mobile OS Android applications with desktop POSIX OS.All this innovation has been done under the umbrella of POSIX.1 that means standardization and consistency.

II. BACKGROUND
Basically android is not POSIX compliant but some time it called partially POSIX compliant so this work is very restraining in lecture.Till now there is no such thing implemented for any MOBILE Operation System especially for Android.There are some software's like blue stack that provides the portability for Android applications but the concept of standardization is not applied like POSIX there and secondly all these type of software's work like application file run and exit but not gives the compatibility with underlying machine OS.Hence there is no implementation related work.Now this chapter explains the brief history of Android OS, application development framework for Android and POSIX its standards and APIs.

A. What POSIX Is:
POSIX is a standard to allow applications to be sourcecode portable from one system to another.On a system conforming to a particular version of POSIX (as measured by the test suite it passed), you should be able to just compile and run those applications, which use the POSIX (and only the POSIX) functions.POSIX basically dependent on:  A Compilation System: A compiler, basically.Real live POSIX systems are supposed to support a standard language.For this purpose the compiling language is C. for getting the POSIX support in any application each system has a variety of way of compiling code, for each occurrence.[1]  Headers: A set of headers that defines the POSIX interface supported on the particular system.[1] #include<stdio.h>was used header file in given example  Libraries: Libraries are pre-compiled, vendor-supplied objects that implement the POSIX functionality for any one.The libraries are linked into the application when it is built, or in the case of dynamically shared libraries, when user runs the program.[1]  A Run-Time System: Once user has built the program, the run-time, or operating system, allows him/her to run the application.[1] POSIX.1 on the other hand, is not considered to be basic functionality that all systems need in order to be useful (regardless of my personal opinion).Therefore, POSIX.1 is structured as a set of well-defined options that a vendor can support, or not.The only parts of POSIX.1 that aren't optional are some additions to the basic POSIX.1 signal mechanism.POSIX.1 options.[1] B. Android Android is s a software stack for mobile devices, which includes an operating system, a middleware and key applications.Android SDK provides the tools and APIs necessary to develop an application using JAVA (which is a popular language amongst the developers.Currently, Android is the most popular operating system out of the several Linux based mobile operating systems (e.g.,Maemo) [4].
 Linux Kernel: Android is based on Linux but is not Linux.The kernel of Android relies on Linux version 2.6 for core system services such as security, memory management, process management, network stack, and driver model.[6]  Libraries: The surface manager of Android library takes care of the display of the system and OpenGL is an open-source utility, which takes care of graphics of the system.[6]  Android Runtime: The development language that is used in this section is Java.The core Libraries of www.ijacsa.thesai.org Android is very powerful, yet simple and familiar development platform as it is very similar to Linux.
 Dalvik Virtual Machine (DVM): Dalvik virtual machine focuses on two of the most important issues of mobile system: limited space, and limited power.DVM converts all the files into smaller and more optimized (.dex) suitable for mobile systems [6].
 Application Framework and Application: The activity manager is responsible to keep track of life cycle of any application.[7] III.IMPLEMENTATION OF ANDROID POSIX.1 THIN LAYER MODEL A. Contribution 1) Proposed ANDROID POSIX.1 Thin layer Model:POSIX, the Portable Operating System Interface .The goal of POSIX is the source-code portability of applications: it means transform an application from one operating system to another by simple conversion.This goal is unattainable since most applications, especially the real-world ones, require more operating system support than you can find in any particular standard.The above unfeasible objective is now achievable through POSIX.POSIX is called useful."Useful," here, means "an aid to portability," and this brings us to the goal of POSIX: source-code portability of applications.The main intention of this work is that it will provide portability for the Android real world applications.But after the development of this thin layer model of POSIX.1.Android applications will become portable (POSIX compliance) and can be run on any operating system.This model provides the benefit to users as well as Android developers by increasing the number of users of android applications and reduces the developer time and cost because of portability and equivalence.a) Used Some Core Portable Functions: The fgetc(), getc() and getchar() Functions are very portable.For example in file creation, deletion and read data from it .theapplication used these functions for reading data from created file.c = getc(fp) ; while (c!= EOF) { putchar(c); c = getc(fp); www.ijacsa.thesai.org The call fgetc(stream) returns the next character from stream.If stream is at end-of-file, EOF is returned.The getc() function is the same as fgetc() except it may be implemented as a macro.These functions are very portable.So through these portable functions we are able to write a portable calls like for reading a data from text file char *fgets(char *s, int n, FILE *stream); b) Opening and Closing File Functions: The fopen() function is used to connect a file with a stream: fp=fopen("data.txt","w");Create text file with name data and w Create new file for writing.If a file with this name already exists, its contents are lost.Some systems make a distinction between text files and binary files.While there is no such distinction in POSIX, a 'b' may be appended to the mode string to indicate binary.The b does not do anything but may be useful for compatibility with non-POSIX systems.If you are creating a binary file, include the b to make your program more portable.Most systems that do not support the b option will just ignore it.
Upon success, the fopen() function returns a pointer to a file descriptor.This pointer is used only as an argument to other functions.Do not attempt to manipulate the object it points at.If the open fails, fopen() returns a null pointer.
When you are finished with a file, you should close it.The call fclose(stream) will complete any pending processing, release system resources, and end access to the file.If     The Android applications market revenue increasing very rapidly [24].Like in figure.1 Android market growth is 861.5%, which is tremendous.But question is here Why are restricting Android market only to the Mobile OS.Android market share [24] The market of the desktop OS is very large as shown in the below table.1.butif we merge both these markets only for the Android the result is very magnificent in the form of revue however also in the form of manpower reduction which shown in the table.8.Second option is related to making the Android OS POSIX compliant.This is not an easy task as there are a lot of limitations of Android hardware restriction, Android devices variety plus DVM [32] but the proposed model is one of best solution for all these limitations.The small size of usage hardware is obvious but implementation is not impossible by executing the Standard C library instead of using C/C++ for code conversion.
[33] This is only the idea but achievement needs more attention.
In the below model we are try to introduce a new layer, which called the Java POISX APIs layer.This layer simply converts the all java APIs into POISX APIs but still in java language .soDVM consider it as java command and convert it into dex.Format.
The Android Runtime consists of the Dalvik virtual machine and the Java core libraries.The Dalvik virtual machine is an interpreter for byte code that has been transformed from Java byte code to Dalvik byte code.[30] Fig. 5.
proposed Android OS POSIX compliant model Dalvik itself is compiled to native code whereas the core libraries are written in Java, thus interpreted by Dalvik.It means conversion of java to C/C++ done here.But we are try to convert the Android OS POISX .One solution is the POSIX package.This package provides access to the POSIX API from Java.However essential question is that where put this POISX APIs library for Java?As shown in above figure 7 we put the java POSIX APIs layer that Basically DVM do the conversion of java applications to .dexformat means conversion of java to C/C++ .soDVM has not problem if there is any JAVA API so if we put the JAVA POSIX API [31] layer which convert the alljava simple APIs to POISX APIs but still in the java language.So DVM very easily do it conversion because DVM consider it a java API VII.CONCLUSION Currently, Android is the most popular operating system out of the several Linux based mobile operating systems (e.g.,Maemo) [4].POSIX .1 thin layer model assigns the Android applications to a wider marketplace without restricting to them with only mobile computing.In this work, the main theme of research provides the portability to the Android Application with POSIX.1 standard.In summary introducing this thin layer POSIX.1 model expands the market for Android applications and adds real-time capability and higher reusability

Fig. 1 .
Fig.1.Proposed POSIX.1 thin layer model2) The POSIX Development Environment: POSIX provides portability at the source level.This means that you

4 )
Android Application Template for POSIX.1:This template would be change according to the Application or need of the developer.But the #define _POSIX_SOURCE 1 is compulsory part of any application.[29]

Fig. 3 .
Fig.3.Android market share[24] applications are, used as sample input with the POSIX Application Programming Interface (API) standards.The research agenda based on the POSIX.1 thin layer model, which gives the POSIX conformance for Android applications.This POSIX.1 thin layer model hierarchy is:  Need of POSIX.1 binding language. Conversion of sample examples of Android in POSIX binding language and test it  Establishment of template for Android applications (POSIX thin layer model for Android applications) with the standard libraries.The system vendor provides the compiler, the libraries, and headers.Strictly speaking, these are all black boxes and you do not need to know how they work.For POSIX .1 thin layer model implementation we used the following specifications.

TABLE I
The reasons of start test from very simple Android application to complex one Android application are: Is Android application will be POSIX compliant is a question itself.So we implement the very first sample example in both environment then we move forward that why it is part of our research work.
 Text file creator, save data on it and display the text on the terminal  Multithreading example [29]  File creator and multithreading is very important example because it used very frequent OS calls.The IEEE Std 1003.1b-1993(pp.103)also used these examples for implementation.

TABLE IV
/* External functions */There should be a prototype for each user-written external function that you use./* Structures and unions */ Define all of the structures that are used only in this file.Any structure that is used in multiple files should be in a local header file.
there are no errors, fclose() returns zero.It returns EOF if any errors are detected.

TABLE V .
MATCHING OF POSIX.1 COMPLIANT ANDROID APPLICATION WITH POSXI.1 TEMPLATE

TABLE VIII .
COMPARATIVE ANALYSIS OF APPLICATIONS DEVELOPMENT TIME AND MANPOWER FOR ANDROID DEVELOPERSThe feasibility study of the POSIX.1 thin layer Model clearly revealed a lot of benefits for developers.These abrupt changes in standards becomes the developer life miserable. A lot of Android applications are GUI dependent and POISX .1 support very limited GUI features so need of GUI functions in POISX .1.There is no standard tool or engine for language conversion from java to standard C.