Introduction to Android Programming 19.3.2013 Content Basic environmental structure Building a simple app Debugging Basic environmental structure Create a very simple application Examine its structure Run it on a real device Run it on the emulator Create a new Android project (File > New > Android Application) Directory name Android version Name that appears on device Class to automatically create Java package Set your project: Project Name: Hello World Build Target: Select Android 2.1 Application Name: Hello World Package Name: com.android.test Create Activity: HelloWorld Press "Finish" Project Components src – your source code gen – auto-generated code (usually R.java) Included libraries Resources – Drawables (like .png images) – Layouts – Values (like strings) Manifest file Source code Auto-generated code String constants UI layout Configuration Now you have your project created let's write some code! Your code is located in a file called HelloWorld.java in the src folder. Your screen layout file is main.xml in the layout directory. Project files HelloWorld.java Sourcecode 1 2 3 4 5 6 7 8 9 Inherit from the Activity Class public class HelloAndroid extends Activity { /** Called when the activity first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } } Set the layout of the view as described in the main.xml layout Hello World modify HelloWorld.java 12 XML file Used to define some of the resources – Layouts (UI) – Strings – Manifest file res/layout: contains layout declarations of the app, UIs are built according to the layout file Elements and layouts ImageButton EditText CheckBox Button RadioButton ToggleButton RatingBar Elements and layouts DatePicker TimePicker Spinner AutoComplete Gallery MapView WebView Types of Layouts Linear Layout – It organizes controls vertical or horizontal fashion Relative Layout, – It organizes controls relative to one another. Table Layout – A grid of made up of rows and columns, where a cell can display a view control Frame Layout – Frame layouts are the normal layout of choice when you want to overlap different views stacked on top the other. Layout Open main.xml in Layout mode select main.xml to view/edit the xml markup Drag a button on to layout Layout Linear Layout main.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android=http://schemas.android.com/apk/res/android android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <TextView android:layout_width="fill_parent" TextView, android:layout_height="wrap_content" android:text="@string/hello" /> display static </LinearLayout> text A reference to String resource ‘hello’ 21 strings.xml In res/values strings.xml Promotes good programming style Strings are just one kind of ‘Value’ 1 2 3 4 5 6 <?xml version="1.0" encoding="utf-8"?> <resources> <string name="hello">Hello World, HelloAndroid! </string> <string name="app_name">Hello, Android</string> </resources> Manifest File Contains characteristics about your application NEED to specify it in manifest file – Have more than one Activity in app, – Services and other components too – Important to define permissions and external libraries, like Google Maps API Manifest File – Adding an Activity AndroidManifest.xml 1 <?xml version="1.0" encoding="utf-8"?> 2 <manifest 3 xmlns:android="http://schemas.android.com/apk/res/android" 4 package="edu.upenn.cis542" 5 android:versionCode="1" 6 android:versionName="1.0"> 7 <application android:icon="@drawable/icon" 8 android:label="@string/app_name"> 9 <activity android:name=".HelloAndroid" 10 android:label="@string/app_name"> 11 <intent-filter> 12 <action 13 android:name="android.intent.action.MAIN" /> 14 <category 15 android:name="android.intent.category.LAUNCHER"/> 16 </intent-filter> 17 </activity> 18 </application> 19 </manifest> Run Hello World Select HelloWorld Project, Run->Run as->Android Application ADT will start a proper AVD and run HelloWorld app on it 26 You may receive "Android AVD Error" if you have not setup an android emulator device. Select yes to setup a new Android Virtual Device Select "New" Create new Android Virtual Device • Name: Android 2.1 • Target: Android 2.1 API Level 7 • SD card Size: 4000 MiB • Rest as default settings To get it running… Press "Create AVD". Be patient it will take a minute to create your new AVD. Select your new AVD and run your application. Emulator On Phone Should be enabled on phone to use developer features In the main apps screen select: → Settings → Applications → Development → USB debugging (needs to be checked) How to Debug Log.v(tag, message); Window > Show View > Other > Android > LogCat To show a pop-up window: Toast.makeText( getApplicationContext(), message, Toast.LENGTH_LONG).show(); Logcat Information Log.e("MyTag", "Error message with my own tag"); Log.w("dalvikvm", "VM Warning message"); Log.d("MyTag", "Debug message"); Log.i("MainActivity","Information message"); Log.v("MyTag", "Verbose message"); Log.f(“Fail", "What a Terrible Failure"); Useful sources Android Official Site • http://www.android.com Android SDK, Tutorial, Concepts and API docs • http://androidappdocs.appspot.com/index.html Android Development Community • http://www.anddev.org/ 30 Days Android Apps Development • http://bakhtiyor.com/category/30-days-of-android-apps/ 36