Transcript
Android Development
EXPERTS TRAINING & SOLUTIONS
About Me!
Abdullah Rizwan
BS(CS)
Computer programming since 1998 (15 Years of experience)
Worked in Ericsson (Sweden), BHP Billiton (Australia), NADRA, EXPERTS
Many Local & International Projects
Visits many countries
A lovely wife and three cute kids
Email: arizwan@expertspk.com
Cell: +92(321)6694784
Facebook: arizwanEXP
EXPERTS Training & Solutions
Founded in 2001 (A pioneer IT institute) by Irfan Zafar
Private Limited in 2008
Two campus in Faisalabad {Satiana Road & Raja Road, Gulistan Colony}
One Office in Lahore Johar Town
Foreign Offices, Global Presence.
Microsoft IT Academy
Cisco Network Academy
Certiport Testing Center
Prometric Testing Center
Why Mobile App Development?
The fact that we can!
Mobile platform is the platform of the future
Double-digit growth in world-wide smartphone ownership
Job market is hot
Market for mobile software surges from $4.1 billion in 2009 to $17.5 billion by 2012
2010 Dice.com survey: 72% of recruiters looking for iPhone app developers, 60% for Android
Dice.com: mobile app developers made $85,000 in 2010 and salaries expected to rise
Students (and faculty!) are naturally interested!
Mobile Applications
What are they?
Any application that runs on a mobile device
Types
Web apps: run in a web browser
HTML, JavaScript, Flash, server-side components, etc.
Native: compiled binaries for the device
Often make use of web services
Mobile Devices: Advantages
Always with the user
Typically have Internet access
Typically GPS enabled
Typically have accelerometer & compass
Most have cameras & microphones
Many apps are free or low-cost
Interesting Advantages
Mobile Devices: Disadvantages
Limited screen size
Limited battery life
Limited processor speed
Limited and sometimes slow network access
Limited or awkward input: soft keyboard, phone keypad, touch screen, or stylus
Limited web browser functionality
Range of platforms & configurations across devices
What is Android?
Android is a Linux-based operating system
Designed for touchscreen mobile devices i.e. smartphones and tablet computers.
Initially developed by Android, Inc.
Android is open source and Google releases the code under the Apache License.
Apps written primarily in a customized version of the Java programming language
It has seen additional applications on laptops, netbooks, smartbooks, smart TVs (Google TV), cameras, smart glasses (Google Glass), wristwatches, headphones, car CD/DVD players, mirrors, portable media players, landlines, Voice over IP phones, Videogames console, Android@Home, microwave ovens and other electronics.
What is Android?
A software stack for mobile devices that includes An operating system Middleware Key Applications
Uses Linux to provide core system services Security Memory management Process management Power management Hardware drivers
http://www.android.com/whatsnew/
Market Share
Second quarter 2009: 2.8%
Forth quarter 2010: 33%
Third quarter 2011: 52.5%
Third quarter of 2012: 75% Activation 750 million devices
1.5 million activations per day.
October 2012: Total Apps in Google Play ~700,000
Downloads from Google Play ~25 billion.
May 2013 Activation 900 million devices
Downloads from Google Play ~48 billion.
Apple vs. Google
Open Handset Alliance
80+ technology companies
Commitment to openness, shared vision, and concrete plans
Compare with Mac/PC battles
Similar (many PC manufacturers, one Apple)
Different (Microsoft sells Windows, Google gives away Android)
History
Android, Inc. was founded in Palo Alto, California in October 2003 by Andy Rubin, Rich Miner, Nick Sears and Chris White
"smarter mobile devices that are more aware of its owner's location and preferences"
Bought by Google in 2005
In September 2007 Google had filed several patent applications in the area of mobile telephony
November 5, 2007: Open Handset Alliance: a consortium of hardware, software, and telecommunication companies devoted to advancing open standards for mobile devices. 84 Members starting from 34 members and Android was unveiled.
The first commercially available phone to run Android was the HTC Dream, released on October 22, 2008
Versioning
Each major release is named in alphabetical order after a dessert or sugary treat; for example, version 1.5 Cupcake was followed by 1.6 Donut. The latest release is 4.2 Jelly Bean.
Google provides major updates, incremental in nature, to Android every six to nine months.
The lack of after-sale support from manufacturers and carriers has been widely criticized
CyanogenMod is the most widely used community firmware
http://socialcompare.com/en/comparison/android-versions-comparison
Version Distribution
Interface
Android's user interface is based on direct manipulation, using touch inputs that loosely correspond to real-world actions, like swiping, tapping, pinching and reverse pinching
Internal hardware such as accelerometers, gyroscopes and proximity sensors, can be used
Android homescreens are typically made up of app icons and widgets
The top of the screen is a status bar, showing information about the device and its connectivity, notification area
Applications
Google Play Store
Amazon App Store
.apk files
Many third party App Stores
Linux Android based on Linux kernel version 2.6 ; Android 4.0 Ice Cream Sandwich on version
3.x
Middleware, libraries and APIs written in C
Application software running on Java-compatible libraries based on Apache Harmony.
Android uses the Dalvik virtual machine with just-in-time compilation to run Dalvik 'dex-code' (Dalvik Executable).
Hardware platform is the ARM architecture. Support for x86 from the Android-x86 project.
Google TV uses a special x86 version of Android.
Intel processors began to appear on more mainstream Android platforms, such as phones.
Android does not have a native X Window System by default nor does it support the full set of standard GNU libraries.
Google contributed back to the Linux kernel, e.g power management feature called "wakelocks"
The flash storage on Android devices is split into several partitions, such as "/system" for the operating system itself and "/data" for user data and app installations.
No root access to the operating system and sensitive partitions such as /system are read-only.
Whether or not Android counts as a Linux distribution
Memory management
When an Android app is no longer in use, the system will automatically suspend it in memory
Suspended apps consume no resources (e.g. battery power or processing power) and sit idly in the background until needed again.
This has the dual benefit of increasing the general responsiveness of Android devices, since apps don't need to be closed and reopened from scratch each time, but also ensuring background apps don't waste power needlessly.
Android manages the apps stored in memory automatically: when memory is low, the system will begin killing apps and processes that have been inactive for a while
Security and Privacy
Android applications run in a sandbox, an isolated area of the system that does not have access to the rest of the system's resources, unless access permissions are explicitly granted by the user when the application is installed.
Google currently uses their Google Bouncer malware scanner to watch over and scan the Google Play store apps
Android version 4.2 Jelly Bean includes a malware scanner built into the system. It can scan apps installed from google play and 3rd party sources as well, and an alert system which notifies the user when an app tries to send a premium-rate text message.
Android smartphones have the ability to report the location of Wi-Fi access points
Intellectual property issues
On August 12, 2010, Oracle sued Google related to the Java. ($6.1 billion)
Android is based on Apache Harmony, an independently developed VM called Dalvik.
In May 2012, Structure of the Java APIs used by Google was not copyrightable.
Both Apple and Microsoft have sued several manufacturers for patent infringement
In October 2011, Microsoft signed patent license agreements with ten Android device manufacturers, whose products account for 55% of the worldwide revenue for Android devices. These include Samsung and HTC.
In 2011–12, Google purchased Motorola Mobility for US$12.5 billion it held more than 17,000 patents.
In December 2011, Google bought over a thousand patents from IBM.
Development
Applications are developed in the Java language using the Android software development kit (SDK). It includes development tools, such as debugger, software libraries, a handset emulator based on QEMU, documentation, sample code, and tutorials.
The officially supported integrated development environment (IDE) is Eclipse using the Android Development Tools (ADT) plugin.
Other development tools are available, including a Native Development Kit for applications or extensions in C or C++
App Inventor The application was made available through request on July 12, 2010, and released publicly on December 15, 2010. Google terminated App Inventor on December 31, 2011. The MIT Center for Mobile Learning is now supporting it under the name "MIT App Inventor".
Development Process
Android Apps
Built using Java and new SDK libraries
No support for some Java libraries like Swing & AWT
Oracle currently suing Google over use
Java code compiled into Dalvik byte code (.dex)
Optimized for mobile devices (better memory management, battery utilization, etc.)
Dalvik VM runs .dex files
Build & Run
ADB is a client server program that connects clients on developer machine to devices/emulators to facilitate development.
An IDE like Eclipse handles this entire process for you.
Applications Are Boxed
By default, each app is run in its own Linux process
Process started when app’s code needs to be executed
Threads can be started to handle time-consuming operations
Each process has its own Dalvik VM
By default, each app is assigned unique Linux ID
Permissions are set so app’s files are only visible to that app
http://developer.android.com/reference/android/Manifest.permission.html
http://developer.android.com/reference/android/Manifest.permission_group.html
Publishing and Monetizing
Paid apps in Android Market, various other markets
Free, ad-supported apps in Android Market
Ad networks (Google AdMob, Quattro Wireless)
Sell your own ads
Online Services
Elance, Rent-a-coder etc
Contests (Android Developer Challenge)
Selling products from within your app
Google Play
https://play.google.com/
Has various categories, allows ratings Have both free/paid apps Featured apps on web and on phone The Android Market (and iTunes/App
Store) is great for developers Level playing field, allowing third-party apps Revenue sharing
Publishing to Play
Requires Google Developer Account
$25 fee
Link to a Merchant Account
Google Checkout
Link to your checking account
Google takes 30% of app purchase price
Android Design Philosophy
Applications should be:
Fast
Resource constraints: <200MB RAM, slow processor
Responsive
Apps must respond to user actions within 5 seconds
Secure
Apps declare permissions in manifest
Seamless
Usability is key, persist data, suspend services
Android kills processes in background as needed
Leveraging the web
To keep your apps fast and responsive, consider how you can leverage the web
What ____________ can be ________ on a server or in the cloud?
Tasks/performed
Data/persisted
Data/retrieved
Beware, data transfer is also expensive and can be slow
What’s Next
http://developer.android.com/
EXPERTS Training & Solutions
2 Months
2 Sessions per week
15,000 Fee Package
Highlights
Input Gestures, Sensors, Camera, GPS, Location/Maps, Web Services, SMS, Mic/ Speakers, Phone, Internet etc
Practical
Questions & Answers
top related