Introduction to Android Platform.pdf
Document Details
Uploaded by LongLastingPetra
Full Transcript
Overview of Mobile Development Unit 1 CC17 Mobile Application Design and Development 1. Native Development Native development involves building separate applications for iOS and Android using their respective programming languages. Java or Kotlin with Android S...
Overview of Mobile Development Unit 1 CC17 Mobile Application Design and Development 1. Native Development Native development involves building separate applications for iOS and Android using their respective programming languages. Java or Kotlin with Android Studio. Swift or Objective-C with Xcode 1. Native Development Advantages: High Performance: optimized for the specific platform. Access to Platform-Specific Features: can use all the latest features of the platform. Better UI/UX: Native apps adhere to the specific design guidelines and standards of the platform. Disadvantages: Higher Cost and Development Time Maintenance Challenges 2. Cross-Platform Development Cross-platform development refers to the process of creating software applications that can run on multiple operating systems or platforms using a single codebase. This approach allows developers to write the code once and deploy it across different environments. 2. Cross-Platform Development Advantages: Cost-Effective: can write code once and deploy it on multiple platforms Faster Development: shared code -> faster iteration Consistency: having a single codebase makes it easier to maintain Disadvantages: Performance issues: they run on a virtual machine or use a bridge to interact with the platform. Limited Access to Features: limitations in accessing certain platform- specific features or APIs User Experience: The user experience might not be as seamless or optimized as native apps, as they may not fully align with each platform’s design guidelines. Introduction to the Android Platform Unit 1 CC17 Mobile Application Design and Development Table of Contents Hello, Android! Android architecture Mobile development lifecycle Android Versions Android vs. Other Mobile Platforms Android Development Environment Hello, Android! What is the Android platform? | Advantages of using Android platform | Android platform versions What is the Android Platform? Operating system for mobile devices (smartphones, tablet computers) Linux-based operating system Started as an advanced OS for digital cameras Unveiled in 2007 by the Open Handset Alliance Currently under the flagship of Google What is the Android Platform? Operating system for mobile devices (smartphones, tablet computers) Dominant share of the mobile market 74.85% as of April 2019 Supported by several smartphone manufacturers Sony Samsung HTC Android applications are coded in: Java or Kotlin - functionalities eXtensible Markup Language (XML) - skeleton / structure Why Android? Rich Development Open Source Environment Larger Developer Higher Success and Community Ratio Reach Reduced Cost of Increased Marketing Development Inter App Integration Why Android? Open Source Resources are freely available and may be redistributed and modified Larger Developer and Community Reach According to BusinessOfApps.com, in 2016, there were 12 million mobile app developers worldwide and more than half are Android developers Increased Marketing 85.9% market share as of September 2018 Why Android? Inter App Integration Allows app to app interaction or dependencies (e.g. you may use your Facebook or Google account when creating an account in other applications) Reduced Cost of Development When making your own application, you may spend as low as $25 as a one-time payment for the use of Google Play Why Android? Higher Success Ratio Software Applications Development has one of the best job projections for the next decade with a growth rate of 18.8%. According to these employment projections, there will be 135,300 new positions for App developers by the year 2024. Rich Development Environment Being open-source, the community of developers continuously contribute to the body of knowledge Why Android? Global Partnerships and Large Installed Base Worldwide partners: Smartphone manufacturers Telecommunication companies Used by smartphones and devices connected to IoT Open documentation https://developer.android. com/docs Why Android? Powerful Development Framework Open-source OS and reduced cost of development Can use multiple programming languages and IDEs Can be used by multiple devices Consistent updates to keep up with the latest trends Why Android? Open Marketplace for Distributing Apps Easily turned into an Android Package (APK) No need for extra requirements (unlike iOS) To be sold in multiple stores: Google Play Opera Mobile Store Amazon Appstore Features of the Android Platform Intuitive user interface Multi-touch capabilities Multi-tasking capabilities Multi-language Resizable widgets Provides SMS and MMS messaging Provides multiple media support and encoding capabilities Features of the Android Platform Supports web browsers HTML5 CSS3 Has multiple connectivity options GSM/EDGE Bluetooth Wi-Fi LTE Has lighter storage capacity SQLite JSON JQuery Features of the Android Platform Messaging SMS and MMS 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. ACTIVITY: Research on Different Android Versions Objective: To understand the evolution of Android operating system versions by examining their features, release dates, and codenames. Instructions: 1. Research: Investigate the different versions of the Android operating system. For each version, gather the following information: 1. Version Number 2. Codename 3. Release Date 4. Features 2. Use a tabular format to present your findings and save the document in a Word file. Name the document in the following format: “LASTNAME, FIRSTNAME-ACT-1”. 3. Site your references - Use reliable sources for your research Android Versions 1.0 -1.5 Cupcake 5.0 Lollipop 1.6 Donut 6.0 Marshmallow 2.0 - 2.1 Éclair 2.2 Froyo 7.0 Nougat 2.3 Gingerbread 8.0 Oreo 3.0 Honeycomb 9.0 Pie 4.0 Ice Cream Android 10 Android 11 Sandwich Android 12 Android 12L 4.1 - 4.3 Jellybean 4.4 KitKat Android 13 Android 14 Android 15 Android Development A software stack for mobile devices: OS kernel, system libraries, application frameworks & key apps Android SDK for creating apps Libraries & development tools Lots of documentation. Start browsing today! See: http://developer.android.com/ Android Architecture Linux kernel | Libraries | Android runtime | Application framework | Applications Android Architecture Linux Kernel Libraries Android Runtime Application Framework Applications Linux Kernel Bottommost layer Heart of the architecture Serves as abstraction layer between the hardware and software Types of services: Standard Android-specific Linux Kernel Standard Services Android-Specific Services Security Power management Memory and process Android shared memory management Low memory killer File and network input / Interprocess output communication Device drivers And much more Libraries C++ / C core libraries and Java-based libraries Provides support for Android development Libraries Core Android Libraries: Media framework - playing and recording audio and video formats Surface manager - display management SGL and OpenGL Graphics - 2D and 3D graphics SQLite - database support FreeType - font support WebKit - web browser support SSL - Internet security Android Runtime Engine that powers applications and libraries Forms the application framework Components: Dalvik Virtual Machine (DVM) Core libraries Android Runtime Dalvik Virtual Machine Core Libraries Designed for resource- Implements Android constrained applications using Java environments programming language Features: Libraries: Basic Java classes(java.*, Slower CPU javax.*) Less RAM App lifecycle (android.*) Limited battery life Internet / Web services (org. *) Unit testing (junit.*) Android Runtime Typical Workflow Typical Step 1Workflow Step 2 Step 3 Step 4 App written in Compiled to DX converts Dalvik Java (.java) or Java/Kotlin Java/Kotlin executes dex Kotlin (.kt) bytecode files bytecode files bytecode file to a single DEX bytecode file (classes.dex) Application Framework Provides classes used to create Android application Generic abstraction for hardware access Manages user interface and application resources Application Framework API Interfaces Activity manager - app life cycle and navigation stack Package manager - tracking app packages on device Window manager - monitor windows comprising an app View system - common user interface elements Resource manager - non-compiled resources (strings, layouts) Content provider - enables data sharing Applications Topmost layer of the architecture Runs within the Android runtime using classes and services available on the bottom layer Includes native and third-party applications Mobile Development Lifecycle Concept / idea | Requirements analysis | Functional design | Multi- platform development | Cross-device testing | Release | User acceptance testing implementation | Publish to market Mobile Development Lifecycle Based from the systems development life cycle Meant for mobile development, especially for cross-platform development (i.e. both Android and iOS, Android phone and Android Watch) Mobile Development Lifecycle Concept / idea Requirements analysis Functional design Multi-platform development Cross-device testing Release User acceptance testing (UAT) implementation Publish to market Concept / Idea Empathize Identification of the problem Identification of possible solutions Not meant to identify features or Define details about the mobile application Ideate Possible tasks: Preliminary research Design thinking methodologies Exploration and observation Prototype Interview and survey Test Requirements Analysis Identification of the requirements for the application Functional (feature) - tasks based on business rules Nonfunctional (constraint) - attributes of a system that ensures its effectiveness Pseudo - specifically imposed by the client Analysis of the requirements Requirements are turned into object models Produce a model of the mobile application Must be correct, complete, consistent, unambiguous, realistic, and verifiable Functional Design Identify design goals of the mobile application Analysis of nonfunctional requirements Guides the decisions to be made if tradeoffs are done Decompose the app into workable subsystems Creation of predefined operating environments Identification of maintainability through modularity Bridge analysis with hardware and software requirements Identification of minimum hardware requirements Identification of usable, existing frameworks Multi-Platform Development Development of the mobile application based on the functional design Consider multi-platform Portrait v. landscape design Different screen sizes Android, iOS, etc. For this course, the focus will only be for Android development Cross-Device Testing Testing for the mobile application Unit, component, integration, systems, performance Security, web-based Fault avoidance and fault tolerance Testing in multiple: Screen sizes Operating systems Offline v. online capabilities Release Creation of the final Android Package (APK) file Focuses on initial release, meant for testing Alpha release - release to users with the environment of the organization Beta release - release to users on their own environment Includes creation of the documentation and reports where bugs and errors can be reported Ensure to correct any appropriate bugs and errors created User Acceptance Testing (UAT) AKA usability testing Testing how easy a design is to use with users Involves repeated observation of users completing tasks through different types of designs Consider the results to include any improvements Publish to Market Release of the final version of the market after: Addressing the errors Analyzing and incorporating comments from the UAT Adding further improvements Creates the “stable” version of the mobile application