IJREAT International Journal of Research in Engineering & Advanced Technology, Volume 1, Issue 5, Oct-Nov, 2013 ISSN:

Similar documents
FriendlyARM. Mini2440.

TQ2440 Development Platform Manual

Embest SOC8200 Single Board Computer

PORTING 3GP PLAYER ANDROID APPLICATION ON ARM9 WITH HIGH SECURITY (USING BIOMETRICS)

Mobile and Wireless Systems Programming

PORTING 3GP PLAYER ANDROID APPLICATION ON ARM9 WITH HIGH SECURITY (USING BIOMETRICS)

EMBEDDED HARDWARE. Core Board. ARM7 Development board. ARM7 Evaluation Board. Page 1 of 5

INTERNATIONAL JOURNAL OF PURE AND APPLIED RESEARCH IN ENGINEERING AND TECHNOLOGY

CS260 Intro to Java & Android 04.Android Intro

Introduction To Android

SHWETANK KUMAR GUPTA Only For Education Purpose

Android - open source mobile platform

Introduction to the TenByTen6410

Android In Industrial Applications. A Field Report

Lecture 1 Introduction to Android. App Development for Mobile Devices. App Development for Mobile Devices. Announcement.

Concept of Fan Regulator using MINI-2440

IJRDTM Kailash ISBN No Vol.17 Issue

iw-rainbow-g3 / G3V FAQs:

Mobile Application Development

Android System Development Training 4-day session

Overview. 3//5/ Preliminary Product Brief

The industrial technology is rapidly moving towards ARM based solutions. Keeping this in mind, we are providing a Embedded ARM Training Suite.

Android Overview. Most of the material in this section comes from

Android Overview. Francesco Mercaldo, PhD

Android Development Tutorial. Yi Huang

DevKit8000 Evaluation Kit

This product is RoHS compliant PKA1GxxxRx-00R

MYD-Y6ULX Development Board

Lesson 6 Intel Galileo and Edison Prototype Development Platforms. Chapter-8 L06: "Internet of Things ", Raj Kamal, Publs.: McGraw-Hill Education

Overview. 1/13/ Preliminary Product Brief

Research on Improving performance and Battery Backup of Android Mobile with help of Cyanogen Mod, and latest kernel

EMBEDDED SYSTEMS WITH ROBOTICS AND SENSORS USING ERLANG

Mobile development initiation

Four Components of a Computer System

This product is RoHS compliant PK65VxxxRx-00R

Android App Development. Muhammad Sharjeel COMSATS Institute of Information Technology, Lahore

Open Mobile Platforms. EE 392I, Lecture-6 May 4 th, 2010

This product is RoHS compliant PK70WxxxRx-00R

Human Machine Interface Platform

SBC8140 Single Board Computer

This product is RoHS compliant PK80SxxxRx-00R

MYD-SAMA5D3X Development Board

OK335x Products Guide. Contents

Product Technical Brief S3C2440X Series Rev 2.0, Oct. 2003

pcduino V3B XC4350 User Manual

SD Module- Android Programming

Lecture 1 - Introduction to Android

ID 730L: Getting Started with Multimedia Programming on Linux on SH7724

UNIT:2 Introduction to Android

CORRIGENDUM ISSUED FOR NATIONAL COMPETITIVE BIDDING UNDER TEQIP PHASE-II

A STUDY OF ANDROID OPERATING SYSTEM WITH RESPECT WITH USERS SATISFACTION

Mobile Internet Devices and the Cloud

An overview of mobile and embedded platforms

SABRE Board for Smart Devices

Android App Development

DevKit7000 Evaluation Kit

Android App Development. Ahmad Tayeb

SBC3100 (Cortex-A72) Single Board Computer

DevKit8500D Evaluation Kit

MYD-JA5D2X Development Board

REAL TIME IMAGE PROCESSING BASED ON EMBEDDED LINUX

Group 15 Arian Caraballo, CpE Daniela Zicavo, CpE Felipe Bernal, CpE Isabel Virag, CpE

Overview of the Raspberry Pi Models 3B & 2B

OpenEZX and OpenMoko, truly free software for mobile phones

MYD-C437X-PRU Development Board

ACR880 GPRS Portable Smart Card Terminal

Chapter 1 Hello, Android

PV8900-CORE Full Function TCC8900/TCC8901/TCC8902 CPU Module Specification

MOBILE OPERATING SYSTEM

The Information contained herein is subject to change without notice. Revisions may be issued regarding changes and/or additions.

An Introduction to Android. Jason Chen Developer Advocate Google I/O 2008

System Energy Efficiency Lab seelab.ucsd.edu

PXA270 EPIC Computer with Power Over Ethernet & Six Serial Protocols SBC4670

MYD-IMX28X Development Board

A-307. Mobile Data Terminal. Android OS Platform Datasheet

Group 15 Arian Caraballo, CpE Daniela Zicavo, CpE Felipe Bernal, CpE Isabel Virag, CpE

MYD-IMX28X Development Board

Lab 1. OMAP5912 Starter Kit (OSK5912)

Introduction to Android Android Smartphone Programming. Outline University of Freiburg. What is Android? Background University of Freiburg.

LinkSprite Technologies,.Inc. pcduino V2

LS9200 User Guide LinkSprite Technologies, Inc.

Zatara Series ARM ASSP High-Performance 32-bit Solution for Secure Transactions

Users Manual for MINI2440

Chapter 2: Operating-System Structures. Operating System Concepts 9 th Edit9on

Abstract. 1. Introduction

Product Technical Brief S3C2416 May 2008

IoE Workshop. Marc Khayat, CCIE #41288, Leonard Janer Technical Managers. June 16

Hugo Cunha. Senior Firmware Developer Globaltronics

Linux. For BCT RE2G2. User Guide. Document Reference: BCTRE2G2 Linux User Guide. Document Issue: Associated SDK release: 1.

December 1, 2015 Jason Kridner

Introduction to Android

Developer s overview of the Android platform

i.mx 6UltraLite Evaluation Kit Quick Start Guide s datasheet has been downloaded from at this pag

Quick Start Guide. Sound terminal expansion board based on STA350BW for STM32 NUCLEO (X-NUCLEO-CCA01M1) Version 1.1.

S2C K7 Prodigy Logic Module Series

Installation Guide for MV320 (Windows CE 5.0)

Quick Start Guide. Bluetooth Low Energy expansion board based on SPBTLE-RF module for STM32 Nucleo (X-NUCLEO-IDB05A1) Version 1.

Introduction to Android

Copyright

Android Forensics. Investigation, Analysis, Google Android. and Mobile Security for. Andrew Hoog. John McCash, Technical Editor SYNGRESS

Transcription:

Friendly ARM MINI2440 & Dalvik Virtual Machine with Android Sangamesh Gama 1 and Manjula C 2 1 Assistant Professor, Department of Computer Science and Engineering, BKIT Bhalki, India 2 Associate Software Engineer, India Abstract Android is a popular mobile-device platform developed by Google. Android is an operating system based on Linux with a Java programming interface. Android provides tools such as compiler, debugger and device emulator which is well known as Dalvik Virtual Machine (DVM). In this paper we are going to discuss on booting the ARM board, with Android OS. To boot ARM with Android cross-compilation tool is used. To list the activities, a list activity application is created in eclipse integrated development environment. With the help of the Android Development Tool, the application is transferred to ARM board. Mini2440 is a practical low-cost ARM9 development board, is currently the highest in a cost-effective learning board. It is for the Samsung S3C2440 processor and the use of professional power stable core CPU chip to chip and reset security permit system stability.[1] Keywords Android, Dalvik virtual machine, MINI2440, Android package, Android SDK. 1. INTRODUCTION Android is created by the Open Handset Alliance which is lead by Google. Android is a software stack for mobile devices that includes an operating system, middleware and key applications. Android operating system is based on Linux with a Java programming interface. [2] The Android SDK (Software Development Kit) provides the tools such as a compiler, debugger and a device emulator as well as its own Java Virtual machine (Dalvik Virtual Machine - DVM). Android also provides APIs (Application Programming Interface). The SDK and APIs are necessary to begin developing applications on the Android platform using the Java programming language. Android offers new possibilities for mobile applications by offering an open development environment built on an open source Linux kernel. Hardware access is available to all applications through a series of API libraries, and application interaction, while carefully controlled, is fully supported. Third-party and native Android applications are written using the same APIs and are executed on the same run time. The run time includes core libraries and the Dalvik Virtual Machine. This paper discusses, about android being booted on the Dalvik Virtual Machine, with the help of the ADT (Android Development Tools) plug in. The ADT plug in is provided by Eclipse IDE (Integrated Development Environment). Also, about how android is being cross-compiled for the embedded board- ARM Board. Arm board also otherwise called as MINI2440. The MINI2440 is a single board computer based on Samsung S3C2440 microprocessor. 1.1 Main Features A. ARM Board Few features of ARM board are as follows: [1]. Fig 1 shows the ARM board/mini 2440. 1)CPU Processor Samsung S3C2440A, frequency 400MHz, the highest 533MHz. 2)SDRAM Memory -On-board 64MB SDRAM -32-bit data bus - SDRAM clock frequency up to 100 MHz 3)FLASH Memory -On-board 64 MB NAND flash, Power-down nonvolatile - On-board 2 MB NOR flash, Power-down nonvolatile, BIOS has been installed 1

4)LCD Display - On-board integrated 4-wire resistive touch screen interface, you can directly connect -4-wire resistive touch screen - Support for black and white, 4 gray-scale, 16 gray-scale, 256-color, 4096-color STN - LCD screen size from 3.5 to 12.1, 1024x768 pixels screen resolution can be achieved - Support for black and white, 4 gray-scale, 16 gray-scale, 256-color, 64K-color, True - Color TFT LCD screen size from 3.5 to 12.1, 1024x768 pixels screen resolution can be achieved. - Standard configuration for the NEC 256Kcolor 240x320/3.5 TFT True Color LCD screen with touch screen. - Power interface (5 V), with power switch and indicator light 6)System Clock Source - 12 MHz passive crystal 7)Real-Time Clock - Internal real-time clock (with lithium battery backup) 8)Expansion Interface - 1 34-pin 2.0 mm GPIO interface - 1 40-pin 2.0 mm system bus interface 9)Dimension - 100 mm x 100 mm B. Android Some of the features of android [3] are as follows: 1 1)Handset layouts The platform is adaptable to larger, VGA, 2D graphics library, 3D graphics library based on OpenGL ES 2.0 specifications. 2) Connectivity: GSM/EDGE, Bluetooth, Wi-Fi, LTE, NFC and WiMAX. Fig 1: Friendly ARM/MINI2440 5) Interfaces and Resources - 1 100 Mbps Fast Ethernet RJ-45 interface (used network chips DM9000) - 3 Serial ports - 1 USB host - 1 USB slave (B-type interface) - 1 SD card storage interface - 1 channel stereo audio output interface, all the way microphone interface - 1 2.0mm pitch 10-pin JTAG interface - 4 User LEDs - 6 User buttons (with lead blocks) - 1 buzzer PWM control - 1 adjustable resistor, analog-to-digital converter for A/D test - 1 I2C-bus AT24C08 chip for I2C-bus test - 1 2.0 mm pitch 20-pin camera interface - On-board real-time clock battery 3)Java support While most Android applications are written in Java, there is no Java Virtual Machine in the platform and Java byte code is not executed. 4)Bluetooth Supports A2DP, AVRCP, sending files (OPP), accessing the phone book (PBAP), voice dialing and sending contacts between phones. 5)Multitasking Multitasking of applications, with unique handling of memory allocation, is available. 2

6)External storage Most Android devices include microsd slot and can read microsd cards formatted with FAT32, Ext3 or Ext4 file system. 7)Messaging Along with SMS and MMS, Android Google Cloud Messaging (GCM) is also a part of Android Push Messaging service and Android Cloud To Device Messaging (C2DM) and now enhanced version of C2DM. 8)Additional hardware support Android can use video/still cameras, touch screens, GPS, accelerometers, gyroscopes, barometers, magnetometers, dedicated gaming controls, proximity and pressure sensors, thermometers, accelerated 2D bit blits and accelerated 3D graphics. 2. ARCHITECTURE Android implements a complete software stack for running mobile device applications. Android is an Open Handset Alliance (OHA) project done by Google.[2] It uses Linux kernel as the kernel of the operating system. Therefore Android architecture and the performance are more similar to other Linux based operating systems. Mainly Android architecture can be categorized as OS, middleware and applications. Fig 2 shows a complete architecture of Android operating system. A. Applications All mobile/portable devices will have some applications which perform basic features. Features like Contacts, SMS, and MMS will be available if the device is Phone. [3] Fig 2 : Android Architecture The application should allow the third party applications with the help of Application Programming Interface (API). These android applications are included in the Applications layer. B. Application Framework Application framework gives the user interface controllers for developing software. They manage the behaviour of the running application. By providing an open development platform, Android offers developers the ability to build extremely rich and innovative applications. [3]. Developers are free to take advantage of the device hardware, access location information, run background services, set alarms, add notifications to the status bar, and much, much more. Underlying all applications is a set of services and systems, including: Views, Content Providers, Resource Manager, Notification Manager, and Activity Manager. Each manager is takes control to manage activities. For an Example: Content Providers that enable applications to access data from other applications (such as Contacts), or to share their own data. C. Core Libraries & Android Runtime Middleware category includes Libraries and Android Runtime. 3

Libraries are the techniques which add features to the operating system. [3]. Android Runtime can be included in middleware of the operating system. It has virtual machine which is similar to Java Virtual Machine (JVM) names as Dalvik Virtual Machine. This is where the developed applications are running. Because of the limited memory and battery power Android cannot directly use JVM. Therefore more reliable and mobile device targeted Dalvik Virtual Machine is used. D. Linux Kernel The kernel used in Android is a 2.6 series Linux kernel modified to full fill some special needs of the platform. It is based on Linux kernel for core system services such as security, memory management, process management, network stack, and driver model. [3]. The kernel is freely available and the development process is visible through the public Android source repository. There are hardware specific kernels available for OMAP. 3. DALVIK VIRTUAL MACHINE A. Overview of Dalvik Virtual Machine (DVM) The necessary byte code interpreter the virtual machine is called Dalvik. Instead of using standard byte code, Dalvik has its own byte code format which is adjusted to the needs of Android target devices. The byte code is more compact than usual Java byte code and the generated.dex files are small. As a multitasking operating system, Android allows every application to be multithreaded and also to be spread over multiple processes. For the sake of improved stability and enhanced security each application is separated from other running applications. Every application runs in a sandboxed environment in its own Dalvik virtual machine instance. This requires Dalvik to be small and only add little overhead. There are two major areas to consider for minimizing the memory usage. Firstly the application itself has to be as small as possible and secondly the memory allocation of each application has to be optimized. In addition to the reduced usage of valuable memory one gains faster application load times and less needed disk storage. Fig 3: Overview of APP on DVM Java applications for Dalvik get compiled like other Java programs with the same compilers and mostly the same tool chain. Instead of compressing and packaging the resulting class files into a.jar file, they are translated into.dex files by the dx tool. These files include the Dalvik byte code of all Java classes of the application. Together with other resources like images, sound files or libraries the.dex files are packaged into.apk files. In order to save storage space,.dex files only contain unique data. If multiple class files share the same string, this string would only exist once in the.dex file and the multiple occurrences are just pointers to this one string. Fig 2 depicts the overview of how an application runs on the DVM. The same mechanism is used for method names, constants and objects which results in smaller files with much internal pointing. The Dalvik byte code is designed to reduce the number of necessary memory reads and writes and increased code density compared to Java byte code. For this purpose Dalvik uses its own instruction set with a fixed instruction length of 16 bit. [4] 4. IMPLEMENTATION Implementing android on DVM is possible with the help of Eclipse IDE. Android offers a custom plug in for the Eclipse IDE, called Android Development Tools (ADT) that is designed to give a powerful, integrated environment in which to build Android applications. To port different versions of android on DVM, just eclipse IDE is enough, which offers versions of android, which can be deployed using the Android SDK and Android AVD manager. 4

SDK that is been provided by Android, comes with the package with necessary libraries and tools, that are required for creating a DVM as well as to create applications and execute the same on DVM. A. Tools The Android SDK includes a variety of tools that helps to develop mobile applications for the Android platform. The tools are classified into two groups: SDK tools and platform tools. SDK tools are platform independent and are required no matter which Android platform is used to develop. Platform tools are customized to support the features of the latest Android platform. 1. SDK tools The SDK tools are required to develop Android applications. The most important SDK tools include the Android SDK and AVD Manager. The Emulator, A QEMU-based device-emulation tool that is used to design, debugs, and tests the applications in an actual Android run-time environment. The Dalvik Debug Monitor Server lets us debug android applications. With the ADT plug-in that is installed in eclipse, the AVD (Android Virtual Device) Manager which provides the option of creating an AVD, with the android OS version of choice. 2. Platform-tools The platform tools are typically updated every time a new SDK platform is installed. Of all the platform-tools the Android Debug Bridge (adb), is a versatile tool that lets to manage the state of an emulator instance or Android-powered device. Also Android application (.apk) file can be installed on a device. Fig 4: DVM with Android Booting B. Android on ARM Board To boot ARM Board with Android OS, Boot Files and Root File System are required. A concept called cross compilation is used to create booting files and root file system. 1)Cross Compilation A cross compiler is a compiler capable of creating executable code for a platform other than the one on which the compiler runs. Cross compiler tools are used to generate executables for embedded system or multiple platforms. It is used to compile for a platform upon which it is not feasible to do the compiling, like microcontrollers that don't support an operating system. Android can be ported into mini2440 by using Linux commands. For these pre-built binaries of Bootloader, Kernel and Root File System are required, which can be downloaded for arm processor. The cross-compiler that is required for compiling the bootloader and file system images is ABI standard armlinux-gcc-4.3.2 cross compiler. With the downloaded binaries, the kernel config_mini2440.[5] make menuconfig $ This command will create the mini2440t35_android.img. The next file to be cross-compiled is the ZImage, which acts as a primary bootloader, which is the kernel. $make ZImage 5

Now, the required part is root file system, which can be created by using following command. $make yaffs2 The files are ready to be ported to Friendly ARM. To send binary images to the Friendly ARM board setup is required between the cross-compiled images created in PC and the ARM Board. Serial port connection between host PC and Board for seeing Bootloader messages, and selecting image to be transferred. USB connection between host PC and board for actual transfer of binary images. Also choosing S2 side of Nand flash reset the ARM board. Once the board is booted up, we can see the Android blooming up. 5. APPLICATION List Activity application is been created with the help of Android API s in the eclipse Integrated environment. This application is useful for an individual to list his/her own activities to be completed. It s a very useful application in the day to day life. Using the Android Virtual Device(AVD) that is provided in the eclipse IDE, after installation of Android Development Plug in, this AVD can be initialized. Fig 5: Android booted on ARM board The Friendly ARM Mini 2440 has a Switch for selecting the Flash to boot from i.e. either NAND Flash or NOR Flash. For this installation, the switch should be set at NOR Flash setting. The mini Super Vivi bootloader runs from NOR Flash which enables transfer of the binary images. When the Friendly ARM is booted, a list of commands is been displayed, that is in Super Vivi mode. Step1: To erase the contents in NAND flash, so selecting x would format the system. Step 2: Choosing v to start the download bootloader. Fig 6: List Activity Application The jar file of the application created is converted to APK file with the help of.dex tool, provided by android SDK..apk, is the format that android can understand. Once, the apk is available this can be pushed to the device such as friendly arm/ DVM is possible using the adb which is present in the platform-tools provided by the android SDK. Adb is the android debug bridge, which acts as a bridge between the PC and the friendly arm or even the DVM. Step 3: Choosing k so download the android kernel: zimage Step 4: Select y to download the mini2440t35_android image. Step 5: Choosing b command to start boot. 6

Fig 7: APK Installation Fig 6 shows the apk being installed on the friendly arm and fig 7 shows how the apk is installed. 6. CONCLUSION Android OS is ported on Friendly ARM /MINI 2440 board, and list activity application is also ported with the help of adb tool. Also, Android is ported on the Dalvik Virtual Machine. REFERENCES [1] Friendly ARM MINI 2440 Overview [2] Open Handset Alliance http://www.openhandsetalliance.com/android_overview. html [3] www.androiddevelopers.com [4] Analysis of the Android Architecture Stefan Br ahler [5] http://wiki.embeddednirvana.org/flashing_android_on_frie ndly _ARM_Mini_2440 7