Presentation is loading. Please wait.

Presentation is loading. Please wait.

Android Overview.

Similar presentations


Presentation on theme: "Android Overview."— Presentation transcript:

1 Android Overview

2 Mobile Applications What are they? Types
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

3 Mobile Devices: Advantages
Always with the user Typically have Internet access Typically GPS enabled Most have cameras & microphones Many apps are free or low-cost Maybe more profitable with ads than actually selling the app

4 Mobile Devices: Disadvantages
Limited screen size Limited battery life Limited processor speed Limited and sometimes slow network access Limited input: phone keypad, touch screen, stylus etc Limited web browser functionality Range of platforms & configurations across devices

5 Why Mobile App Development?
Why Android? Transferring app to phone is trivial Can distribute by putting it on the web Android Market (now Google Play) for wider distribution

6 What is Google 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

7 Version Code name Release date API level DVM/ART Distribution 8.1 Oreo October 25, 2017 27 ART 8.0 August 21, 2017 26 0.2% 7.1 Nougat October 4, 2016 25 2.0% 7.0 August 22, 2016 24 15.8% 6.0 Marshmallow October 5, 2015 23 32.0% 5.1 Lollipop March 9, 2015 22 21.0% 5.0 November 3, 2014 21 ART 2.1.0 6.7% 4.4 KitKat October 31, 2013 19 DVM (and ART 1.6.0) 14.5% 4.3 Jelly Bean July 24, 2013 18 DVM 1.0% 4.2 November 13, 2012 17 3.3% 4.1 July 9, 2012 16 2.3% 4.0 Ice Cream Sandwich October 19, 2011 15 0.6% 2.3 Gingerbread February 9, 2011 10 DVM 1.4.0

8

9 Android Apps Built using Java and new SDK libraries
No support for some Java libraries like Swing & AWT Java code compiled into Dalvik byte code (.dex) Optimized for mobile devices (better memory management, battery utilization, etc.) Dalvik VM runs .dex files

10 Applications Written in Java (it’s possible to write native code)
Good separation (and corresponding security) from other applications: Each application runs in its own process Each process has its own separate VM Each application is assigned a unique Linux user ID – by default files of that application are only visible to that application

11 Android Architecture The linux kernel 2.6 is the hardware abstraction layer (HAL) between the hardware and the android software stack.

12 Activity Manager – Life Cycle / Navigation
within and among applications Content Provider – encapsulate data Location Manager – aware of its physical location Notification Manager – users informed about events Package Manager – infn. about other appln. Pkgs Resource Manager – lets appln accesses its resources

13 Telephony Manager – to learn about device telephony services
View System – manages UI elements / events Window Manager – perform Window related operations ices

14 Free Type: for bitmap and vector font rendering
Libc : standard C System library Mediaframework: supports many audio & Video formats / image files / playback & recording OpenGL/ES: for 3D graphics libraries SGL: 2D graphics engine – scalable graphics lib SQLite: provides lightweight RDB engine SSL: SSL based security for NW communication Surface Manager: manages accesses to the display subsystem – 2D & 3D graphics layers Maybe more profitable with ads than actually selling the app

15 Application Components
Activities – visual user interface focused on a single thing a user can do (presents UI) Services – no visual interface – they run in the background User selects a song through an activity and a separate service is started Broadcast Receivers – receive and react to broadcast announcements Battery life / timezone changed etc Content Providers – allow data exchange between applications

16 Activities Basic component of most applications
Most applications have several activities that start each other as needed Each is implemented as a subclass of the base Activity class

17 Activities – The View Each activity has a default window to draw in
The content of the window is a view or a group of views (derived from View or ViewGroup) Example of views: buttons, text fields, scroll bars, menu items, check boxes, etc. View(Group) made visible via Activity.setContentView() method.

18 Services Does not have a visual interface
Runs in the background indefinitely Examples Network Downloads Playing Music TCP/UDP Server You can bind to an existing service and control its operation

19 Broadcast Receivers Receive and react to broadcast announcements
Extend the class BroadcastReceiver Examples of broadcasts: Low battery, power connected, shutdown, timezone changed, etc. Other applications can initiate broadcasts

20 Content Providers Makes some of the application data available to other applications It’s the only way to transfer data between applications in Android (no shared files, shared memory, pipes, etc.) Extends the class ContentProvider; Other applications use a ContentResolver object to access the data provided via a ContentProvider

21 Intents An intent is an Intent object with a message content.
Describe operations – send an Activities, services and broadcast receivers are started by intents. ContentProviders are started by ContentResolvers: An activity is started by Context.startActivity(Intent intent) or Activity.startActivityForResult(Intent intent, int RequestCode) A service is started by Context.startService(Intent service) An application can initiate a broadcast by using an Intent in any of Context.sendBroadcast(Intent intent), Context.sendOrderedBroadcast(), and Context.sendStickyBroadcast()

22 Android Manifest Its main purpose in life is to declare the components to the system: <?xml version="1.0" encoding="utf-8"?> <manifest >     <application >         <activity android:name="com.example.project.FreneticActivity"                                                        >         </activity>             </application> </manifest>

23 Building and running 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. Compiled resources (xml files) Android Debug Bridge

24 Components Fragments Represents a portion of user interface in an Activity. Views UI elements that are drawn on-screen including buttons, lists forms etc. Layouts View hierarchies that control screen format and appearance of the views. Intents Messages wiring components together. Resources External elements, such as strings, constants and drawable pictures. Manifest Configuration file for the application.

25 Java This contains the .java source files for your project. By default, it includes an MainActivity.java source file having an activity class res/drawable-hdpi This is a directory for drawable objects that are designed for high-density screens res/layout This is a directory for files that define your app's user interface res/values This is a directory for other various XML files that contain a collection of resources, such as strings and colours definitions. AndroidManifest.xml This is the manifest file which describes the fundamental characteristics of the app and defines each of its components.

26 MyProject/ app/ manifest/ AndroidManifest.xml java/ MyActivity.java res/ drawable/ icon.png layout/ activity_main.xml info.xml values/ strings.xml

27


Download ppt "Android Overview."

Similar presentations


Ads by Google