* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Download Week 02 - Android
Survey
Document related concepts
Transcript
MOBILE DEVELOPMENT : ANDROID TOPIK-TOPIK LANJUTAN By: BENY NOFENDRA 1401105702 ERLIEN FELICIA VANIA 1501154195 RAGNAR KUMARA 1501156250 FEBRIAN JIUWIRA 1501169316 BILLY BERNANDO 1501170526 06PLM /GROUP 10 Bina Nusantara University Jakarta 2014 Abstract This paper deals with the study of Android application development. This paper will provide readers with the general understanding about Android application development which includes the programming language involved in Android programming, the tools available to code an Android application, how to compile an Android application, how to publish an Android application so that it would be available for download to the public, and also the Android programming communities that is widely known. Keywords: Mobile Programming, Mobile, Android, Operating System (OS) Chapter 1 INTRODUCTION 1.1 Background Mobile phones are one of the most significant inventions in the history of man-made technology. The first wireless handheld phone was demonstrated by Motorola in 1973, and it became public as Japan launched the first commercial cellular network in 1979. The first cellular phones look like bricks: very large, very heavy. But then it is undeniable that the evolution of mobile phone technology has been going astoundingly fast. We can still recall that in the early 2000s phones still only have basic functionalities: phone call, text and media messaging, and that old school addictive Snake game. By mid 2000s, phones that have media player, bluetooth functionality, internet browsing functions, and color screen started emerging. By late 2000s, a new breed of mobile phones known as “Smartphones” became popular (earlier version known as PDA has been around since mid 2000s but are still unpopular and too expensive). It is basically a pocket version of a common desktop computer for it has nearly all the functions. As smartphones rise, so did tablet PC, which are basically just larger smartphones. Mobile phones have become so popular that statistics data compiled in the year 2013 showed that as much as 91% of the human population use mobile phones, where 56% of these mobile phone users are using smartphones. The number of smartphone users is expanding rapidly since smartphones give lots of benefits to their users such as email on the go, GPS navigation, NFC technology, real time information on fingertips, cloud-based content and many more. As the number of mobile phone users are increasing, smartphone manufacturers started emerging, both old time and new players. Nokia, Samsung, LG, Motorola, the big players in mobile phone industry started making smartphones. In 2008 Blackberry had an explosive growth and became one of the most dominant smartphone brands, until its fall in the late 2012 due to lack of innovation and faulty operating system. As Blackberry falls, the number of Android, iOS, and Windows Phone based smartphones rise. Android can be considered one of the most dominant platforms currently used worldwide. In 2014, a statistic shows that there are approximately 1.000 million units handheld device that uses Android OS as its operating systems. (http://www.digitalbuzzblog.com/infographic-2013-mobile-growthstatistics). Android itself operates based on Linux Kernel, working on mobile devices. Android was found by Android, Inc. and was funded by Google. Google saw the potential in the system and bought it in 2005 (www.wikipedia.com). Android is an open source platform. The open source system allows independent developers to develop their own mobile application based on Android and make them available for public download; either free or paid. Based on a survey conducted in 2011, Android platform holds 46.9% market share, followed by Apple and RIM. (www.gogulf.com) The market share is predicted to increase. Based on the statistics, being an Android application developer seems very promising. Yet before being Android developer, we should know more about Android, as well as how to develop an Android application, compile, publish it, and finally participate in Android programming communities available worldwide. 1.2 Scope The scope of explanation about Android application on this paper includes the following: 1.3 ● Android platform ● Android programming ● Android publishing ● Android programming community Objectives & Benefits Purpose: To provide readers with information regarding Android development including the tools needed in creating Android apps down to publishing it. Benefit: Readers will understand the how to start creating their own Android application and what to prepare in deciding to become android developers. Readers will also be able to find programming communities which will help them develop applications in long term. 1.4 Methodology Data is collected mainly by Literature Study method. Literature study is done by collecting data and information available in books, internet sources, and other media that provide information suitable with the object of research. The materials found will be used as theoretical basis. Chapter 2 LITERATURE REVIEW 1.5 Basic Theory 2.1.1 Definition of Mobile Phone Mobile phone is a device that can make and receive telephone calls over radio link while moving around a wide geographic area. It does so by connecting to a cellular network provided by a mobile phone operator, allowing access to the public telephone network. In addition to telephony, modern mobile phones also support a wide variety of other services such as text messaging, MMS, email, Internet access, short-range wireless communications (infrared, Bluetooth), business applications, gaming and photography. Mobile phones that offer these and more general computing capabilities are referred to as “Smartphone”. 2.1.2 Definition of Operating System Operating system (OS) is a collection of software that manages computer hardware resources and provides common services for computer programs. The operating system is an essential component of the system software in a computer system. Application programs usually require an operating system to function. 2.1.3 Definition of Mobile Operating System Mobile operating system (MOS), is an operating system that operates a smartphone, tablet, PDA, or other mobile device. Modern mobile operating systems combine the features of a personal computer operating system with other features, including a touchscreen, cellular, Bluetooth, Wifi, GPS mobile navigation, camera, etc. Mobile devices with mobile communications capabilities (example: smartphone) contain two mobiles operating systems. The main user-facing software platform is supplemented by a second low-level proprietary real-time operating system which operates the radio and the other hardware. Research has shown that these low-level systems may contain a range of security vulnerabilities permitting malicious base stations to gain high levels of control over the mobile device. Common software platforms (operating system platform): Android, BSD, iOS, Linux, OS X, QNX, Microsoft Windows, Windows Phone, IBM, z/OS, Symbian. 2.1.4 About Google Google is an American multinational corporation specializing in internetrelated services and products. These include search, cloud computing, software, and online advertising, technologies. The company leads the development of the Android mobile operating system and the browser-only Chrome OS for netbook known as ChromeBook. Google has moved increasingly into communications hardware, it partners with major electronics manufacturers in production of its high-end Nexus device and acquired Motorola Mobility. A fiber-optic infrastructure was installed to facilitate a Google Fiber broadband service. 2.1.5 Definition of Android Android is a mobile operating system based on the Linux kernel, and primarily designed for touchscreen mobile devices such as smartphones and tablet computers. It is initially developed by Android, Inc. and later acquired by Google Inc., and its first release was presented in 2007. Android is installed on many different mobile devices and its user can download Android apps and other content through Google Play service, which replaced the old Android Market. 2.1.6 Android and Its Existence Google claims that Android “powers millions of phones, tablets and other devices.” Phones and tablets are mobile devices that can have Android applications installed on them. These applications are written in Java programming language and they are called mobile device applications or apps. Development techniques for apps are structured sets of Java code focused on implementing particular task that provides content for a mobile device application. Although Java programming language includes a broad variety of topics, this thesis focuses on development techniques required for successful implementation of Android Mobile EMU Portal. The following paragraphs analyze research efforts that addressed these techniques in the past. 2.1.7 Definition of Programming Language Programming Language is an artificial language designed to communicate instructions to a machine, particularly a computer. Programming languages can be used to create programs that control the behavior of a machine and / or to express algorithms. The earliest programming languages preceded the invention of the computer. Android OS is based on the Linux kernel, which is written on the C programming language. Java is a computer programming language that is concurrent, class-based, object-oriented, and specifically designed to have as few implementation dependencies as possible. It is intended to let application developers “write once, run anywhere”, which means that code runs on one platform does not need to be recompiled to run on another. Java applications are typically compiled to bytecode that can run on any java virtual machine (JVM) regardless of computer architecture. C is general-purpose programming language that has been used for develop many applications. C has facilities for structured programming, while a static type system prevents many unintended operations. C++ is general-purpose programming language that is free-form and compiled. It is regarded as an intermediate-level language, as it comprises both high-level and low-level language features. It provides imperative, object-oriented, and generic programming features. C++ is one of the most popular programming languages and is implemented on a wide variety of hardware and operating system platforms. 2.1.8 Android Fundamentals Many authors described Android application development fundamentals, which include setting up, activities, intents, and XML layouts. Three major components of an android development environment: Java, Eclipse, Android. To configure the machine, Java JDK, Android SDK, Eclipse IDE, and Android IDT need to be installed as well. Other author; Abelson, King, and Sen present “four primary components of Android applications: Activity, Service, Broadcast reviewer, and Content Provider. It is noted that a particular android application might not contain all of these elements, but will have at least one of these elements. Activity displays a UI and responds to system and user initiated events, it is used frequently for android applications. These activities are declared in AndroidManifest.xml file, which provides the foundation for any android applications. Activities present their views through XML layouts and “communicate” with each other through Intents. Clear understanding of these concepts and Java programming language is a prerequisite to start implementing the development techniques used in Android applications. Chapter 3 DISCUSSION 3.1 IDE IDE stands for Integrated Development Environment. IDE brings together Java, the Android SDK, and the Android Android Development Tools (ADT) and provides tools for you to write Android programs. Eclipse is a general-purpose technology platform. It has been applied to a variety of uses in creating IDEs for multiple languages and in creating customized IDEs for many specialized SDKs, as well as to uses outside of software development tools, such as providing a Rich Client Platform (RCP) for Lotus Notes and a few other applications. Eclipse is usually used as an IDE for writing, testing, and debugging software, especially Java software. There are also several derivative IDEs and SDKs for various kinds of Java software development based on Eclipse. In this case, you will take a widely used Eclipse package and add a plug-in to it to make it usable for Android software development. An Eclipse “package” is a ready-made collection of Eclipse modules that make Eclipse better suited for certain kinds of software development. The System Requirements article on the Android Developers site lists three choices of Eclipse packages as a basis for an Eclipse installation for Android software development: • Eclipse Classic (for Eclipse 3.5 or later) • Eclipse IDE for Java Developers • Eclipse for RCP/Plug-in Developers Any of these will work, though unless you are also developing Eclipse plug-ins, choosing either Classic or the Java Developers package (EE or Standard) makes the most sense. 3.2 Framework Android Framework The Android framework was developed with various features. These features were pulled from numerous open source projects. The output of these projects resulted in these elements: ● The Android runtime: The Android runtime is composed of Java core libraries and the Dalvik virtual machine. ● Open GL (graphics library): This cross-language, cross-platform application program interface (API) is used to produce 2D and 3D computer graphics. ● WebKit: This open source web browser engine provides the functionality to display web content and to simplify page loading. ● SQLite: This open source relational database engine is designed to be embedded in devices. ● Media frameworks: These libraries allow you to play and record audio and video. ● Secure Sockets Layer (SSL): These libraries are responsible for Internet security. Application framework The Android team has built on a known set of proven libraries, built in the background, and has given them to you, all exposed through Android interfaces. These interfaces wrapped up the various libraries and made them useful to the Android platform and to you as a developer. You benefit from these features because you don’t have to build any of the functionality they provide: ✓ Activity manager: Manages the activity lifecycle. ✓ Telephony manager: Provides access to telephony services as well as to certain subscriber information, such as phone numbers. ✓ View system: Handles the views and layouts that make up your user interface (UI). ✓ Location manager: Finds the device’s geographic location. 3.3 Programming Android is already the most widely used way of creating interactive clients using the Java language. Although there have been several other user interface class libraries for Java (AWT, SWT, Swing, J2ME Canvas, etc.), none of them have been as widely accepted as Android. For any Java programmer, the Android UI is worth learning just to understand what the future of Java UIs might look like. Android uses the XML language as well as basic Apache Ant scripting for build processes. What we’ll need to install first before doing programming are : ● Java JDK: Lays the foundation for the Android SDK. ● Android SDK: Provides access to Android libraries and allows you to develop for Android. ● Eclipse IDE (integrated development environment): Brings together Java, the Android SDK, and the Android Android Development Tools (ADT) and provides tools for you to write Android programs. ● Android ADT: Does a lot of the grunt work for you, such as creating the files and structure required for an Android app. The Android environment adds yet another GUI toolkit to the Java ecosystem, joining AWT, Swing, SWT, LWUIT, and others. If you have worked with any of these, the Android UI framework will look familiar. Like them, it is single-threaded, event-driven, and built on a library of nestable components. The Android UI framework is, like other Java UI frameworks, organized around the common Model-View-Controller pattern . 3.3 How the Apps Built and Compiled In order for the application to be run in the devices or emulator, the sources and resources will be compiled, converted to run on the Android VM, and then packaged up in an apk file. Below is the detail of the processes. 1. Resource Pre-compilation Involves generation of Java source files from the Android resources. The resources(icons, layouts, strings, etc.) will be stored in the res subdirectory. These will then be compiled using the aapt tool into a file named R.java, stored in the gen subdirectory. 2. Service Interface Pre-compilation If the app uses any service interfaces, the service interface definition files(has .aidl extensions) have to be included. The aidl tool is used to generate actual Java interfaces for these services. The Java source files will have the same name as the input files (.aidl extension will be replaced by .java) and are created in the gen/ subdirectory. 3. Java Compilation After two pre-compilation steps, the app project Java code is complete itself. The Java compilation is the standard .java compilation source files into a .class bytecode files, stored in the bin/classes subdirectory. The difference is the classpath used to compile the sources which includes: ● The android.jar file for the application Android platform, ● External library jars that has been added, ● and the class files and external libraries for tested project. 4. Bytecode Translation As the Java compilation finished, the app may now run on a standard Java VM. But in order to run on Android, which is using its own Dalvik VM, the class files compiled will then be translated into Dalvik executable files(.dex). All classes will be packaged into a single output file (named classes.dex) which is produced in the bin/ directory. 5. Resource Packaging Using the same aapt tool that generates Java source corresponding to the resources, the resources are compiled into a partial Android package files. The resource package created named after the app name with an ap_ suffix in the bin directory. 6. Debug Packaging and Signing All components required are now ready to be bundled up into an apk file. In the default debug mode, this step also includes signing package with a debug key. The Android packages are assembled with the apkbuilder tool which take input from: ● The Dalvik executable file, ● All non-Java resources from the app source directory, ● All non-Java resources from the external libraries, ● Any native code shared-libraries included, ● The resource packages built in the previous step. 7. Alignment For the final optimization step, package file is aligned using the zipalign tool. This step ensures the resources in the package file are aligned on 4-byte word boundaries, allowing the Dalvik VM to memory-map those parts of the file for access efficiency. This step will take the unaligned package as input and produces bin/appname.apk where the app is now ready to be installed. 3.4 Android Apps Publishing To publish the application made by the users/developers, they must firstly be registered as a Google Play Publisher. They must also set up a Wallet Merchant Account if they intend to sell their applications in the Google Play Store. Below is the detail in order to publish an application to the market. Register Google Play Developer Console 1. Visit the Google Play Developer Console (https://play.google.com/apps/publish/). In order to access the site, users/developers must be registered and logged in the Google account. 2. Enter their basic information – developer name, email address, etc. The information submitted can later be changed. 3. After that users must agree to the Developer Distribution Agreement that applies to the developers based on their country or region. The apps and store listings published on Google Play must comply with the Developer Program Policies and the US export law. 4. Pay a $25 USD registration fee using Google Wallet. If the user/developer doesn’t have a Google Wallet Account, they can set one up during the process. Developer Console After successfully registered and the account is verified, developers can sign in to the Google Play Developer Console. There they can use the tools for app publishing. Below is some of key areas can be accessed on the Developer Console. ● Account Details Where developers can specify basic information about themselves. It helps to identify developers to Google Play and their customers. It contains the details of your profile such as name, contact information, website url, etc. They can also be used to register for merchant account, set up a test accounts for Google Play licensing, etc. ● User Account Developers can set up multiple user account to access their own account so the other developers may access to its account. This can be used to create a team for the application publisher. ● Merchant Account Helps to link between developers merchant account and it’s profile. Merchant account is used for financial and tax identification and monthly payouts of sales. ● Store Listing Where developers can set how the application on store will be seen by uploaded screenshots, videos highlights to highlights the feature of the app, descriptions, etc.to be seen by public. ● Uploading and publishing Where developers can upload the ready-published APK, and published to the market. The app that has been published can be unpublished in this area. ● Distribution Control This Area will help developer to determine where the application to be distributed to and for some countries, even the carriers target. ● Selling and Pricing Help the developer to set price to the application that is going to be published. The price can either be free or priced. The app published free must remain free, while the app that has been priced can be later set free. Developer can separately set the price for priced apps, inapp purchases, and subscription fee. ● In-App Billing Helps developers to monetize their apps in more ways by selling in-app purchases or subscriptions. In-app purchases are one-time purchases, while subscriptions are recurring charges on an monthly or annual basis. ● User Review and Report Shows the statistic on the app install performance. The carts might highlight the installations peek and longer-term trends that can be used for developers to analyze how the user behave in the future and can be used for the app development based on the reviews. 3.5 Android Community In developing Android, Android programmers also have communities to help each others. It is because Android is an extremely large project with many components, they have many discussion forums, each focusing on a different topic. These community can be used for developers for troubleshooting and helps them to find technical information about how the application should be built and structured. Here are some of the web that provides the community for developers where they can get technical information about developing android apps. www.xda-developers.com https://plus.google.com/communities/105153134372062985968 http://www.androidhive.info/ https://source.android.com/source/community/index.html https://developer.android.com/ Chapter 4 CONCLUSION Android is operating system (mostly being used in mobile phone) based on Linux Kernel. Android is easy to use, not really expensive, and spread around the world. Android is a much more diverse operating system than iOS and windows phone mobile. Android has grown rapidly over the past 4 years becoming the most used smartphone (operating system) in the world. Android needs IDE (Integrated Development Environment) which brings together Java, the Android SDK, and the Android Android Development Tools (ADT) and provides tools for you to write Android programs. Android is a component-based architecture inspired by Internet mash-ups. Parts of one application can be used in another ways not originally envisioned by the developer. This will unleash a new round of creativity in the mobile space. Android is open to all Participating in many of the successful open source projects Aims to be as easy to build In order to do the apps publising, we need to register at Google Play Developer Console first. REFERENCES Burton, Michael & Felker, Donn (2011). AndroidTM Application Development For Dummies®. John Wiley & Sons, Inc. New Jersey. 2nd Edition Mednieks, Zigurd. (2011). Programming Android. O’ Reilly. Sebastopol. (1st edition) www.developer.android.com www.digitalbuzzblog.com/infographic-2013-mobile-growth-statistics www.go-gulf.com www.statista.com www.wikipedia.com CURRICULUM VITAE Name : Erlien Felicia Vania Birthplace and date : Bekasi – October 7, 1993 Gender : Female Address : Villa Tangerang Regensi II, Blok AD I No. 9, Tangerang. Phone Number Email : +62 819 0988 7979 : [email protected] Education 1999 – 2005 : SD Tarsisius Vireta, Tangerang 2005 – 2008 : SMP Tarsisius Vireta, Tangerang 2008 – 2011 : SMA Tarsisius Vireta, Tangerang 2011 – Present : Universitas Bina Nusantara, Jakarta Working Experience 2012 : Kakao XPlore Registration staff Organizational Experience 2013-present : Chief Operating Officer, Bina Nusantara Computer Club 2012-2013 : External Event Organizer, Bina Nusantara Computer Club 2011-2012 : Activist, Bina Nusantara Computer Club CURRICULUM VITAE Name : Febrian Jiuwira Place, Date of Birth : Jakarta, 5 February 1993 Gender : Male Address : Jl. Utama Selatan VII no. 34A Phone Number : 081316016831 Education : – 2011 – Present – 2010 – 2011 – 2008 – 2009 – 2005 – 2008 Organizational Experience : Binus University, Information System : PKBM Karya Ummat : SMAN 84 Jakarta : SMAN 45 Jakarta : – Binus University Software Lab Center o Period : 2013 - Now o Position : Teaching Assistant CURRICULUM VITAE Name : Beny Nofendra Place, Date of Birth : Jakarta, 17 February 1992 Gender : Male Address : Komplek Pesona Khayangan Blok cc No. 08, Depok Phone Number Formal Education : 089601020666 : 1998 – 2004 : SD Strada Wiyatasana 2004 – 2007 : SMP Strada Marga Mulia 2007 – 2010 : SMA Mardi Yuana 2010 – Present : Universitas Bina Nusantara Non Formal Education 2006 - 2009 : : International Language Programs CURRICULUM VITAE Name : Ragnar Kumara Birthplace and date : Jakarta–June 19, 1993 Gender Address Phone Number Email : Male : Jl. Bekasi Timur VIII / 4B, Jakarta 13350 : 081574577162 : [email protected] Education 1999 – 2005 : SD Santa Maria Fatima 2005 – 2008 : SMP Santo Vincentius 2008 – 2011 : SMA Fons Vitae I Marsudirini 2011 – Present : Universitas Bina Nusantara Working Experience 2011 : IT staff, PT Indokemika Jayatama (Internship) 2011 - 2012 : Junior Programmer, IT Directorate of BINUS 2013 : Committee member, BINUS Job Expo 2013 Organizational Experience 2011-2012 : IT Directorate of BINUS 2013 : BINUS Job Expo Committee CURRICULUM VITAE Name : Billy Bernando Place, Date of Birth : Jambi, 4 September 1993 Gender : Male Address : Jl. K.H. Syahdan Gang Keluarga No. 39D Phone Number Education : 085266694519 : 1999 – 2005 : SD Xaverius 2, Jambi 2005 – 2008 : SMP Xaverius 1, Jambi 2008 – 2011 : SMA Xaverius 1, Jambi 2011 – Present : Universitas Bina Nusantara, Jakarta