Objects First with Java Class Business © David J. Barnes and Michael Kölling
Android Introduction Android is an operating system that runs on mobile platforms “smartphones” & tablets Cars Watches Cameras Based on Linux Open source, free
History Android, Inc founded in 2003, financed by Google Google bought the company in 2005 Android release Android in 2007 First handset in 2008 Releases are named after desserts/snacks (current is “Marshmallow” – Android 6.0.1)
Issues on Android Platforms Platforms are battery powered, restricted in CPU and memory Screens are small compared to desktops Policies When an app is no longer in use, the system will suspend it in memory (consume no resources) When memory is low, the system will kill apps and processes that have been inactive for a while
Environment Android Development Kit is free Hooks into Eclipse or Android Studio Emulators are useful
User Interface The UI for an Android app is built using a hierarchy of View and ViewGroup objects. View objects are usually UI widgets such as buttons or textfields ViewGroup objects are invisible view containers that define how the child views are laid out, such as in a grid or a vertical list.
Assumed Methods Android programming is very object oriented There are lots of assumed methods initially defined as empty that govern app behavior.
Activity An Activity is the main object in an Android app. Lifecycle:
Example
XML HTML-like syntax that is used for many things, especially specification languages HTML is actually a specialized XML Tag-based language <blah> … </blah>
Example: activity_main <RelativeLayout android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/hello_world" /> </RelativeLayout>
AndroidManifest.xml Basic app specification file Contains info on: Permissions Version minimums Icons
Example: Walk through Eclipse
Event Programming in Android Same idea, different methods, clunky implementation Might want to take special actions to make the code look nice
Listeners OnClickListener is the analog to ActionListener in Java Others: OnLongClickListener KeyListener Many built-in listeners just need methods defined
Example (note pattern) LinearLayout container = (LinearLayout) dialog.findViewById(R.id.new_class_dialog_button_container); EditText et = (EditText) dialog.findViewById(R.id.new_class_name); et.setText(""); et = (EditText) dialog.findViewById(R.id.new_class_nickname); Button button = (Button) container.findViewById(R.id.create_new_button); button.setOnClickListener(new createNewClassDialogAction(dialog)); button = (Button) container.findViewById(R.id.cancel_new_button); button.setOnClickListener(new cancelDialogAction(dialog));
Stupid: showDialog When a dialog needs to be display, you would call “showDialog(DIALOGNUMBER)” Then define “onCreateDialog(int dialognum)” Amounts to a big if…then…else… combination Really bad code
Exercise
Look at complex example