Presentation is loading. Please wait.

Presentation is loading. Please wait.

Introduction.  Professor  Adam Porter 

Similar presentations


Presentation on theme: "Introduction.  Professor  Adam Porter "— Presentation transcript:

1 Introduction

2  Professor  Adam Porter  aporter@cs.umd.edu

3  Learn about  Mobile devices  Mobile device programming  The Android platform  Develop interesting Android applications  Expect lots of programming  Each student will do multiple projects

4  Mix of lecture and programming exercises  2-3 hours of presentation  1-2 hour laboratory exercise

5  A software stack for mobile devices:  Operating system, middleware & key applications  Use Android SDK to create applications  Libraries & development tools  Lots of documentation  http://developer.android.com/  Start browsing today!

6 http://developer.android.com/guide/basics/what-is-android.html

7  Abstraction layer between HW & SW  Provides services such as:  Security  Memory & process management  Network stack  Device driver model

8  Android-specific components  Binder – IPC  Android shared memory  Power management  Alarm driver  Low memory killer  Kernel debugger & Logger

9  C/C++ libraries  System C library ▪ bionic libc  Surface Manager ▪ display management  Media Framework ▪ audio/video  Webkit ▪ web browser engine  OpenGL ES, SGL ▪ graphics engines  SQLite ▪ relational database engine  SSL ▪ secure sockets layer

10  Support services for executing applications  Core Libraries  Dalvik Virtual Machine

11  Core Java classes  android.*  java.*, javax.*  junit.*  org.apache.*, org.json.*, org.xml.*  Doesn’t include all standard Java SDK classes  developer.android.com/reference/packages.html  www.zdnet.com/blog/burnette/java-vs-android-apis/504

12  Applications typically written in Java, but do not run in a standard Java virtual machine  dx program transforms java classes into.dex- formatted bytecodes  Bytecodes executed in Dalvik Virtual Machine  Applications typically run in their own processes, inside their own instance of the the Dalvik VM

13  Dalvik VM designed to run on a handset  Slow CPU  Little RAM ▪ 64Mb total, ~10Mb available at runtime  No swap space  Limited battery life

14  Some design choices  One.dex file for multiple classes  Modified garbage collection to improve memory sharing  Optimizations applied at installation time  register-based, rather than stack-based

15  Memory .dex file has common constant pool for multiple classes  Modified garbage collection to improve memory sharing  CPU  Optimizations at installation time  register-based, rather than stack-based

16  Expected benefits over stack-based VMs  Avoids slow instruction dispatch  Avoids unnecessary memory accesses  More efficient instruction stream

17 public static long sumArray(int[] arr) { long sum = 0; for (int i : arr) { sum += i; } return sum; }

18 0:lconst_0 1:lstore_1 2:aload_0 3:astore_3 4:aload_3 5:arraylength 6:istore4 8:iconst_0 9:istore5 11:iload5 13:iload4 15:if_icmpge36 18:aload_3 19:iload5 21:iaload 22:istore6 24:lload_1 25:iload6 27:i2l 28:ladd 29:lstore_1 30:iinc5, 1 33:goto11 36:lload_1 37:lreturn

19 0000: const-wide/16 v0, #long 0 // #0000 0002: array-length v2, v8 0003: const/4 v3, #int 0 // #0 0004: move v7, v3 0005: move-wide v3, v0 0006: move v0, v7 0007: if-ge v0, v2, 0010 // +0009 0009: aget v1, v8, v0 000b: int-to-long v5, v1 000c: add-long/2addr v3, v5 000d: add-int/lit8 v0, v0, #int 1 // #01 000f: goto 0007 // -0008 0010: return-wide v3

20  30% fewer instructions  35% fewer code units (1-byte vs. 2-byte instructions)  35% more bytes in the instruction stream ▪ but can consume instructions two bytes at a time  * See www.youtube.com/watch?v=ptjedOZEXPM

21  Window Manager  Manages top-level window’s look & behavior  View system  lists, grids, text boxes, buttons, etc.  Content Providers  Inter-application data sharing  Activity Manager  Application lifecycle and common navigation stack

22  Package manager  Manages application packages  Telephony manager  State of telephony services  Resource Manager  Manages non-code resources: strings, graphics, and layout files  Location manager  Access to system location services  Notification Manager  Notify users when events occur

23  Standard apps include:  Home – main screen  Contacts – contacts database  Phone – dial phone numbers  Browser – view web pages  Email reader – Gmail & others  Your App!

24


Download ppt "Introduction.  Professor  Adam Porter "

Similar presentations


Ads by Google