This document provides an overview of the UCSCS30200 Android Programming course, including details about units, topics covered, and credits. It then provides background information on Android, including what Android is, why it was developed, its features, applications, history, architecture, challenges in development, and building for different screen sizes and devices.
This document provides an overview of the UCSCS30200 Android Programming course, including details about units, topics covered, and credits. It then provides background information on Android, including what Android is, why it was developed, its features, applications, history, architecture, challenges in development, and building for different screen sizes and devices.
This document provides an overview of the UCSCS30200 Android Programming course, including details about units, topics covered, and credits. It then provides background information on Android, including what Android is, why it was developed, its features, applications, history, architecture, challenges in development, and building for different screen sizes and devices.
This document provides an overview of the UCSCS30200 Android Programming course, including details about units, topics covered, and credits. It then provides background information on Android, including what Android is, why it was developed, its features, applications, history, architecture, challenges in development, and building for different screen sizes and devices.
Download as PPTX, PDF, TXT or read online from Scribd
Download as pptx, pdf, or txt
You are on page 1of 20
UCSCS30200 :Android Programming
Credits: 3 IA: 30 Marks
Contact Hrs (L:T:P): 3 (2:0:1) End Exam: 45 Marks Unit 1 (15 hrs) Introduction to Android, Create Your First Android App, Layouts, Views and Resources, Text and Scrolling Views, Build your first app, Activities, Testing, debugging and using support libraries.Understanding Activities and Intents, The Activity Lifecycle and ManagingState Activities and Implicit Intents. What is Android? • Android is an open source and Linux-based Operating System for mobile devices such as smartphones and tablet computers. • Android was developed by the Open Handset Alliance, led by Google, and other companies. • Android offers a unified approach to application development for mobile devices which means it can run on many different devices from many different manufacturers. • Android includes a software development kit for writing original code and assembling software modules to create apps for Android users. • It also provides a marketplace to distribute apps. • All together, Android represents an ecosystem for mobile apps. Why Android ? Features of Android • Android is a powerful operating system competing with Apple 4GS and supports great features. Few of them are listed below − Beautiful UI • Android OS basic screen provides a beautiful and intuitive user interface. Storage • SQLite, a lightweight relational database, is used for data storage purposes. Media support • MP3, JPEG, PNG, GIF, and BMP. Messaging • SMS and MMS Connectivity • GSM/EDGE,Bluetooth, Wi-Fi, LTE, NFC and WiMAX. Multi-touch • Android has native support for multi-touch which was initially made available in handsets such as the HTC Hero. Multi-tasking • User can jump from one task to another and same time various application can run simultaneously. Resizable widgets • Widgets are resizable, so users can expand them to show more content or shrink them to save space. Multi-Language • Supports single direction and bi-directional text. Wi-Fi Direct • A technology that lets apps discover and pair directly, over a high- bandwidth peer-to-peer connection. Android Beam • A popular NFC-based technology that lets users instantly share, just by touching two NFC-enabled phones together. Android Applications • Android applications are usually developed in the Java language using the Android Software Development Kit. • Once developed, Android applications can be packaged easily and sold out either through a store such as Google Play, Opera Mobile Store and the Amazon Appstore. • Android powers hundreds of millions of mobile devices in more than 190 countries around the world. • It's the largest installed base of any mobile platform and growing fast. Every day more than 1 million new Android devices are activated worldwide. Categories of Android applications • There are many android applications in the market. The top categories are − History of Android • Initially, Andy Rubin founded Android Incorporation in Palo Alto, California, United States in October, 2003. • On 17th August 2005, Google acquired android Incorporation. Since then, it is in the subsidiary of Google Incorporation. • The key employees of Android Incorporation are Andy Rubin, Rich Miner, Chris White and Nick Sears. • Originally intended for camera but shifted to smart phones later because of low market for camera only. • Android is the nick name of Andy Rubin given by coworkers because of his love to robots. • In 2007, Google announces the development of android OS. • In 2008, HTC launched the first android mobile. • The code names of android ranges from A to N currently, such as Aestro, Blender, Cupcake, Donut, Eclair, Froyo, Gingerbread, Honeycomb, Ice Cream Sandwitch, Jelly Bean, KitKat, Lollipop and Marshmallow. Fig: Android versions What is API level? • API Level is an integer value that uniquely identifies the framework API revision offered by a version of the Android platform. • Refer the doc file. • Android Architecture
Fig: Android Architecture
Apps Your apps live at this level, along with core system apps for email, SMS messaging, calendars, Internet browsing, or contacts. Java API Framework: • All features of Android are available to developers through application programming interfaces (APIs) written in the Java language. You don't need to know the details of all of the APIs to learn how to develop Android apps, but you can learn more about the following APIs, which are useful for creating apps: • View System: used to build an app's UI, including lists, buttons, and menus. • Resource Manager: used to access to non-code resources such as localized strings, graphics, and layout files. • Notification Manager: used to display custom alerts in the status bar. • Activity Manager: that manages the lifecycle of apps. • Content Providers: that enable apps to access data from other apps. • All framework APIs that Android system apps use. Libraries and Android Runtime • It is a set of libraries including open-source Web browser engine WebKit, well known library libc, SQLite database which is a useful repository for storage and sharing of application data, libraries to play and record audio and video, SSL libraries responsible for Internet security etc. • Andriod runtime provides a key component called Dalvik Virtual Machine which is a kind of Java Virtual Machine specially designed and optimized for Android. • The Dalvik VM makes use of Linux core features like memory management and multi-threading. • The Dalvik VM enables every Android application to run in its own process, with its own instance of the Dalvik virtual machine. Hardware Abstraction Layer (HAL): • This layer provides standard interfaces that expose device hardware capabilities to the higher-level Java API framework. • The HAL consists of multiple library modules, each of which implements an interface for a specific type of hardware component, such as the camera or Bluetooth module. Linux Kernel • The foundation of the Android platform is the Linux kernel. The above layers rely on the Linux kernel for underlying functionalities such as threading and low-level memory management. • Using a Linux kernel enables Android to take advantage of key security features and allows device manufacturers to develop hardware drivers for a well known kernel. The challenges of Android app development While the Android platform provide rich functionality for app development, there are still a number of challenges you need to address, such as: • Building for a multi-screen world • Getting performance right • Keeping your code and your users secure • Remaining compatible with older platform versions • Understanding the market and the user. Building for a multi-screen world • Android runs on billions of handheld devices around the world, and supports various form factors including wearable devices and televisions. • Devices can come in different sizes and shapes that affect the screen designs for UI elements in your apps. • In addition, device manufacturers may add their own UI elements, styles, and colors to differentiate their products. • Each manufacturer offers different features with respect to keyboard forms, screen size, or camera buttons. • An app running on one device may look a bit different on another. • The challenge for many developers is to design UI elements that can work on all devices. • It is also the developer’s responsibility to provide an app’s resources such as icons, logos, other graphics, and text styles to maintain uniformity of appearance across different devices. Maximizing app performance • An app's performance—how fast it runs, how easily it connects to the network, and how well it manages battery and memory usage—is affected by factors such as battery life, multimedia content, and Internet access. • We must be aware of these limitations and write code in such a way that the resource utilization is balanced and distributed optimally. • For example, you will have to balance the background services by enabling them only when necessary; this will save battery life of the user’s device. Keeping your code and your users secure • You need to take precautions to secure your code and the user’s experience when using your app. Use tools such as ProGuard (provided in Android Studio), which detects and removes unused classes, fields, methods, and attributes, and encrypt all of your app's code and resources while packaging the app. • To protect your user's critical information such as logins and passwords, you must secure the communication channel to protect data in transit (across the Internet) as well as data at rest (on the device). Remaining compatible with older platform versions • Consider how to add new Android platform version features to an app, while ensuring that the app can still run on devices with older platform versions. • It is impractical to focus only on the most recent Android version, as not all users may have upgraded or may be able to upgrade their devices.
Android Programming Made Easy For Beginners: Tutorial Book For Android Designers * New 2013 : Updated Android Programming And Development Tutorial Guide