Bringing C and C++ Games to Android

Size: px
Start display at page:

Download "Bringing C and C++ Games to Android"

Transcription

1 1

2 Bringing C and C++ Games to Android Ian Ni-Lewis Dan Galpin Game Developer Advocates May, Feedback: #Android

3 About This Talk Audience C/C++ Developers Android background Game development experience No prior NDK knowledge needed Agenda Programming Android in C/C++? Using the NDK Bringing your game to Android Troubleshooting, tips, and tricks Best practices 3

4 Programming Android in C/C++? Native development on phones, tablets, and beyond 4

5 The NDK Provides Support for C/C++ Development NDK = Native Development Kit Scenarios: Reuse existing libraries Accelerate key subroutines Access VFP and NEON Port entire games C++ 5

6 What s in the Box? Toolchain Standard gcc cross-compilers Really fancy build system Primarily written in GNU make Based on Android platform build system Headers and libraries C and C++ runtimes Stable system interface 6

7 Why are Headers and Libraries So Important? Application Code Framework Classes JNI System Libraries Runtime Linux Kernel 7

8 Why are Headers and Libraries So Important? Application Code Framework Classes JNI Runtime System Libraries Linux Kernel 7

9 Why are Headers and Libraries So Important? Application Code Framework Classes JNI Your Libraries Runtime System Libraries Linux Kernel 7

10 Why are Headers and Libraries So Important? Application Code Framework Classes JNI Your Libraries Runtime System Libraries Linux Kernel 7

11 Why are Headers and Libraries So Important? Application Code Framework Classes JNI Your Libraries Runtime System Libraries Linux Kernel 7

12 Why are Headers and Libraries So Important? Application Code Framework Classes JNI Your Libraries Runtime Stable ABI System Libraries Linux Kernel 7

13 Feature C runtime C++ runtime Math Dynamic Linking Logging Zlib compression OpenGL ES 1.1 OpenGL ES 2.0 Library libc libstdc++ libm libdl liblog libz libglesv1_cm libglesv2 8

14 Feature C runtime C++ runtime Math Dynamic Linking Logging Zlib compression OpenGL ES 1.1 OpenGL ES 2.0 JNI Graphics Library libc libstdc++ libm libdl liblog libz libglesv1_cm libglesv2 libjnigraphics 8

15 Feature C runtime C++ runtime Math Dynamic Linking Logging Zlib compression OpenGL ES 1.1 OpenGL ES 2.0 JNI Graphics EGL OpenSL ES Native framework / NativeActivity) Library libc libstdc++ libm libdl liblog libz libglesv1_cm libglesv2 libjnigraphics libegl libopensles libandroid 8

16 What the NDK is Not Not the end of Dalvik Not always higher performance Not necessarily the right choice for every game 9

17 Dalvik vs. C++ Easily Extensible Android API Access Flexible Fast! Automatic Memory Management Common on Other Platforms Low-Level C++ 10

18 How to Use the NDK 11

19 Installing the NDK Download NDK from developer.android.com/sdk/ndk Add NDK folder to your path Install Java JDK Install Ant Windows: Install Cygwin Required for debugger Recommended for build scripts 12

20 Development Flow Set up project Write makefiles Write interface classes Write JNI glue Build / Deploy Debug 13

21 Development Flow: Project Setup Set up project Write makefiles Write interface classes Run!"#$%&#'($)!*)'+$%,)(* Ant script Common directories Resources Per-machine settings OR!"#$%&#'-+#!*)'+$%,)(* Write JNI glue For existing code Build / Deploy Debug 14

22 Development Flow: Project Setup Set up project Write makefiles Write interface classes Run!"#$%&#'($)!*)'+$%,)(* Ant script Common directories Resources Per-machine settings OR!"#$%&#'-+#!*)'+$%,)(* Write JNI glue For existing code Build / Deploy Created by!"#$%&#'($)!*)'+$%,)(* Debug 14

23 Development Flow: Project Setup Set up project Write makefiles Write interface classes Run!"#$%&#'($)!*)'+$%,)(* Ant script Common directories Resources Per-machine settings OR!"#$%&#'-+#!*)'+$%,)(* Write JNI glue For existing code Build / Deploy Debug 15

24 Development Flow: Project Setup Set up project Write makefiles Write interface classes Run!"#$%&#'($)!*)'+$%,)(* Ant script Common directories Resources Per-machine settings OR!"#$%&#'-+#!*)'+$%,)(* Write JNI glue For existing code Build / Deploy Created Manually Debug 15

25 Development Flow: Makefiles Set up project Write makefiles Write interface classes Write JNI glue Build / Deploy Debug 16

26 Development Flow: Makefiles Set up project Write makefiles Write interface classes!"#$!%&$'()*+,-./ Write JNI glue Build / Deploy Debug 16

27 Development Flow: Makefiles Set up project Write makefiles Write interface classes!"#$!%&$'()*+,-./ Write JNI glue Build / Deploy Debug $&&%&<"P;#'%&$'(+)*+,-./ QL6IE:.R $&&%?"@A!;>++++++)*+05BC0DE85 $&&%"&'J? )*+4:B9C $&&%$MJ )*+/61:/B5+/61:/B53NS/ APP_STL := gnustl_static 16

28 Development Flow: Makefiles Set up project Write makefiles Write interface classes!"#$!%&$'()*+,-./ Write JNI glue Build / Deploy Debug $&&%&<"P;#'%&$'(+)*+,-./ QL6IE:.R $&&%?"@A!;>++++++)*+05BC0DE85 $&&%"&'J? )*+4:B9C $&&%$MJ )*+/61:/B5+/61:/B53NS/ APP_STL := gnustl_static 16

29 Development Flow: Interface Classes Set up project Write makefiles Write interface in Java Use "!*&.) keyword L/.T/C:+.I1K/846I54KC0DE85U QQ+H6/LL:6+VI6+8/R5N:+05B6/62 Write interface classes Write JNI glue Build / Deploy Debug L9B05.+.0/WW+G!DPXJ!5B+:YR:84W+$.R5N5R2+Z ++WR/R5.+Z ++++>2WR:1K0I/4!5B6/62-[C0DE85[7U ++\ ++Q]] +++]+^L/6/1+_54R`+R`:+.966:8R+N5:_+_54R` +++]+^L/6/1+`:5C`R+R`:+.966:8R+N5:_+`:5C`R +++]Q +++L9B05.+8/R5N:+NI54+585R-58R+_54R`a+58R+`:5C`R7U +++L9B05.+WR/R5.+8/R5N:+NI54+WR:L-7U \ 17

30 Development Flow: JNI Glue Set up project Generate with javah tool /,!.!0'(%12!"#$%&#2345,"&267589:7&; Eclipse: Source Generate C files from Java class Write makefiles Write interface classes Write JNI glue Build / Deploy Debug 18

31 Development Flow: JNI Glue Set up project Generate with javah tool /,!.!0'(%12!"#$%&#2345,"&267589:7&; Eclipse: Source Generate C files from Java class Write makefiles L9B05.+8/R5N:+NI54+585R-58R+_54R`a+58R+`:5C`R7U L9B05.+WR/R5.+8/R5N:+NI54+WR:L-7U Write interface classes Write JNI glue Build / Deploy Debug 18

32 Development Flow: JNI Glue Set up project Generate with javah tool /,!.!0'(%12!"#$%&#2345,"&267589:7&; Eclipse: Source Generate C files from Java class Write makefiles L9B05.+8/R5N:+NI54+585R-58R+_54R`a+58R+`:5C`R7U L9B05.+WR/R5.+8/R5N:+NI54+WR:L-7U Write interface classes Write JNI glue Build / Deploy Debug b58.094:+ce85k`d Q] +]+#0/WW)+++++.I1%/846I54%C0DE85%G!DPXJ!5B +]+?:R`I4) R++++>5C8/R96:)+-JJ7= +]Q PXJ;e&"<'+NI54+PXJ#$!!+P/N/%.I1%/846I54%C0DE85%G!DPXJ!5B%585R ++-PXJ;8N+]a+EIBE:.Ra+E58Ra+E58R7U Q] +]+#0/WW)+++++.I1%/846I54%C0DE85%G!DPXJ!5B +]+?:R`I4)++++WR:L++++>5C8/R96:)+-7= +]Q PXJ;e&"<'+NI54+PXJ#$!!+P/N/%.I1%/846I54%C0DE85%G!DPXJ!5B%WR:L ++-PXJ;8N+]a+E.0/WW7U 18

33 Development Flow: JNI Glue Set up project Generate with javah tool /,!.!0'(%12!"#$%&#2345,"&267589:7&; Eclipse: Source Generate C files from Java class Write makefiles L9B05.+8/R5N:+NI54+585R-58R+_54R`a+58R+`:5C`R7U L9B05.+WR/R5.+8/R5N:+NI54+WR:L-7U Write interface classes Write JNI glue Build / Deploy Debug b58.094:+ce85k`d Q] +]+#0/WW)+++++.I1%/846I54%C0DE85%G!DPXJ!5B +]+?:R`I4) R++++>5C8/R96:)+-JJ7= +]Q PXJ;e&"<'+NI54+PXJ#$!!+P/N/%.I1%/846I54%C0DE85%G!DPXJ!5B%585R ++-PXJ;8N+]a+EIBE:.Ra+E58Ra+E58R7U Q] +]+#0/WW)+++++.I1%/846I54%C0DE85%G!DPXJ!5B +]+?:R`I4)++++WR:L++++>5C8/R96:)+-7= +]Q PXJ;e&"<'+NI54+PXJ#$!!+P/N/%.I1%/846I54%C0DE85%G!DPXJ!5B%WR:L ++-PXJ;8N+]a+E.0/WW7U 18

34 Development Flow: JNI Glue Set up project Generate with javah tool /,!.!0'(%12!"#$%&#2345,"&267589:7&; Eclipse: Source Generate C files from Java class Write makefiles L9B05.+8/R5N:+NI54+585R-58R+_54R`a+58R+`:5C`R7U L9B05.+WR/R5.+8/R5N:+NI54+WR:L-7U Write interface classes Write JNI glue Build / Deploy Debug b58.094:+ce85k`d Q] +]+#0/WW)+++++.I1%/846I54%C0DE85%G!DPXJ!5B +]+?:R`I4) R++++>5C8/R96:)+-JJ7= +]Q PXJ;e&"<'+NI54+PXJ#$!!+P/N/%.I1%/846I54%C0DE85%G!DPXJ!5B%585R ++-PXJ;8N+]a+EIBE:.Ra+E58Ra+E58R7U Q] +]+#0/WW)+++++.I1%/846I54%C0DE85%G!DPXJ!5B +]+?:R`I4)++++WR:L++++>5C8/R96:)+-7= +]Q PXJ;e&"<'+NI54+PXJ#$!!+P/N/%.I1%/846I54%C0DE85%G!DPXJ!5B%WR:L ++-PXJ;8N+]a+E.0/WW7U 18

35 Development Flow: JNI Glue Set up project Generate with javah tool /,!.!0'(%12!"#$%&#2345,"&267589:7&; Eclipse: Source Generate C files from Java class Write makefiles L9B05.+8/R5N:+NI54+585R-58R+_54R`a+58R+`:5C`R7U L9B05.+WR/R5.+8/R5N:+NI54+WR:L-7U Write interface classes Write JNI glue Build / Deploy Debug b58.094:+ce85k`d Q] +]+#0/WW)+++++.I1%/846I54%C0DE85%G!DPXJ!5B +]+?:R`I4) R++++>5C8/R96:)+-JJ7= +]Q PXJ;e&"<'+NI54+PXJ#$!!+P/N/%.I1%/846I54%C0DE85%G!DPXJ!5B%585R ++-PXJ;8N+]a+EIBE:.Ra+E58Ra+E58R7U Q] +]+#0/WW)+++++.I1%/846I54%C0DE85%G!DPXJ!5B +]+?:R`I4)++++WR:L++++>5C8/R96:)+-7= +]Q PXJ;e&"<'+NI54+PXJ#$!!+P/N/%.I1%/846I54%C0DE85%G!DPXJ!5B%WR:L ++-PXJ;8N+]a+E.0/WW7U 18

36 Development Flow: JNI Glue Set up project Generate with javah tool /,!.!0'(%12!"#$%&#2345,"&267589:7&; Eclipse: Source Generate C files from Java class Write makefiles L9B05.+8/R5N:+NI54+585R-58R+_54R`a+58R+`:5C`R7U L9B05.+WR/R5.+8/R5N:+NI54+WR:L-7U Write interface classes Write JNI glue Build / Deploy Debug b58.094:+ce85k`d Q] +]+#0/WW)+++++.I1%/846I54%C0DE85%G!DPXJ!5B +]+?:R`I4) R++++>5C8/R96:)+-JJ7= +]Q PXJ;e&"<'+NI54+PXJ#$!!+P/N/%.I1%/846I54%C0DE85%G!DPXJ!5B%585R ++-PXJ;8N+]a+EIBE:.Ra+E58Ra+E58R7U Q] +]+#0/WW)+++++.I1%/846I54%C0DE85%G!DPXJ!5B +]+?:R`I4)++++WR:L++++>5C8/R96:)+-7= +]Q PXJ;e&"<'+NI54+PXJ#$!!+P/N/%.I1%/846I54%C0DE85%G!DPXJ!5B%WR:L ++-PXJ;8N+]a+E.0/WW7U 18

37 Development Flow: JNI Glue Set up project Generate with javah tool /,!.!0'(%12!"#$%&#2345,"&267589:7&; Eclipse: Source Generate C files from Java class Write makefiles L9B05.+8/R5N:+NI54+585R-58R+_54R`a+58R+`:5C`R7U L9B05.+WR/R5.+8/R5N:+NI54+WR:L-7U Write interface classes Write JNI glue Build / Deploy Debug b58.094:+ce85k`d Q] +]+#0/WW)+++++.I1%/846I54%C0DE85%G!DPXJ!5B +]+?:R`I4) R++++>5C8/R96:)+-JJ7= +]Q PXJ;e&"<'+NI54+PXJ#$!!+P/N/%.I1%/846I54%C0DE85%G!DPXJ!5B%585R ++-PXJ;8N+]a+EIBE:.Ra+E58Ra+E58R7U Q] +]+#0/WW)+++++.I1%/846I54%C0DE85%G!DPXJ!5B +]+?:R`I4)++++WR:L++++>5C8/R96:)+-7= +]Q PXJ;e&"<'+NI54+PXJ#$!!+P/N/%.I1%/846I54%C0DE85%G!DPXJ!5B%WR:L ++-PXJ;8N+]a+E.0/WW7U 18

38 Development Flow: JNI Glue Set up project Generate with javah tool /,!.!0'(%12!"#$%&#2345,"&267589:7&; Eclipse: Source Generate C files from Java class Write makefiles L9B05.+8/R5N:+NI54+585R-58R+_54R`a+58R+`:5C`R7U L9B05.+WR/R5.+8/R5N:+NI54+WR:L-7U Write interface classes Write JNI glue Build / Deploy Debug b58.094:+ce85k`d Q] +]+#0/WW)+++++.I1%/846I54%C0DE85%G!DPXJ!5B +]+?:R`I4) R++++>5C8/R96:)+-JJ7= +]Q PXJ;e&"<'+NI54+PXJ#$!!+P/N/%.I1%/846I54%C0DE85%G!DPXJ!5B%585R ++-PXJ;8N+]a+EIBE:.Ra+E58Ra+E58R7U Q] +]+#0/WW)+++++.I1%/846I54%C0DE85%G!DPXJ!5B +]+?:R`I4)++++WR:L++++>5C8/R96:)+-7= +]Q PXJ;e&"<'+NI54+PXJ#$!!+P/N/%.I1%/846I54%C0DE85%G!DPXJ!5B%WR:L ++-PXJ;8N+]a+E.0/WW7U 18

39 Development Flow: JNI Glue Set up project Generate with javah tool /,!.!0'(%12!"#$%&#2345,"&267589:7&; Eclipse: Source Generate C files from Java class Write makefiles L9B05.+8/R5N:+NI54+585R-58R+_54R`a+58R+`:5C`R7U L9B05.+WR/R5.+8/R5N:+NI54+WR:L-7U Write interface classes Write JNI glue Build / Deploy Debug b58.094:+ce85k`d Q] +]+#0/WW)+++++.I1%/846I54%C0DE85%G!DPXJ!5B +]+?:R`I4) R++++>5C8/R96:)+-JJ7= +]Q PXJ;e&"<'+NI54+PXJ#$!!+P/N/%.I1%/846I54%C0DE85%G!DPXJ!5B%585R ++-PXJ;8N+]a+EIBE:.Ra+E58Ra+E58R7U Q] +]+#0/WW)+++++.I1%/846I54%C0DE85%G!DPXJ!5B +]+?:R`I4)++++WR:L++++>5C8/R96:)+-7= +]Q PXJ;e&"<'+NI54+PXJ#$!!+P/N/%.I1%/846I54%C0DE85%G!DPXJ!5B%WR:L ++-PXJ;8N+]a+E.0/WW7U 18

40 Development Flow: JNI Glue with Manual Registration Set up project Write makefiles Write interface classes WR/R5.+PXJX/R5N:?:R`I4+C?:R`I4Wfg+*+Z ++Z+[585R[a+[-JJ7=[a+-NI54]7+8/R5N:G/1:J85R+\a+ ++Z+[WR:L[a+[-7=[a+-NI54]7+8/R5N:>R:L+\ \U Get native signatures from class file with javap -s /,!.!+'<='<+$&.!*)'(%12!"#$%&#2345,"&267589:7&; Write JNI glue Build / Deploy Debug 19

41 Development Flow: JNI Glue with Manual Registration Set up project Write makefiles Write interface classes Write JNI glue Build / Deploy WR/R5.+PXJX/R5N:?:R`I4+C?:R`I4Wfg+*+Z ++Z+[585R[a+[-JJ7=[a+-NI54]7+8/R5N:G/1:J85R+\a+ ++Z+[WR:L[a+[-7=[a+-NI54]7+8/R5N:>R:L+\ \U Get ++.`/6]+.0/WWX/1:+*+[.I1Q/846I54QC0DE85QG!DPXJ!5B[U native signatures from class file with javap -s / ++E.0/WW+.0/hh+*+:8N3dF584#0/WW-.0/WWX/1:7U,!.!+'<='<+$&.!*)'(%12!"#$%&#2345,"&267589:7&; ++5V+-.0/hh+**+XA!!7+Z ++++%%/846I54%0IC%L658R-$X@<"J@%!"G%;<<"<a+[$_:WI1:G/1:[a [X/R5N:+6:C5WR6/R5I8+98/B0:+RI+V584+.0/WW+ijWik8[a+.0/WWX/1:7U ++6:R968+PXJ%F$!>;U ++\ ++5V+-:8N3d<:C5WR:6X/R5N:W-.0/hha+C?:R`I4Wa+891?:R`I4W7+c+l7+Z + %%/846I54%0IC%L658R-$X@<"J@%!"G%;<<"<a+[$_:WI1:G/1:[a + ++[<:C5WR:6X/R5N:W+V/50:4+VI6+ijWik8[a+.0/WWX/1:7U ++6:R968+PXJ%F$!>;U ++\ Debug 19

42 Development Flow: JNI Glue with Manual Registration Set up project Write makefiles Write interface classes Write JNI glue Build / Deploy WR/R5.+PXJX/R5N:?:R`I4+C?:R`I4Wfg+*+Z ++Z+[585R[a+[-JJ7=[a+-NI54]7+8/R5N:G/1:J85R+\a+ ++Z+[WR:L[a+[-7=[a+-NI54]7+8/R5N:>R:L+\ \U Get ++.`/6]+.0/WWX/1:+*+[.I1Q/846I54QC0DE85QG!DPXJ!5B[U native signatures from class file with javap -s / ++E.0/WW+.0/hh+*+:8N3dF584#0/WW-.0/WWX/1:7U,!.!+'<='<+$&.!*)'(%12!"#$%&#2345,"&267589:7&; ++5V+-.0/hh+**+XA!!7+Z ++++%%/846I54%0IC%L658R-$X@<"J@%!"G%;<<"<a+[$_:WI1:G/1:[a [X/R5N:+6:C5WR6/R5I8+98/B0:+RI+V584+.0/WW+ijWik8[a+.0/WWX/1:7U ++6:R968+PXJ%F$!>;U ++\ ++5V+-:8N3d<:C5WR:6X/R5N:W-.0/hha+C?:R`I4Wa+891?:R`I4W7+c+l7+Z + %%/846I54%0IC%L658R-$X@<"J@%!"G%;<<"<a+[$_:WI1:G/1:[a + ++[<:C5WR:6X/R5N:W+V/50:4+VI6+ijWik8[a+.0/WWX/1:7U ++6:R968+PXJ%F$!>;U ++\ Debug 19

43 Development Flow: JNI Glue with Manual Registration Set up project Write makefiles Write interface classes Write JNI glue Build / Deploy WR/R5.+PXJX/R5N:?:R`I4+C?:R`I4Wfg+*+Z ++Z+[585R[a+[-JJ7=[a+-NI54]7+8/R5N:G/1:J85R+\a+ ++Z+[WR:L[a+[-7=[a+-NI54]7+8/R5N:>R:L+\ \U Get ++.`/6]+.0/WWX/1:+*+[.I1Q/846I54QC0DE85QG!DPXJ!5B[U native signatures from class file with javap -s / ++E.0/WW+.0/hh+*+:8N3dF584#0/WW-.0/WWX/1:7U,!.!+'<='<+$&.!*)'(%12!"#$%&#2345,"&267589:7&; ++5V+-.0/hh+**+XA!!7+Z ++++%%/846I54%0IC%L658R-$X@<"J@%!"G%;<<"<a+[$_:WI1:G/1:[a [X/R5N:+6:C5WR6/R5I8+98/B0:+RI+V584+.0/WW+ijWik8[a+.0/WWX/1:7U ++6:R968+PXJ%F$!>;U ++\ ++5V+-:8N3d<:C5WR:6X/R5N:W-.0/hha+C?:R`I4Wa+891?:R`I4W7+c+l7+Z + %%/846I54%0IC%L658R-$X@<"J@%!"G%;<<"<a+[$_:WI1:G/1:[a + ++[<:C5WR:6X/R5N:W+V/50:4+VI6+ijWik8[a+.0/WWX/1:7U ++6:R968+PXJ%F$!>;U ++\ Debug 19

44 Development Flow: Calling Dalvik Code Within C/C++ Set up project Write makefiles Write interface classes Write JNI glue PXJ;e&"<'+NI54+PXJ#$!!+P/N/%.I1%/846I54%C0DE85%G!DPXJ!5B%585R ++-PXJ;8N+]LPXJ;8Na+EIBE:.R+IBEa+E58R+/a+E58R+B7+Z ++E.0/WW+.0W+*+-]LPXJ;8N73dG:R"BE:.R#0/WW-LPXJ;8Na+IBE7U LPXJ;8Na+.0Wa+[R/T:m:2;N:8RW[a+[-n7=[7U ++-]LPXJ;8N73d#/00=I54?:R`I4-LPXJ;8Na+IBEa+54a+PXJ%'<A;7U \ Build / Deploy Debug 20

45 Development Flow: Build and Deploy Set up project Write makefiles Write interface classes Builds C libraries and emits.so files >'!"*'#);-3 (or ant release) Builds Java classes, apk package >'!"*'&"=*!44 Write JNI glue Deploys to emulator or device Build / Deploy Debug 21

46 Development Flow: Debug Set up project Write makefiles Write interface classes Sanity checks your setup Starts gdbserver on device, opens named pipe Forwards pipe to socket on host Starts gdb client on host, connects to socket Device Host Write JNI glue Build / Deploy Debug 22

47 Development Flow: Debug Set up project Write makefiles Write interface classes Sanity checks your setup Starts gdbserver on device, opens named pipe Forwards pipe to socket on host Starts gdb client on host, connects to socket Device Host Write JNI glue application Build / Deploy gdbserver Debug 22

48 Development Flow: Debug Set up project Write makefiles Write interface classes Sanity checks your setup Starts gdbserver on device, opens named pipe Forwards pipe to socket on host Starts gdb client on host, connects to socket Device Host Write JNI glue Build / Deploy application gdbserver gdb-rsp over named pipe gdb Debug 22

49 Development Flow: Debug Set up project Write makefiles Write interface classes Sanity checks your setup Starts gdbserver on device, opens named pipe Forwards pipe to socket on host Starts gdb client on host, connects to socket Write JNI glue Device Eclipse/VS Host application gdb-mi Build / Deploy gdbserver gdb-rsp over named pipe gdb Debug 22

50 Important Tip: B);-3'%"'6&"3)$;$)!#'J 23

51 Bringing Your Game to Android 24

52 Devices Accessing Android Market Android 2.3 Android Android 3.0 Android 1.5 Android 2.2 (Froyo) Android 1.6 Android 2.1 (Eclair) Two Week Period, Published May

53 Devices Accessing Android Market Great uptake for Android 2.2 In ten months, 65.9% of devices checking in to Market running Froyo 94.7% of devices running Android 2.1 or higher Android 2.2 (Froyo) Android 2.1 (Eclair) 25

54 Devices Accessing Android Market Great uptake for Android 2.2 In ten months, 65.9% of devices checking in to Market running Froyo 94.7% of devices running Android 2.1 or higher NativeActivity is just starting 4.3% of checking-in devices can utilize it For non-tablet-specific titles, we can take advantage of NativeActivity without becoming incompatible Android 2.2 (Froyo) Android 2.1 (Eclair) 25

55 Using NativeActivity Compatibly Platform-specific resources can be used to define boolean values activities can be enabled based upon these values 26

56 Using NativeActivity Compatibly Platform-specific resources can be used to define boolean values activities can be enabled based upon these values Platform-specific Resources 26

57 Using NativeActivity Compatibly Platform-specific resources can be used to define boolean values activities can be enabled based upon these values coy10+n:6w5i8*[pkl[+:8.i458c*[9rv3q[od c6:wi96.:wd ++++cbii0+8/1:*[/r!:/wrg58c:6b6:/4[dv/0w:cqbii0d ++++cbii0+8/1:*[8irg58c:6b6:/4[dr69:cqbii0d cq6:wi96.:wd coy10+n:6w5i8*[pkl[+:8.i458c*[9rv3q[od c6:wi96.:wd ++++cbii0+8/1:*[/r!:/wrg58c:6b6:/4[dr69:cqbii0d ++++cbii0+8/1:*[8irg58c:6b6:/4[dv/0w:cqbii0d cq6:wi96.:wd 27

58 Using NativeActivity Compatibly Platform-specific resources can be used to define boolean values activities can be enabled based upon these values c/.r5n5r2+/846i54)8/1:*[k>$x/r5n:$.r5n5r2[ +++/846I54):8/B0:4*[^BII0Q/R!:/WRG58C:6B6:/4[d ++c1:r/34/r/+/846i54)8/1:*[/846i54k/llk05b%8/1:[ +++++/846I54)N/09:*[W/8/R5N:[+Qd c58r:8r3v50r:6d ++++c/.r5i8+/846i54)8/1:*[/846i54k58r:8rk/.r5i8k?$jx[qd ++++c./r:ci62+/846i54)8/1:*[/846i54k58r:8rk./r:ci62k!$ax#(;<[qd ++cq58r:8r3v50r:6d cq/.r5n5r2d +++/846I54):8/B0:4*[^BII0Q8IRG58C:6B6:/4[d ++c58r:8r3v50r:6d ++++c/.r5i8+/846i54)8/1:*[/846i54k58r:8rk/.r5i8k?$jx[qd ++++c./r:ci62+/846i54)8/1:*[/846i54k58r:8rk./r:ci62k!$ax#(;<[qd ++cq58r:8r3v50r:6d cq/.r5n5r2d 28

59 Using NativeActivity Compatibly Dynamic libraries create stub libraries as interfaces to your game engine 29

60 Using NativeActivity Compatibly Dynamic libraries create stub libraries as interfaces to your game engine )*+,-./

61 Using NativeActivity Compatibly Dynamic libraries create stub libraries as interfaces to your game engine )*+,-./ $&&%&!$'F"<?+)*+/846I543r $&&%"&'J?+)*+6:0:/W: $&&%$MJ+)*+/61:/B5+/61:/B53NS/ 29

62 Using NativeActivity Compatibly Dynamic libraries create stub libraries as interfaces to your game engine )*+,-./ $&&%&!$'F"<?+)*+/846I543r $&&%"&'J?+)*+6:0:/W: $&&%$MJ+)*+/61:/B5+/61:/B53NS/ 29

63 Using NativeActivity Compatibly Dynamic libraries create stub libraries as interfaces to your game engine )*+,-./ $&&%&!$'F"<?+)*+/846I543r $&&%"&'J?+)*+6:0:/W: $&&%$MJ+)*+/61:/B5+/61:/B53NS/ 29

64 Using NativeActivity Compatibly Dynamic libraries create stub libraries as interfaces to your game engine )*+,-./ $&&%&!$'F"<?+)*+/846I543r $&&%"&'J?+)*+6:0:/W: $&&%$MJ+)*+/61:/B5+/61:/B53NS/ 29

65 Using NativeActivity Compatibly Dynamic Libraries create multiple libraries as interfaces to your game engine 30

66 Using NativeActivity Compatibly Dynamic Libraries!"#$!%&$'(+ )*+,-./ )*+W/8/8C:0:W create multiple libraries as interfaces to your game engine 30

67 Using NativeActivity Compatibly Dynamic Libraries!"#$!%&$'(+ )*+,-./ )*+W/8/8C:0:W create multiple libraries as interfaces to your game engine!"#$!%&$'(+ )*+,-./ )*+C09R50WK.+k + /LL3/846I5438/R5N:K.!"#$!%!@!JM>+)*+30G!;>ND IC+30;G!+30/846I54!"#$!%>'$'J#%!JM<$<J;>+ )*+/846I54%8/R5N:%/LL%C09:!"#$!%>($<;@%!JM<$<J;>+ )*+W/8/8C:0:W :+,-MAJ!@%>($<;@%!JM<$<O7,-./00+51LI6R31I490:a/846I54Q8/R5N:%/LL%C09:7 30

68 Using NativeActivity Compatibly Dynamic libraries the third library must be loaded manually before the native activity library we can extend NativeActivity to do this 31

69 Using NativeActivity Compatibly Dynamic libraries the third library must be loaded manually before the native activity library we can extend NativeActivity to do this L/.T/C:+.I1K:Y/1L0:KW/8/8C:0:WU L9B05.+.0/WW+>$X/R5N:$.R5N5R2+:YR:84W+ /846I54K/LLKX/R5N:$.R5N5R2+Z ++++WR/R5.+Z >2WR:1K0I/4!5B6/62-[W/8/8C:0:W[7U ++++\ \ 31

70 Using NativeActivity Compatibly Dynamic libraries the third library must be loaded manually before the native activity library we can extend NativeActivity to do this with our JNI-based class, we load in order 32

71 Using NativeActivity Compatibly Dynamic libraries the third library must be loaded manually before the native activity library we can extend NativeActivity to do this with our JNI-based class, we load in order L/.T/C:+.I1K:Y/1L0:KW/8/8C:0:WU /846I54K/LLK$.R5N5R2+Z ++++WR/R5.+Z >2WR:1K0I/4!5B6/62-[W/8/8C:0:W[7U >2WR:1K0I/4!5B6/62-[W/E85[7U ++++\ KKK 32

72 Key Game Components Lifecycle Input Assets Graphics Sound 33

73 Lifecycle Activity Lifecycle

74 Lifecycle Activity Lifecycle Activity Starts oncreate() onstart() onresume() Activity is Running

75 Lifecycle Activity Lifecycle Activity Starts oncreate() onstart() onresume() Activity is Running Another activity comes in front of the activity onpause() The activity is no longer visible onstop() ondestroy() Activity is Shut Down

76 Lifecycle Activity Lifecycle Activity Starts oncreate() onstart() onrestart() onresume() Activity is Running Another activity comes in front of the activity The activity comes to the foreground onpause() The activity is no longer visible onstop() ondestroy() Activity is Shut Down

77 Lifecycle Activity Lifecycle Activity Starts oncreate() onstart() onrestart() onresume() Activity is Running Another activity comes in front of the activity onpause() The activity comes to the foreground The activity comes to the foreground The activity is no longer visible onstop() ondestroy() Activity is Shut Down

78 Lifecycle Activity Lifecycle Activity Starts oncreate() User navigates back to the activity onstart() onrestart() Process is Killed onresume() Other applications need memory Activity is Running Another activity comes in front of the activity onpause() The activity comes to the foreground The activity comes to the foreground The activity is no longer visible onstop() ondestroy() Activity is Shut Down

79 Lifecycle Activity Lifecycle Activity Starts oncreate() User navigates back to the activity onstart() onrestart() Process is Killed onresume() Other applications need memory Activity is Running Another activity comes in front of the activity onpause() The activity comes to the foreground The activity comes to the foreground The activity is no longer visible onstop() ondestroy() Activity is Shut Down

80 Lifecycle Process Lifecycle Android keeps application processes around for as long as possible Even when the activity is closed with V585W`-7 or the back key is pressed The foreground activity process is considered the most important It can still be killed as a last resort Visible activities are also given high priority Backgrounded activities are considered less important Processes with no active activities are killed first

81 Lifecycle Implications of the Process Lifecycle Be careful with static initializers Your library cannot be unloaded while your process is active Don t assume that your static initializers will be run when your activity is created Be careful with threads Threads are tied to the process, not the activity Your threads will continue to run at reduced priority even if your activity is backgrounded or destroyed Gameplay should stop during onpause It might make sense to keep certain threads running - your activity may still be visible Make sure all native code is cleaned up during ondestroy Users expect that your application will no longer be active when its activity is destroyed

82 Input The Basics Key handling Your device most likely has capacitive buttons Look for complete state transitions of Avoid overriding 45WL/R.`m:2;N:8R Use I8m:2?90R5L0:/I8m:2!I8C&6:WW Keep your game behaving like an Android application Touch/Multitouch handling With I8'I9.`;N:8R take advantage of built-in gesture processing use and Most devices now support multitouch determine if your device can track distinct points 37

83 Input Other Input Trackball handling With I8'6/.TB/00;N:8R Unhandled events turn into dpad events Motion handling With I8>:8WI6#`/8C:4 Must be registered with the >:8WI6?/8/C:6 Disable unneeded sensors, especially when paused Active sensors will quickly drain the battery 38

84 Input Androidify Your Game! Don t break the hard buttons Back: dismiss dialogs, exit menus, pause the game Menu: pause, launch options dialog Home: pause (not quit!) Don t break the volume buttons Don t eat volume button messages s W:R=I091:#I8R6I0>R6:/1-$945I?/8/C:6K>'<;$?%?A>J#7 Don t let the hard buttons break your game Very easy to press accidentally on some devices Pause and give user the option to exit when back is pressed Save game state whenever possible onpause/onstop 39

85 Input Androidify Your Game! Don t break the hard buttons Back: dismiss dialogs, exit menus, pause the game Menu: pause, launch options dialog Home: pause (not quit!) Don t break the volume buttons Don t eat volume button messages s W:R=I091:#I8R6I0>R6:/1-$945I?/8/C:6K>'<;$?%?A>J#7 Don t let the hard buttons break your game Very easy to press accidentally on some devices Pause and give user the option to exit when back is pressed Save game state whenever possible onpause/onstop 39

86 Graphics OpenGL GLSurfaceView Creates the compatible context Contexts are shared between native code and Dalvik Creates a rendering thread Releases the context during onpause Not the most efficient way to multitask with OpenGL, but it avoids some driver issues When context is lost Reload resources Textures Buffer objects Shaders Names don t persist 40

87 Graphics Texture Formats Android encourages innovation in hardware Chipset vendors use several kinds of proprietary texture compression formats OpenGL ES supports multiple compressed formats, none mandatory Solutions Uncompressed Textures Use ETC1 broad support in 2.0 Optimized around photographic data No Alpha Use Multi-APK (coming soon) Put textures on an asset server Detect support at runtime Download to each device 41

88 Graphics Drawing for Performance Draw order is important Has no impact on some platforms, means everything on others Draw front to back to make best use of early rejects Use VBOs Avoid unnecessary state changes Textures Use power of 2 sized textures It can be very slow On some chipsets not all address modes work! 42

89 Graphics Writing Compatible Shaders Query, query Make sure to query for number of attributes, varying, and uniforms supported Varies between devices Not respecting will make your application crash!! Supported does not mean performs well Conditions Avoid as much as possible if necessary, put them last in the shader Use mix(), clamp(), etc to create the same result discard() Avoid discard() if necessary it should be last 43

90 Sound Audio Solutions Full track audio s?:45/&0/2:6 Plays multiple formats with codec support Plays from filesystem or from network Has high latency, memory, and CPU usage for quick sound effects Sound effects and clips s >I984&II0 Plays multiple formats with codec support Preloads audio files to a pool Plays them with low latency 44

91 Sound Audio Solutions Application-generated audio s $945I'6/.T Plays PCM audio only with minimal latency Useful for applications that wish to perform sound processing or mixing OpenSL/ES Combines capabilities of?:45/&0/2:6 and $945I'6/.T Available only in the NDK Requires Android 2.3 and higher 45

92 Assets The JNI Solution Get the APK file name Use the asset manager code to get an AssetFileDescriptor s /V4+*+.I8R:YRKC:R$WW:RW-7KIL:8F4-['IIR`2@6I54KL8C[7U Read the offset and length from the AssetFileDescriptor s 0I8C+IVVW:R+*+/V4KC:R>R/6R"VVW:R-7U 0I8C+0:8CR`+*+/V4KC:R@:.0/6:4!:8CR`-7U /V4K.0IW:-7U Open the APK file at the specified offset and read the specified length 46

93 Assets The JNI Solution Get Use the a APK native file Zip name Utility s.i8r:yrkc:r$ll05./r5i8j8vi-7kwi96.:@56 Slightly less future-proof Use Potentially the asset faster manager code to get an AssetFileDescriptor s /V4+*+.I8R:YRKC:R$WW:RW-7KIL:8F4-['IIR`2@6I54KL8C[7U Make sure to cache the Zip directory Get the offset and length if the item isn t compressed Read the offset and length from the AssetFileDescriptor s 0I8C+IVVW:R+*+/V4KC:R>R/6R"VVW:R-7U 0I8C+0:8CR`+*+/V4KC:R@:.0/6:4!:8CR`-7U /V4K.0IW:-7U Open the APK file at the specified offset and read the specified length 46

94 Assets The JNI Solution Get Use the a APK native file Zip name Utility s.i8r:yrkc:r$ll05./r5i8j8vi-7kwi96.:@56 Slightly less future-proof Use Potentially the asset faster manager code to get an AssetFileDescriptor s /V4+*+.I8R:YRKC:R$WW:RW-7KIL:8F4-['IIR`2@6I54KL8C[7U Make sure to cache the Zip directory Get the offset and length if the item isn t compressed Read the offset and length from the AssetFileDescriptor Use native AssetManager s 0I8C+IVVW:R+*+/V4KC:R>R/6R"VVW:R-7U 0I8C+0:8CR`+*+/V4KC:R@:.0/6:4!:8CR`-7U Gingerbread and Beyond /V4K.0IW:-7U Open the APK file at the specified offset and read the specified length 46

95 Troubleshooting, Tips, and Tricks Targeting tricky, trying tasks 47

96 Troubleshooting: Threading, Dalvik, and the NDK Problem: App crashes mysteriously Solution: Check your threading JNI contexts are per-thread Activity Framework Class JNI Context Main UI Loop Game Loop 48

97 Troubleshooting: Threading, Dalvik, and the NDK Problem: App crashes mysteriously Solution: Check your threading JNI contexts are per-thread Activity Framework Class JNI Context Main UI Loop Game Loop 48

98 Troubleshooting: Threading, Dalvik, and the NDK Problem: App crashes mysteriously Solution: Check your threading JNI contexts are per-thread Activity Framework Class JNI Context Main UI Loop Game Loop 48

99 Threading Options One JNI Context Per Thread Activity Framework Class Activity Framework Class JNI Context 1 JNI Context 2 OR JNI Context 1 Main UI loop Game loop Main UI loop Game loop 49

100 Troubleshooting: Performance Check for older hardware: ARM7 CPUs (use cpu-features lib) No support for OpenGL 2 Fallbacks for older HW: Use 16-bit textures t M5R1/LF/.RI62K"LR5I8WK58&6:V:66:4#I8V5C+*+ M5R1/LK#I8V5CK$<GM%uuuu Use smaller render target, scale up Framework will do it for you with >96V/.:(I04:6KW:RF5Y:4>5h:-7 Pixels are expensive, especially on tablets 50

101 Troubleshooting: Performance Check for older hardware: ARM7 CPUs (use cpu-features lib) No support for OpenGL 2 Fallbacks for older HW: Use 16-bit textures t M5R1/LF/.RI62K"LR5I8WK58&6:V:66:4#I8V5C+*+ M5R1/LK#I8V5CK$<GM%uuuu Use smaller render target, scale up Framework will do it for you with >96V/.:(I04:6KW:RF5Y:4>5h:-7 Pixels are expensive, especially on tablets 50

102 Troubleshooting: Performance Check for older hardware: ARM7 CPUs (use cpu-features lib) No support for OpenGL 2 If all else fails: Market filters Fallbacks for older HW: Instruction set Use 16-bit textures ARMv5/ARMv7 t M5R1/LF/.RI62K"LR5I8WK58&6:V:66:4#I8V5C+*+ M5R1/LK#I8V5CK$<GM%uuuu GL version Use smaller render Platform target, release scale up Framework will do it for you with >96V/.:(I04:6KW:RF5Y:4>5h:-7 Use Device Availability Pixels are expensive, especially on tablets 50

103 Tips: Standing Out from the Crowd Start Small Download assets as-needed Hook me early instead of making me wait Use Android backup/restore service (save to the cloud) Keep my progress when I switch devices Support multiple control schemes Trackball, D-pad, virtual stick! Let me decide what works best Support install-to-sd! Android Market users will knock your ratings if you don t 51

104 Tips: Standing Out from the Crowd Profiling In-game profiling to select optimal settings per-device Social Hook into social networks Use OpenID Build a live wallpaper Own the user s home screen with stats, avatars Analytics Market and in-game In-app payments Consider alternative monetization techniques 52

105 Troubleshooting: Development Tools NVIDIA Debug Manager for Eclipse Simplifies setup for native debugger under Eclipse developer.nvidia.com/tegra/nvidia-debug-manager-android-ndk WinGDB Use Visual Studio to debug Android NDK applications vs-android Native MSBuild files for Android toolchain vs-android.googlecode.com 53

106 Troubleshooting: Performance Tools NVIDIA PerfHUD ES developer.nvidia.com/tegra/perfhud-es Adreno Profiler developer.qualcomm.com/showcase/adreno-profiler POWERVR Insider Utilities Including PVRTrace and PVRTune 54

107 Q&A #Android Feedback: 55

Android Ecosystem and. Revised v4presenter. What s New

Android Ecosystem and. Revised v4presenter. What s New Android Ecosystem and Revised v4presenter What s New Why Mobile? 5B 4B 3B 2B 1B Landlines PCs TVs Bank users Mobiles 225M AOL 180M 135M 90M 45M 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 Quarters

More information

NDK OVERVIEW OF THE ANDROID NATIVE DEVELOPMENT KIT

NDK OVERVIEW OF THE ANDROID NATIVE DEVELOPMENT KIT ANDROID NDK OVERVIEW OF THE ANDROID NATIVE DEVELOPMENT KIT Peter R. Egli INDIGOO.COM 1/16 Contents 1. What you can do with NDK 2. When to use native code 3. Stable APIs to use / available libraries 4.

More information

CS378 - Mobile Computing. Anatomy of an Android App and the App Lifecycle

CS378 - Mobile Computing. Anatomy of an Android App and the App Lifecycle CS378 - Mobile Computing Anatomy of an Android App and the App Lifecycle Application Components five primary components different purposes and different lifecycles Activity single screen with a user interface,

More information

Android Fundamentals - Part 1

Android Fundamentals - Part 1 Android Fundamentals - Part 1 Alexander Nelson September 1, 2017 University of Arkansas - Department of Computer Science and Computer Engineering Reminders Projects Project 1 due Wednesday, September 13th

More information

COLLEGE OF ENGINEERING, NASHIK-4

COLLEGE OF ENGINEERING, NASHIK-4 Pune Vidyarthi Griha s COLLEGE OF ENGINEERING, NASHIK-4 DEPARTMENT OF COMPUTER ENGINEERING 1) What is Android? Important Android Questions It is an open-sourced operating system that is used primarily

More information

Produced by. Mobile Application Development. David Drohan Department of Computing & Mathematics Waterford Institute of Technology

Produced by. Mobile Application Development. David Drohan Department of Computing & Mathematics Waterford Institute of Technology Mobile Application Development Produced by David Drohan (ddrohan@wit.ie) Department of Computing & Mathematics Waterford Institute of Technology http://www.wit.ie Android Anatomy Android Anatomy 2! Agenda

More information

Introduction to Android development

Introduction to Android development Introduction to Android development Manifesto Digital We re an award winning London based digital agency that loves ideas design and technology We aim to make people s lives better, easier, fairer, more

More information

Making use of Android

Making use of Android What else can you do with Android? Chris Simmonds, 2net Limited Class TU-3.2 Copyright 2010, 2net Limited 1 Overview Creating a project Writing the app Writing native code libraries Other native code 2

More information

OpenMAX AL, OpenSL ES

OpenMAX AL, OpenSL ES Copyright Khronos Group, 2011 - Page 1 OpenMAX AL, OpenSL ES Native Multimedia in Android Erik Noreke Chair of OpenMAX AL and OpenSL ES Working Groups Copyright Khronos Group, 2011 - Page 2 Why Create

More information

Building graphic-rich and better performing native applications. Pro. Android C++ with the NDK. Onur Cinar

Building graphic-rich and better performing native applications. Pro. Android C++ with the NDK. Onur Cinar Building graphic-rich and better performing native applications Pro Android C++ with the NDK Onur Cinar For your convenience Apress has placed some of the front matter material after the index. Please

More information

How to set up FMOD*, Cocos2D-x*, and OpenAL* Libraries for Android* on Intel Architecture

How to set up FMOD*, Cocos2D-x*, and OpenAL* Libraries for Android* on Intel Architecture How to set up FMOD*, Cocos2D-x*, and OpenAL* Libraries for Android* on Intel Architecture Previously, we ve gone through instructions on how to compile a FFmpeg library on x86 architecture. This step-by-step

More information

COSC 3P97 Mobile Computing

COSC 3P97 Mobile Computing COSC 3P97 Mobile Computing Mobile Computing 1.1 COSC 3P97 Prerequisites COSC 2P13, 3P32 Staff instructor: Me! teaching assistant: Steve Tkachuk Lectures (MCD205) Web COSC: http://www.cosc.brocku.ca/ COSC

More information

Overview of Activities

Overview of Activities d.schmidt@vanderbilt.edu www.dre.vanderbilt.edu/~schmidt Institute for Software Integrated Systems Vanderbilt University Nashville, Tennessee, USA CS 282 Principles of Operating Systems II Systems Programming

More information

Android for Ubiquitous Computing Researchers. Andrew Rice University of Cambridge 17-Sep-2011

Android for Ubiquitous Computing Researchers. Andrew Rice University of Cambridge 17-Sep-2011 Android for Ubiquitous Computing Researchers Andrew Rice University of Cambridge 17-Sep-2011 Getting started Website for the tutorial: http://www.cl.cam.ac.uk/~acr31/ubicomp/ Contains links to downloads

More information

Introduction to Android

Introduction to Android Introduction to Android Ambient intelligence Teodoro Montanaro Politecnico di Torino, 2016/2017 Disclaimer This is only a fast introduction: It is not complete (only scrapes the surface) Only superficial

More information

ACTIVITY, FRAGMENT, NAVIGATION. Roberto Beraldi

ACTIVITY, FRAGMENT, NAVIGATION. Roberto Beraldi ACTIVITY, FRAGMENT, NAVIGATION Roberto Beraldi Introduction An application is composed of at least one Activity GUI It is a software component that stays behind a GUI (screen) Activity It runs inside the

More information

Introduction to Android

Introduction to Android Introduction to Android http://myphonedeals.co.uk/blog/33-the-smartphone-os-complete-comparison-chart www.techradar.com/news/phone-and-communications/mobile-phones/ios7-vs-android-jelly-bean-vs-windows-phone-8-vs-bb10-1159893

More information

Understand applications and their components. activity service broadcast receiver content provider intent AndroidManifest.xml

Understand applications and their components. activity service broadcast receiver content provider intent AndroidManifest.xml Understand applications and their components activity service broadcast receiver content provider intent AndroidManifest.xml Android Application Written in Java (it s possible to write native code) Good

More information

University of Babylon - College of IT SW Dep. - Android Assist. Lect. Wadhah R. Baiee Activities

University of Babylon - College of IT SW Dep. - Android Assist. Lect. Wadhah R. Baiee Activities Activities Ref: Wei-Meng Lee, BEGINNING ANDROID 4 APPLICATION DEVELOPMENT, Ch2, John Wiley & Sons, 2012 An application can have zero or more activities. Typically, applications have one or more activities;

More information

Profiling and Debugging Games on Mobile Platforms

Profiling and Debugging Games on Mobile Platforms Profiling and Debugging Games on Mobile Platforms Lorenzo Dal Col Senior Software Engineer, Graphics Tools Gamelab 2013, Barcelona 26 th June 2013 Agenda Introduction to Performance Analysis with ARM DS-5

More information

CS 4518 Mobile and Ubiquitous Computing Lecture 4: Data-Driven Views, Android Components & Android Activity Lifecycle Emmanuel Agu

CS 4518 Mobile and Ubiquitous Computing Lecture 4: Data-Driven Views, Android Components & Android Activity Lifecycle Emmanuel Agu CS 4518 Mobile and Ubiquitous Computing Lecture 4: Data-Driven Views, Android Components & Android Activity Lifecycle Emmanuel Agu Announcements Group formation: Projects 2, 3 and final project will be

More information

CS 528 Mobile and Ubiquitous Computing Lecture 3b: Android Activity Lifecycle and Intents Emmanuel Agu

CS 528 Mobile and Ubiquitous Computing Lecture 3b: Android Activity Lifecycle and Intents Emmanuel Agu CS 528 Mobile and Ubiquitous Computing Lecture 3b: Android Activity Lifecycle and Intents Emmanuel Agu Android Activity LifeCycle Starting Activities Android applications don't start with a call to main(string[])

More information

EMBEDDED SYSTEMS PROGRAMMING Application Basics

EMBEDDED SYSTEMS PROGRAMMING Application Basics EMBEDDED SYSTEMS PROGRAMMING 2015-16 Application Basics APPLICATIONS Application components (e.g., UI elements) are objects instantiated from the platform s frameworks Applications are event driven ( there

More information

Mali Developer Resources. Kevin Ho ARM Taiwan FAE

Mali Developer Resources. Kevin Ho ARM Taiwan FAE Mali Developer Resources Kevin Ho ARM Taiwan FAE ARM Mali Developer Tools Software Development SDKs for OpenGL ES & OpenCL OpenGL ES Emulators Shader Development Studio Shader Library Asset Creation Texture

More information

The PowerVR Insider SDK. PowerVR Developer Technology

The PowerVR Insider SDK. PowerVR Developer Technology The PowerVR Insider SDK PowerVR Developer Technology Nov 2012 First, An Introduction! Who Am I? Who? Guillem Vinals Developer Technology Engineer, PowerVR Graphics What? An introduction to our PowerVR

More information

Mobile Computing. Introduction to Android

Mobile Computing. Introduction to Android Mobile Computing Introduction to Android Mobile Computing 2011/2012 What is Android? Open-source software stack for mobile devices OS, middleware and key applications Based upon a modified version of the

More information

Android App Development. Muhammad Sharjeel COMSATS Institute of Information Technology, Lahore

Android App Development. Muhammad Sharjeel COMSATS Institute of Information Technology, Lahore Android App Development Muhammad Sharjeel COMSATS Institute of Information Technology, Lahore Mobile devices (e.g., smartphone, tablet PCs, etc.) are increasingly becoming an essential part of human life

More information

OpenGL ES 2.0 SDK for Android. Mali. User Guide. Version: Copyright 2011 ARM. All rights reserved. ARM DUI 0587A (ID120411)

OpenGL ES 2.0 SDK for Android. Mali. User Guide. Version: Copyright 2011 ARM. All rights reserved. ARM DUI 0587A (ID120411) Mali OpenGL ES 2.0 SDK for Android Version: 1.0.0 User Guide Copyright 2011 ARM. All rights reserved. ARM DUI 0587A () Mali OpenGL ES 2.0 SDK for Android User Guide Copyright 2011 ARM. All rights reserved.

More information

A massive challenge: The cross-platform approach of the mobile MMO TibiaME Benjamin Zuckerer Product Manager, CipSoft GmbH

A massive challenge: The cross-platform approach of the mobile MMO TibiaME Benjamin Zuckerer Product Manager, CipSoft GmbH A massive challenge: The cross-platform approach of the mobile MMO TibiaME Benjamin Zuckerer Product Manager, CipSoft GmbH 1 / 31 What is this session about? Introduction to CipSoft and TibiaME TibiaME's

More information

Tegra 250 Development Kit Android Setup Experience

Tegra 250 Development Kit Android Setup Experience Tegra 250 Development Kit Android Setup Experience Version 20110301 February 2011-1 - Contents WELCOME TO TEGRA... 3 STEP 1: SETUP AND FLASH THE DEVKIT HARDWARE... 4 STEP 2: INSTALL THE JAVA DEVELOPMENT

More information

Android Apps. with Eclipse. Apress. Onur Cinar

Android Apps. with Eclipse. Apress. Onur Cinar Android Apps with Eclipse Onur Cinar Apress Contents About the Author About the Technical Reviewer Introduction x xi xii Chapter 1: Android Primer 1 Android History 1 Android Versions..2 Android Platform

More information

Lifecycle-Aware Components Live Data ViewModel Room Library

Lifecycle-Aware Components Live Data ViewModel Room Library Lifecycle-Aware Components Live Data ViewModel Room Library Multiple entry points launched individually Components started in many different orders Android kills components on reconfiguration / low memory

More information

Lecture 1 Introduction to Android. App Development for Mobile Devices. App Development for Mobile Devices. Announcement.

Lecture 1 Introduction to Android. App Development for Mobile Devices. App Development for Mobile Devices. Announcement. CSCE 315: Android Lectures (1/2) Dr. Jaerock Kwon App Development for Mobile Devices Jaerock Kwon, Ph.D. Assistant Professor in Computer Engineering App Development for Mobile Devices Jaerock Kwon, Ph.D.

More information

The Witness on Android Post Mortem. Denis Barkar 3 March, 2017

The Witness on Android Post Mortem. Denis Barkar 3 March, 2017 The Witness on Android Post Mortem Denis Barkar 3 March, 2017 Starting Point The Witness is in active development by Thekla Designed for PC and PS4/Xbox One Custom game engine Small codebase: about 1500

More information

Mobile Graphics Trends: Applications. Marco Agus, KAUST & CRS4

Mobile Graphics Trends: Applications. Marco Agus, KAUST & CRS4 Visual Computing Group Part 2.2 Mobile Graphics Trends: Applications Marco Agus, KAUST & CRS4 1 Visual Computing Group Part 3 Graphics development for mobile systems Marco Agus, KAUST & CRS4 2 Mobile Graphics

More information

Using the PowerVR SDK to Optimize your Renderer

Using the PowerVR SDK to Optimize your Renderer Using the PowerVR SDK to Optimize your Renderer March, 2013 www.imgtec.com Imagination Technologies p1 First, an Introduction www.imgtec.com Imagination Technologies p2 Who are we? Who? Joe Davis, Developer

More information

Understanding M3G 2.0 and its Effect on Producing Exceptional 3D Java-Based Graphics. Sean Ellis Consultant Graphics Engineer ARM, Maidenhead

Understanding M3G 2.0 and its Effect on Producing Exceptional 3D Java-Based Graphics. Sean Ellis Consultant Graphics Engineer ARM, Maidenhead Understanding M3G 2.0 and its Effect on Producing Exceptional 3D Java-Based Graphics Sean Ellis Consultant Graphics Engineer ARM, Maidenhead Introduction M3G 1.x Recap ARM M3G Integration M3G 2.0 Update

More information

Infrastructure Middleware (Part 3): Android Runtime Core & Native Libraries

Infrastructure Middleware (Part 3): Android Runtime Core & Native Libraries Infrastructure Middleware (Part 3): Android Runtime Core & Native Libraries Douglas C. Schmidt d.schmidt@vanderbilt.edu www.dre.vanderbilt.edu/~schmidt Institute for Software Integrated Systems Vanderbilt

More information

Introduction to Android

Introduction to Android Introduction to Android Ambient intelligence Alberto Monge Roffarello Politecnico di Torino, 2017/2018 Some slides and figures are taken from the Mobile Application Development (MAD) course Disclaimer

More information

Qualcomm Snapdragon Profiler

Qualcomm Snapdragon Profiler Qualcomm Technologies, Inc. Qualcomm Snapdragon Profiler User Guide September 21, 2018 Qualcomm Snapdragon is a product of Qualcomm Technologies, Inc. Other Qualcomm products referenced herein are products

More information

Memory Management: High-Level Overview

Memory Management: High-Level Overview Lecture 9 : High-Level Overview Gaming Memory (Last Generation) Playstation 3 256 MB RAM for system 256 MB for graphics card X-Box 360 512 MB RAM (unified) Nintendo Wii 88 MB RAM (unified) 24 MB for graphics

More information

States of Activities. Active Pause Stop Inactive

States of Activities. Active Pause Stop Inactive noname Conceptual Parts States of Activities Active Pause Stop Inactive Active state The state that the activity is on the most foreground and having a focus. This is in Active state. Active state The

More information

Understanding Application

Understanding Application Introduction to Android Application Development, Android Essentials, Fifth Edition Chapter 4 Understanding Application Components Chapter 4 Overview Master important terminology Learn what the application

More information

the gamedesigninitiative at cornell university Lecture 10 Memory Management

the gamedesigninitiative at cornell university Lecture 10 Memory Management Lecture 10 Gaming Memory (Current Generation) Playstation 4 8 GB RAM (unified) X-Box One (X) 12 GB RAM (unified) 9 GB for games Nintendo Switch 3 GB RAM (unified) 1 GB only for OS iphone/ipad 2 GB RAM

More information

CS378 -Mobile Computing. Anatomy of and Android App and the App Lifecycle

CS378 -Mobile Computing. Anatomy of and Android App and the App Lifecycle CS378 -Mobile Computing Anatomy of and Android App and the App Lifecycle Hello Android Tutorial http://developer.android.com/resources/tutorials/hello-world.html Important Files src/helloandroid.java Activity

More information

INTERNATIONAL JOURNAL OF PURE AND APPLIED RESEARCH IN ENGINEERING AND TECHNOLOGY

INTERNATIONAL JOURNAL OF PURE AND APPLIED RESEARCH IN ENGINEERING AND TECHNOLOGY INTERNATIONAL JOURNAL OF PURE AND APPLIED RESEARCH IN ENGINEERING AND TECHNOLOGY A PATH FOR HORIZING YOUR INNOVATIVE WORK A REVIEW ON THE ARCHITECTURE OF ANDROID IN SMART PHONES RAVNEET KAUR T. BAGGA 1,

More information

Lifecycle Callbacks and Intents

Lifecycle Callbacks and Intents SE 435: Development in the Android Environment Recitations 2 3 Semester 1 5779 4 Dec - 11 Dec 2018 Lifecycle Callbacks and Intents In this recitation we ll prepare a mockup tool which demonstrates the

More information

Programming Concepts and Skills. Creating an Android Project

Programming Concepts and Skills. Creating an Android Project Programming Concepts and Skills Creating an Android Project Getting Started An Android project contains all the files that comprise the source code for your Android app. The Android SDK tools make it easy

More information

Lab 1: Getting Started With Android Programming

Lab 1: Getting Started With Android Programming Islamic University of Gaza Faculty of Engineering Computer Engineering Dept. Eng. Jehad Aldahdooh Mobile Computing Android Lab Lab 1: Getting Started With Android Programming To create a new Android Project

More information

Developing Applications for ios

Developing Applications for ios Developing Applications for ios Lecture 1: Mobile Applications Development Radu Ionescu raducu.ionescu@gmail.com Faculty of Mathematics and Computer Science University of Bucharest Evaluation Individual

More information

Android Internals and the Dalvik VM!

Android Internals and the Dalvik VM! Android Internals and the Dalvik VM! Adam Champion, Andy Pyles, Boxuan Gu! Derived in part from presentations by Patrick Brady, Dan Bornstein, and Dan Morrill from Google (http://source.android.com/documentation)!

More information

OpenGL on Android. Lecture 7. Android and Low-level Optimizations Summer School. 27 July 2015

OpenGL on Android. Lecture 7. Android and Low-level Optimizations Summer School. 27 July 2015 OpenGL on Android Lecture 7 Android and Low-level Optimizations Summer School 27 July 2015 This work is licensed under the Creative Commons Attribution 4.0 International License. To view a copy of this

More information

Mobile Opportunities for the Open Source Community

Mobile Opportunities for the Open Source Community Mobile Opportunities for the Open Source Community Ravi Belwal (ravi.belwal@nokia.com) Sr. Technology Consultant Forum Nokia 1 2007 Nokia Corporation 2 2007 Nokia S60 is the leading converged device platform

More information

Profiling and Debugging OpenCL Applications with ARM Development Tools. October 2014

Profiling and Debugging OpenCL Applications with ARM Development Tools. October 2014 Profiling and Debugging OpenCL Applications with ARM Development Tools October 2014 1 Agenda 1. Introduction to GPU Compute 2. ARM Development Solutions 3. Mali GPU Architecture 4. Using ARM DS-5 Streamline

More information

Android* on Intel platforms

Android* on Intel platforms Android* on Intel platforms And what it means for you, developers. Xavier Hallade, Technical Marketing Engineer, Intel Our devices are already fully compatible with established Android* ecosystem Android

More information

ACTIVITY, FRAGMENT, NAVIGATION. Roberto Beraldi

ACTIVITY, FRAGMENT, NAVIGATION. Roberto Beraldi ACTIVITY, FRAGMENT, NAVIGATION Roberto Beraldi View System A system for organizing GUI Screen = tree of views. View = rectangular shape on the screen that knows how to draw itself wrt to the containing

More information

Porting mobile web application engine to the Android platform

Porting mobile web application engine to the Android platform 2010 10th IEEE International Conference on Computer and Information Technology (CIT 2010) Porting mobile web application engine to the Android platform Yonghong Wu, Jianchao Luo, Lei Luo School of Computer

More information

Android. Operating System and Architecture. Android. Screens. Main features

Android. Operating System and Architecture. Android. Screens. Main features Android Android Operating System and Architecture Operating System and development system from Google and Open Handset Alliance since 2008 At the lower level is based on the Linux kernel and in a higher

More information

CHAPTER 2: SYSTEM STRUCTURES. By I-Chen Lin Textbook: Operating System Concepts 9th Ed.

CHAPTER 2: SYSTEM STRUCTURES. By I-Chen Lin Textbook: Operating System Concepts 9th Ed. CHAPTER 2: SYSTEM STRUCTURES By I-Chen Lin Textbook: Operating System Concepts 9th Ed. Chapter 2: System Structures Operating System Services User Operating System Interface System Calls Types of System

More information

NSIGHT ECLIPSE EDITION

NSIGHT ECLIPSE EDITION NSIGHT ECLIPSE EDITION DG-06450-001 _v7.0 March 2015 Getting Started Guide TABLE OF CONTENTS Chapter 1. Introduction...1 1.1. About...1 Chapter 2. New and Noteworthy... 2 2.1. New in 7.0... 2 2.2. New

More information

CS260 Intro to Java & Android 04.Android Intro

CS260 Intro to Java & Android 04.Android Intro CS260 Intro to Java & Android 04.Android Intro Winter 2015 Winter 2015 CS260 - Intro to Java & Android 1 Android - Getting Started Android SDK contains: API Libraries Developer Tools Documentation Sample

More information

Intel Parallel Studio XE 2015 Composer Edition for Linux* Installation Guide and Release Notes

Intel Parallel Studio XE 2015 Composer Edition for Linux* Installation Guide and Release Notes Intel Parallel Studio XE 2015 Composer Edition for Linux* Installation Guide and Release Notes 23 October 2014 Table of Contents 1 Introduction... 1 1.1 Product Contents... 2 1.2 Intel Debugger (IDB) is

More information

Android System Development Training 4-day session

Android System Development Training 4-day session Android System Development Training 4-day session Title Android System Development Training Overview Understanding the Android Internals Understanding the Android Build System Customizing Android for a

More information

UNDERSTANDING ACTIVITIES

UNDERSTANDING ACTIVITIES Activities Activity is a window that contains the user interface of your application. An Android activity is both a unit of user interaction - typically filling the whole screen of an Android mobile device

More information

Android. Lesson 1. Introduction. Android Developer Fundamentals. Android Developer Fundamentals. to Android 1

Android. Lesson 1. Introduction. Android Developer Fundamentals. Android Developer Fundamentals. to Android 1 Android Lesson 1 1 1 1.0 to Android 2 Contents Android is an ecosystem Android platform architecture Android Versions Challenges of Android app development App fundamentals 3 Android Ecosystem 4 What is

More information

Introduction To Android

Introduction To Android Introduction To Android Mobile Technologies Symbian OS ios BlackBerry OS Windows Android Introduction to Android Android is an operating system for mobile devices such as smart phones and tablet computers.

More information

Minds-on: Android. Session 2

Minds-on: Android. Session 2 Minds-on: Android Session 2 Paulo Baltarejo Sousa Instituto Superior de Engenharia do Porto 2016 Outline Activities UI Events Intents Practice Assignment 1 / 33 2 / 33 Activities Activity An activity provides

More information

Whiz-Bang Graphics and Media Performance for Java Platform, Micro Edition (JavaME)

Whiz-Bang Graphics and Media Performance for Java Platform, Micro Edition (JavaME) Whiz-Bang Graphics and Media Performance for Java Platform, Micro Edition (JavaME) Pavel Petroshenko, Sun Microsystems, Inc. Ashmi Bhanushali, NVIDIA Corporation Jerry Evans, Sun Microsystems, Inc. Nandini

More information

Using Visual Studio and VS Code for Embedded C/C++ Development. Marc Goodner, Principal Program Manager, Microsoft

Using Visual Studio and VS Code for Embedded C/C++ Development. Marc Goodner, Principal Program Manager, Microsoft Using Visual Studio and VS Code for Embedded C/C++ Development Marc Goodner, Principal Program Manager, Microsoft Mission of C++ Product Team at Microsoft (DevDiv) Make the lives of all C++ developers

More information

Libraries are wri4en in C/C++ and compiled for the par>cular hardware.

Libraries are wri4en in C/C++ and compiled for the par>cular hardware. marakana.com 1 marakana.com 2 marakana.com 3 marakana.com 4 Libraries are wri4en in C/C++ and compiled for the par>cular hardware. marakana.com 5 The Dalvik virtual machine is a major piece of Google's

More information

Intel Integrated Native Developer Experience 2015 Update 2(OS X* Host)

Intel Integrated Native Developer Experience 2015 Update 2(OS X* Host) Intel Integrated Native Developer Experience 2015 Update 2(OS X* Host) Release Notes and Installation Guide 29 April 2015 Contents Introduction... 2 Acronyms and Terms... 2 New in this Release... 2 IDE

More information

21. This is a screenshot of the Android Studio Debugger. It shows the current thread and the object tree for a certain variable.

21. This is a screenshot of the Android Studio Debugger. It shows the current thread and the object tree for a certain variable. 4. Logging is an important part of debugging, which is hard to achieve on mobile devices, where application development and execution take place on different systems. Android includes a framework that

More information

Expected talk length: 30 minutes

Expected talk length: 30 minutes Expected talk length: 30 minutes Welcome to Bringing Borderlands 2 and Pre-Sequel to The SHIELD Platform. My name is Justin Kim, and I am an engineer with NVIDIA s Developer Technology group. Our group

More information

Chapter 2: Operating-System Structures

Chapter 2: Operating-System Structures Chapter 2: Operating-System Structures Chapter 2: Operating-System Structures Operating System Services User Operating System Interface System Calls Types of System Calls System Programs Operating System

More information

2017 Pearson Educa2on, Inc., Hoboken, NJ. All rights reserved.

2017 Pearson Educa2on, Inc., Hoboken, NJ. All rights reserved. Operating Systems: Internals and Design Principles Chapter 4 Threads Ninth Edition By William Stallings Processes and Threads Resource Ownership Process includes a virtual address space to hold the process

More information

NSIGHT ECLIPSE EDITION

NSIGHT ECLIPSE EDITION NSIGHT ECLIPSE EDITION DG-06450-001 _v8.0 September 2016 Getting Started Guide TABLE OF CONTENTS Chapter 1. Introduction...1 1.1. About...1 Chapter 2. New and Noteworthy... 2 2.1. New in 7.5... 2 2.2.

More information

More performance options

More performance options More performance options OpenCL, streaming media, and native coding options with INDE April 8, 2014 2014, Intel Corporation. All rights reserved. Intel, the Intel logo, Intel Inside, Intel Xeon, and Intel

More information

Android Market For Developers. Eric Chu (Android Developer Ecosystem)

Android Market For Developers. Eric Chu (Android Developer Ecosystem) Android Market For Developers Eric Chu (Android Developer Ecosystem) 2011.5.11 Android Market Merchandising Monetization Distribution Tools Customers 2 This even holds true for a game that uses 3D graphics...

More information

An Introduction to Android. Jason Chen Developer Advocate Google I/O 2008

An Introduction to Android. Jason Chen Developer Advocate Google I/O 2008 An Introduction to Android Jason Chen Developer Advocate Google I/O 2008 Background What is Android? Latest News 4,000,000,000 Internet and Mobile Phone Users, Worldwide 3,000,000,000 2,000,000,000 1,000,000,000

More information

Google Maps Troubleshooting

Google Maps Troubleshooting Google Maps Troubleshooting Before you go through the troubleshooting guide below, make sure that you ve consulted the class FAQ, Google s Map Activity Tutorial, as well as these helpful resources from

More information

Computer Science E-76 Building Mobile Applications

Computer Science E-76 Building Mobile Applications Computer Science E-76 Building Mobile Applications Lecture 3: [Android] The SDK, Activities, and Views February 13, 2012 Dan Armendariz danallan@mit.edu 1 http://developer.android.com Android SDK and NDK

More information

ANDROID APPS DEVELOPMENT FOR MOBILE AND TABLET DEVICE (LEVEL I)

ANDROID APPS DEVELOPMENT FOR MOBILE AND TABLET DEVICE (LEVEL I) ANDROID APPS DEVELOPMENT FOR MOBILE AND TABLET DEVICE (LEVEL I) Lecture 3: Android Life Cycle and Permission Entire Lifetime An activity begins its lifecycle when entering the oncreate() state If not interrupted

More information

ECM583 Special Topics in Computer Systems

ECM583 Special Topics in Computer Systems ECM583 Special Topics in Computer Systems Lab 2. ARM Cross-Compilation using Eclipse In this lab, we are going to set up an environment to cross-compile ARM code (C and/or Assembly code) under Eclipse.

More information

UnCovert: Evaluating thermal covert channels on Android systems. Pascal Wild

UnCovert: Evaluating thermal covert channels on Android systems. Pascal Wild UnCovert: Evaluating thermal covert channels on Android systems Pascal Wild August 5, 2016 Contents Introduction v 1: Framework 1 1.1 Source...................................... 1 1.2 Sink.......................................

More information

ios vs Android By: Group 2

ios vs Android By: Group 2 ios vs Android By: Group 2 The ios System Memory Section A43972 Delta Core OS Layer Core Services Layer Media Layer CoCoa Touch Layer Memory Section A43972 Delta Aaron Josephs Core OS Layer - Core OS has

More information

Android Overview. Most of the material in this section comes from

Android Overview. Most of the material in this section comes from Android Overview Most of the material in this section comes from http://developer.android.com/guide/ Android Overview A software stack for mobile devices Developed and managed by Open Handset Alliance

More information

PVRTrace. Quick Start Guide for Unrooted Android Devices

PVRTrace. Quick Start Guide for Unrooted Android Devices Public Imagination Technologies PVRTrace Quick Start Guide for Unrooted Android Devices Public. This publication contains proprietary information which is subject to change without notice and is supplied

More information

Lecture 3 Android Internals

Lecture 3 Android Internals Lecture 3 Android Internals This work is licensed under the Creative Commons Attribution 4.0 International License. To view a copy of this license, visit http://creativecommons.org/licenses/by/4.0/ or

More information

Bringing it all together: The challenge in delivering a complete graphics system architecture. Chris Porthouse

Bringing it all together: The challenge in delivering a complete graphics system architecture. Chris Porthouse Bringing it all together: The challenge in delivering a complete graphics system architecture Chris Porthouse System Integration & the role of standards Content Ecosystem Java Execution Environment Native

More information

EMBEDDED SYSTEMS PROGRAMMING Android NDK

EMBEDDED SYSTEMS PROGRAMMING Android NDK EMBEDDED SYSTEMS PROGRAMMING 2014-15 Android NDK WHAT IS THE NDK? The Android NDK is a set of cross-compilers, scripts and libraries that allows to embed native code into Android applications Native code

More information

Android Programming in Bluetooth Cochlea Group

Android Programming in Bluetooth Cochlea Group Android Programming in Bluetooth Cochlea Group Zijian Zhao Abstract: My project is mainly android programming work in the Bluetooth Cochlea Group. In this report I will first introduce the background of

More information

Another difference is that the kernel includes only the suspend to memory mechanism, and not the suspend to hard disk, which is used on PCs.

Another difference is that the kernel includes only the suspend to memory mechanism, and not the suspend to hard disk, which is used on PCs. 9. Android is an open-source operating system for mobile devices. Nowadays, it has more than 1.4 billion monthly active users (statistic from September 2015) and the largest share on the mobile device

More information

Android Programmierung leichtgemacht. Lars Vogel

Android Programmierung leichtgemacht. Lars Vogel Android Programmierung leichtgemacht Lars Vogel Twitter: @vogella Lars Vogel Arbeitet als unabhängiger Eclipse und Android Berater und Trainer Arbeit zusätzlichen für SAP AG als Product Owner in einem

More information

Hardware Accelerated Graphics for High Performance JavaFX Mobile Applications

Hardware Accelerated Graphics for High Performance JavaFX Mobile Applications Hardware Accelerated Graphics for High Performance JavaFX Mobile Applications Pavel Petroshenko, Sun Microsystems Jan Valenta, Sun Microsystems Jerry Evans, Sun Microsystems Goal of this Session Demonstrate

More information

ANDROID APPS DEVELOPMENT FOR MOBILE AND TABLET DEVICE (LEVEL I)

ANDROID APPS DEVELOPMENT FOR MOBILE AND TABLET DEVICE (LEVEL I) ANDROID APPS DEVELOPMENT FOR MOBILE AND TABLET DEVICE (LEVEL I) Lecture 3: Android Life Cycle and Permission Android Lifecycle An activity begins its lifecycle when entering the oncreate() state If not

More information

Hiroyuki Kobota Director Principal Engineer. Alex Adjadj Director Global Strategic Development & Mobile Sales

Hiroyuki Kobota Director Principal Engineer. Alex Adjadj Director Global Strategic Development & Mobile Sales Hiroyuki Kobota Director Principal Engineer Alex Adjadj Director Global Strategic Development & Mobile Sales Part 1 Technical Presentation Part 2 TIZEN & NAMCO BANDAI Games Part 1 Technical Presentation

More information

SHWETANK KUMAR GUPTA Only For Education Purpose

SHWETANK KUMAR GUPTA Only For Education Purpose Introduction Android: INTERVIEW QUESTION AND ANSWER Android is an operating system for mobile devices that includes middleware and key applications, and uses a modified version of the Linux kernel. It

More information

Comprehensive Development and Debug Coverage for Linux and Android on the MIPS Architecture

Comprehensive Development and Debug Coverage for Linux and Android on the MIPS Architecture Comprehensive Development and Debug Coverage for Linux and Android on the MIPS Architecture Presented by MIPS Technologies Powering a Connected World October 2010 Today s presenters: Rick Leatherman VP

More information

PowerVR: Getting Great Graphics Performance with the PowerVR Insider SDK. PowerVR Developer Technology

PowerVR: Getting Great Graphics Performance with the PowerVR Insider SDK. PowerVR Developer Technology PowerVR: Getting Great Graphics Performance with the PowerVR Insider SDK PowerVR Developer Technology Company Overview Leading silicon, software & cloud IP supplier Graphics, video, comms, processor, cloud

More information

Android on Tizen. Moscow State University

Android on Tizen. Moscow State University Android on Tizen 1 Moscow State University Presenter Andrey Shitov PhD Student at Lomonosov Moscow State University (MSU), Computational Mathematics and Cybernetics 2 Compilers, Virtual Machines, System

More information