Android Application Development – Lecture Notes
INDEX
Lesson 1. Introduction
1-2 Mobile Phone Evolution
1-3 Hardware: What is inside a Smart Cellular Phone?
1-4 Hardware: Reusing Cell Phone Frequencies
1-5 Software: What is Android?
1-6 Why Android?
1-7 What is the Open Handset Alliance?
1-8 Open Handset Alliance Members
1-10 The Mobile Revolution
1-12 Android vs. OS Competitors
1-13 Android Software/Hardware Components
1-14 Android’s Software Architecture
1-15 Software Layers (Video)
1-16 Application’s Life Cycle (Video)
1-17 Android’s API (Video)
1-18 Android Application Framework (Video)
1-19 Android Development Tools (Video)
1-20 An Introduction to Android (Video)
1-21 The Dalvik Virtual Machine (Video)
1-22 Android Intents
1-24 Example1: Java + Built-in Intent
1-27 Dissecting an Android Application
1-28 Android Manifest XML File
1-31 Example2. Currency converter
Appendix – The Size of the Mobile Market
1-40 2009 Mobile market compared to other technologies
1-41 2009 Mobile Revenue
1-42 2009 Mobile Search Market
1-43 2009 How SMS compares as a text communication application
1-44 2009 Mobile Operating System Market Share Worldwide
1-45 Mobile Market – Second Quarter 2010-Q2
1-46 Mobile Market – Fourth Quarter 2010-Q4
1-47 Mobile Market – Second Quarter 2011-Q2
1-48 Mobile Market – First Quarter 2014-Q1
1-51 Cell-Phone Diffusion
Lesson 2. Android App Development Using Eclipse + ADT + SD
2-2 Android Applications (Just Apps)
2-3 Dalvik Virtual Machine vs. Android Runtime (ART)
2-4 Development Workbenches
2-5 Typical Layout of the Eclipse-ADT IDE
2-6 Layout of Android-Studio IDE
2-7 Eclipse Setup
2-8 SDK names
2-9 Users Wanting to Update an Older Android Workbench
2-10 First Time Android Users who have Eclipse already installed
2-11 Configure the ADT Plugin
2-12 Working with Virtual Devices (AVDs)
2-13 Creating a Virtual Device (AVD)
2-16 Testing a Virtual Device (AVD)
2-17 Running a Virtual Device (AVD)
2-20 Controlling the AVD Operations
2-21 Working with Emulator Disk Images
2-22 Upload/download Data, Music and Picture files to the Emulator’s SDcard
2-27 Example : HelloWorld App
2-33 File Structure of a Typical Android App
2-34 Login into the Android OS shell
2-38 Hacking: Moving an app from a Rooted Phone to the Emulator
2-39 Simpler than Hacking: Install a File Manager for Android
2-40 Using an alternate SD card & userData Image
2-41 Sending Text Messages from your Window’s PC to the Emulator
2-43 Making a Phone Call from your PC to the Emulator
2-45 Using Eclipse’s DDMS facility
2-48 Appendix 1 - Using a Hardware Device
2-49 Appendix 2 – Emulator-to-Emulator Interaction
2-50 Appendix 3 - How to Transfer Your Google Contacts into the Emulator
Lesson 3. Application’s Life Cycle
3-2 Anatomy of Android Apps - Core Components
3-3 1. Activity Class
3-4 Example of an app containing multiple Activities
3-5 2. Service Class
3-7 3. Broadcast Receiver Class
3-9 4. Content Provider Class
3-11 Life and Death in Android
3-13 The Activity Stack
3-15 Life Cycle Callbacks
3-17 Activity States and Callback Methods
3-18 Activity State: Running
3-19 Activity State: Paused
3-20 Activity State: Stopped
3-21 Activity Life Cycle Diagram
3-22 Your turn! Lab Experience 1
3-25 Your turn! Lab Experience 2
3-26 Your turn! Lab Experience 3
3-27 Foreground Lifetime
3-28 Associating Lifecycle Events with Application’s Code
3-31 Killable States
3-32 Data Persistence using Android SharedPreferences Class
3-34 A complete Example: The LifeCycle App
Lesson 4. Graphical User Interfaces
4-2 The Model-View-Control Pattern (MVC)
4-5 Android UI Design Patterns (Video)
4-6 The View Class
4-7 Using XML to represent UIs
4-8 Nesting XML Layouts
4-9 Setting Views to Work
4-10 A Sample of Common Android Layouts
4-11 A Sample of Common Android Widgets
4-13 GUI Editing: XML Version
4-14 GUI Editing: WYSIWYG Version
4-15 Tools you can use to create an Android GUI
4-16 GUI Elements: The LAYOUT
4-17 FrameLayout
4-18 LinearLayout
4-19 Setting Attributes
4-20 Orientation
4-21 Fill Model
4-24 Warning! Same XML different rendition…
4-25 Weight
4-26 Gravity
4-27 Layout-Gravity vs. Gravity
4-28 Padding
4-29 Padding and Margin
4-32 Relative Layout
4-34 Referring to the container
4-35 Referring to Other Widgets
4-38 Example 2
4-39 Table Layout
4-40 Setting number of columns
4-41 Example3
4-43 Stretching a column
4-45 Example4
4-46 Stretching the entire table
4-48 ScrollView Layout (Vertical & Horizontal)
4-49 Example 5. Vertical ScrollView Layout
4-50 Example 6. HorizontalScrollView Layout
4-51 Miscellaneous: Absolute Layout (Deprecated)
4-53 Connecting Layouts to Java Code
4-55 What is the meaning of an Android Context? (aside)
4-58 Basic Widgets: TextViews
4-59 Example 8 - TextViews
4-60 Basic Widgets: Buttons
4-61 Example9: Connecting Multiple Buttons
Lesson 4. Graphical User Interfaces
4-63 Buttons - Combining Images & Text
4-65 How icons are used in Android?
4-66 Basic Widgets: EditText Boxes
4-67 Example10: Login-Screen
4-69 Programming time – Your turn!
4-75 Basic Widgets: CheckBoxes
4-76 Example11: CheckBoxes – CaféApp
4-77 Basic Widgets: CheckBoxes
4-82 Example12: CheckBoxes – CaféApp
4-83 Miscellaneous: Useful UI Attributes & Java Methods
4-88 Appendix A. Using the @string resource
4-90 Appendix B. DroidDraw
4-91 Appendix C. Android Asset Studio
4-92 Appendix D. Measuring Graphic Elements
4-93 Appendix E. Hierarchy Viewer Tool
4-96 Appendix F. Customizing Widgets
4-97 Appendix G: Fixing Bleeding Background Color
4-107 Appendix H: Useful Color Theme (Android Holo)
4-108 ImageView & ImageButton
Lesson 5. List-Based Widgets: Lists, Grids, and Scroll Views
5-2 GUI Design for Selection Making
5-3 Showing a large set of choices on the GUI
5-4 ListViews
5-5 ArrayAdapter
5-6 List-Based App = ListView + Data + DataAdapter
5-7 Using the ArrayAdapter<String> Class
5-8 Example1A: ListView showing a simple list (plain text)
5-14 An experiment based on Example1A
5-15 Another code experiment based on Example1A
5-16 Example1B: Using Activity & ArrayAdapter
5-19 Example1C: Custom ListView
5-21 The Spinner Widget
5-25 Example2: Using the Spinner Widget
5-26 GridViews
5-27 Useful Properties
5-28 Fitting the View to the Screen
5-31 Example3A: GridView Demo - Layout
5-33 AutoComplete TextView
5-36 Example4: AutoComplete Demo - Layout
5-37 The HorizontalScrollView Widget
5-38 Example5: HorizontalScrollView Demo
5-39 How to make a thumbnail ?
5-47 Populating The HorizontalScrollView Widget
5-48 Image-Based GridViews (again…)
5-49 Example6: GridView Images Demo
5-55 Custom Adapter - MyImageAdapter
5-58 Example6B: An Experiment - Changing from GridView to ListView
5-60 Using The Spinner Widget (again…)
5-61 Example7: Spinner Demo2
5-66 Example8: Defining your own ListViews
5-67 Create your own DataAdapter
5-68 Designing Custom-Rows
5-76 The LayoutInflater Class
5-77 Example 9: Storing Images on the SD card
5-81 The BitmapFactory class
5-83 Appendix A: Predefined Android Resources
5-85 Appendix B: EditText Boxes & Keyboarding
5-90 Example10: Using android:inputType=" text|textCapWords"
5-93 Example 11: Using android:inputType="number|numberSigned|numberDecimal"
5-94 Example 12: Using android:inputType="textPassword"
5-94 Example 13: Using android:inputType="textEmailAddress"
5-95 Example 14: Using android:inputType="phone"
5-96 Example 15: Using android:inputType="time"
5-97 Example 16: Using android:inputType="time"
5-99 Example 17: Using android:inputType="datetime"
5-100 Enable-Disable Soft Keyboarding on an EditText View
Lesson Y. X
Lesson Y. X