CS5103 Software Engineering Lecture 07 Android Development II
Last class 2 Projects Android Development I Process and Evaluation Requirements Calendar SMS Messenger Contact Manager Book Shelf Android Development I Android system & Emulator Environment Setup 2
Today’s class Basic Android Development 3 Structure of an android project Basic UI Components Activities and Lifecycle Action bars 3
Set environment variables Set Android_SDK_Home: %Android_SDK_Home%/.android will be the place all virtual devices stored You may set your sdk directory as Android_SDK_Home Add dirs to PATH env variable Your sdk directory/tools Your sdk directory/platform-tools 4
Structure of an Android Project Source code Generated code Manifest file Resource files 5
Source code & generated code The code you will work on Activities Typically mainly implementing system call backs Generated code The code generated by the system according to your resource files R.java Including references to all fields in resource files Do not edit it 6
Main components of android apps Activities Services Broadcast Receivers They usually can be executed directly with intents Intents Messages sent and received between components System intents 7
Activities Most important component of an android app 8 An activity is basically everything showed at one time on the screen Like window or frame in the desktop UI applications Explore an app by trigger different activities An activity has its own resource files 8
Manifest file Package name Versions targeted at Activities Intent filters Permissions Uses-permissions Declare permissions 9
Permissions 10 System permissions User defined permissions Network Reading/Writing/Sending/Receiving sms Making/Receiving calls Reading/writing contacts Reading/writing SD cards … http://developer.android.com/reference/android/Manifest.permission.html User defined permissions 10
Resource files 11 Source code Generated code The code you will work on Activities Typically mainly implementing system call backs Generated code The code generated by the system according to your resource files R.java Including references to all fields in resource files Do not edit it 11
Resource files Drawable Layout Menu 12 Icons used in the app An xml file describing the layout of an activity Eclipse-ADT provides a graphics layout, and maintain the consistency Menu An xml file describing the menu of an activity 12
Resource files Values Dimensions Strings Styles (color, fonts, etc.) A project usually has multiple value folders for different targeted devices Dimensions for different device size Strings for different languages 13
Today’s class Basic Android Development 14 Play with Emulator Structure of an android project Basic UI Components Activities and Lifecycle Action bars 14
Basic UI Components Views ViewGroup 15 Basic UI component Button, Checkbox, MenuItem, etc. ViewGroup A invisible container that holds views Determines how views are placed in the container LinearLayout, GridLayout, AbsoluteLayout, etc. 15
Views and View Groups 16
Basic UI Components Views ViewGroup 17 Basic UI component Button, Checkbox, MenuItem, etc. ViewGroup A invisible container that holds views Determines how views are placed in the container LinearLayout, RelativeLayout, GridView, ListView 17
Add views/viewgroups to a project All views and view groups can be added by Editing layout resource file of an activity (recommended) Edit the graphics layout Set main attributes Height Width Text / hint 18
Layouts Linear layouts 19 Views are placed in a vertical or horizontal list The default size of views are “wrap_content” You may set weight for views to make them occupy more spaces 19
Layouts Relative layouts 20 Views are placed relative to their neighbors Views are places from top-left corner by default Avoid too much hierarchies 20
Layouts List Views 21 Bind to ListActivity A vertical list of scrollable items Use Adaptor to build and manage items 21
Layouts Grid Views Display items in a two-dimensional scrollable grid Use adaptors to build view and manage items 22
An example of input and display messages 23
Respond to UI components Add the onclick attribute The content of the attribute is the name of method to be executed Access data in the current activity Find view by id Do not forget to set an id for the views you want to get data from 24
Respond to UI components Requirement to the responding method Public Return type is void Has a single parameter: android.view.View Otherwise the system will not be able to call the responding method 25
Start another activity Create a new activity Add it to multiple places (done automatically by eclipse) Source code Manifest file Resource files for the new activity Generate an intent to start the activity 26
Activity life cycles 27 Create Start Pause: Resume Stop Destroy The activity become fully visible to the user Pause: The activity is partially visible, e.g., pop-up window Resume The activity is fully visible again Stop The activity is hidden Destroy 27
Activity life cycles 28
Menus Menus are by default in the project Each activity has a menu resource file A empty action called settings is listed in the menu Since phone screens are quite small, menu provide a place to put extra buttons that cannot be put onto the screen 29
Add items to menus Add item to the resource file Add ids to each item Implement the method: onOptionsItemSelected(MenuItem item) 30
Today’s class Basic Android Development 31 Play with Emulator Structure of an android project Basic UI Components Activities and Lifecycle Action bars 31
Thanks! 32
Start an emulator In eclipse In command line 33 Go to device manager Click Start In command line emulator –avd ‘virtual device name’ 33
On the emulator 34 Use your keyboard to input text Useful Shortcuts Home -> Home Esc -> back F2 -> Menu Ctrl + F12 -> change orientation Manage Apps Go to menu -> manage apps Operating everything as on a phone 34
Adb interface 35 A very useful tool for controlling emulator adb devices: show all running emulators Install and uninstall apps adb push & pull: transfer data between the host system and the emulator adb logcat: print the system log of the emulator adb shell: access the file system of the emulator Manage files in the virtual device adb shell pm: List all installed apps 35
Telnet interface 36 telnet localhost <port number> Simulate a number of events Phone calls gsm call <number> SMS sms send <number> <“text”> Power level power status charging / not-charging, power capacity <percentage> Set GPS geo fix <longitude> <latitude> 36
Today’s class Basic Android Development 37 Play with Emulator Structure of an android project Basic UI Components Activities and Lifecycle Action bars 37