Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Android Application Development Adam Gerber, PhD, SCJP [email protected] Office: Ryerson 154 Office Hours: Mon 8:20pm-10:00pm TA: Jonathan Nieder [email protected] Evaluations 20% homework assignments (4@ 5% each) 20% midterm exam 50% individual final project (take home) 10% class participation Late homework/final project is penalized 10% every day late, for three days; after that, you get a zero. lec 01 The Android Computing Platform and Architecture Setting Up Your Development Environment Tour of Eclipse/ADT First App: HelloWorld Understanding Android Resources The Android Computing Platform Android • Comprehensive open-source platform for mobile devices • Owned by Open Handset Alliance • Championed by Google • Stated goal: "accelerate innovation in mobile and offer consumers a richer, less expensive, and better mobile experience." Vision for Android Version API Level Nickname Android 1.0 1 Android Android 1.1 2 Android Android 1.5 3 Cupake Android 1.6 4 Donut Android 2.0 5 Eclair Android 2.01 6 Eclair Android 2.1 7 Eclair Android 2.2 8 FroYo Android 2.3 9 Gingerbread Android 2.3.3 10 Gingerbread Android 3.x 11,12,13 Honeycomb Android 4.0.1 – 4.0.2 14 Ice Cream Sandwich Android 4.0.3 – 4.0.4 15 Ice Cream Sandwich http://developer.android.com/resources/dashboard/platform-versions.html Mods (skins) Open Handset Alliance The OHA was established on 5 November 2007, led by Google with 34 members including mobile handset makers, application developers, some mobile carriers and chip makers. Android, the flagship software of the alliance, is based on an open source license and competes against mobile platforms from Apple, Microsoft, Nokia (Symbian), HP (formerly Palm), Research In Motion, and Samsung Electronics (bada). Headquarters: South Korea http://en.wikipedia.org/wiki/Open_Handset_Allianc e http://en.wikipedia.org/wiki/Android_(operating_system ) Setting up your dev enviroment Getting/Using the tools Google-search-> java jdk || java se downloads || JDK version 6 || install to c:\java || set the path env variable. C:\path\to\jdk\bin || java -version from command line. Google-search-> android sdk || install to c:\java\android-sdk || path to C:\java\android-sdk\platform-tools;C:\java\android-sdk\tools; adb devices to test. Google-search-> eclipse ide | right-side download eclipse get the SE version || portable version so no need to "install" || dnd in root of c Google-search-> adt eclipse || half way down to red url, and copy it. | within eclispe help || install new software || paste in there. within eclipse || little-down arrow || opens And SdK manager 4.0.3 within eclipse || little=phone-icon || pulls up AVDM new http://www.classes.cs.uchicago.edu/archive/2012/summer/51031-1/androidsrc.zip C:\java\android-sdk\platforms\android-15\sources\android-src.zip Quick Java Review Java Primitives (integers) Type Signed? byte signed short int long signed signed signed Bits Bytes Lowest 8 16 32 64 1 -27 -128 Highest 27-1 +127 -215 2 -32,768 215-1 32,767 -231 4 -2,147,483,648 231-1 2,147,483,647 -263 263-1 -9, 9,223,372,036,85 8 223,372,036,854 4,775,807 ,775,808 How Java Stores positive Integers -2(bits -1) to 2(bits -1) – 1 •0001 0011 •The above is a binary representation of the number 19 stored in a byte (8 bits). •The range of a byte is: -128 to 127. Java Primitives (others) Type Signed? boolean n/a char unsigned Unicode float signed exponent and mantissa double signed exponent and mantissa Bits Bytes Lowest 1 16 32 64 Highest 1 false true 2 0 '\u0000' 216-1 '\uffff' 4 ±1.4012984643 2481707e-45 ±3.40282346638 528860e+38 with 6 to 7 significant digits of accuracy. 8 ±4.9406564584 1246544e-324 ±1.79769313486 231570e+308 with 14 to 15 significant digits of accuracy. Primitives versus Objects memory Primitives Objects Variables store values and are allocated memory depending on their type. How much?...refer to Java Primitives slide. References store memory addresses. The size of the allocation for the object reference is VM specific, but is usually the native pointer size; 32bits in 32-bit VM, and 64bits in a 64bit VM. Garbage collected when out-of-scope. Garbage collected when out-of-scope. Passed into methods by value Passed into methods by reference (value of the address is passed) primitive pass by value Action: Tell my accountant how much I intend to spend on a new car next year. Change in bank account: no change. object pass by reference Action: Swipe debit card and enter pin at the Bently dealership. Change in bank account: -125k. Class Objects Class Objects Spot the “class” here Naming conventions Naming local variables - suggestions boolean bFlag byte yAge char cFirst short sRosterSize int nStudent; nC long lPopulation float fPrice double dDistanceToMoon Naming local references - suggestions Person per perDirector String str strFirstName Rectangle rec recShape Bee bee beeDrone Naming local arrays and collections suggestions Array of boolean bAnswers Array of byte yAges Array of int nIdentities Array of Person perStudents Array of String strCountries Collection of Bee such as ArrayList<Bee> beeDrones Collection of Athlete athPlayers Why use a naming convention? metadata is immediately discernible just by looking at the local variable or local reference name. This makes your code easy to read and debug. Primitives always have one letter prefix; nNumber References have three letter prefix; perDirector. Arrays and collections have s postfix: beeDrones; strCountries, nLevels. Avoid ending with s for variables or references that are NOT collections/arrays; e.g. nRadiux, or nRadius_ Overridden methods in Android come with their own set of params. Eclipse IDE Shortucts: New class and browse to superclass Activity Cntrl-numeric 1 is QuickFix! Control click to source. Source || override/implements methods Extract method Create getters and setters Templates || see video Window || preferences || Java || Editor || Templates Ctrl-Shift-L Using the debugger Perspectives; Java and Debug Setting breakpoints Step-over F6, and Step-in F5 Watch expressions Conditional breakpoints Resources in Android Alt-Shift-A to externalize strings <st + ctrl space Create many xml resources, but don't name the actual resources the same Add resources from the Add Resources from the graphical editor and also manually. #FFFFFF white getResources(). getStringArray(R.array.whatever) Building Blocks of an App • Activities • Intents • Services • Content Providers • Broadcast Recievers Some Developer Resources Dev Guide • • http://developer.android.com/guide/topics/fu ndamentals.html http://developer.android.com/training/index. html Turning in Assignments Use git