Download presentation
Presentation is loading. Please wait.
Published byHugo Watts Modified over 9 years ago
1
© Keren Kalif Intro to Android Development Written by Keren Kalif, Edited by Liron Blecher Contains slides from Google I/O presentation
2
Content Android development environment Android project structure Example with threads Example with networking 2
3
Android Development Tools The Android Development Tools (ADT) is a collection of classes and utilities needed to develop for Android It’s basically Eclipse + Android SDK + Android Plugin for Eclipse Download the SDK from: http://developer.android.comhttp://developer.android.com Extract the zip file into a folder on your hard drive 3
4
Android Emulator The Android emulator is a software that runs the Android OS on your local (Windows) OS. Go into the Android SDK directory and run the program Manager.exe The Manager will enable you to create Android Virtual Devices on your system. 4
5
Android Virtual Device Manager 5
6
Android Virtual Device Manager – cont. Name of the device Android Version Memory on the device Screen Type (affects resolution) Additional Hardware 6
7
Running the Emulator 7
8
Create a new Android Project Go to File New Project Android Project Project Name Android OS Version Application Name Package Name (must have at least two levels) Startup Activity 8
9
The created project This is the top “frame” of the project 9
10
What is an Android Application An Android application is actually a collection of several components, each defined in AndroidManifest.xml 10
11
Anatomy of an App Activity Service Content Provider Broadcast Receiver Intents Manifest 11
12
Anatomy of an App - Activity A single screen with a user interface Independent but work together to form a cohesive whole Possible to invoke from other applications Extends the Activity class 12
13
Anatomy of an App - Service Perform long-running operations in the background Does not provide a user interface Other components can bind/interact Extends the Service class 13
14
Anatomy of an App - Content provider Manages a shared set of application data Consistent interface to retrieve/store data o RESTful model o CRUD operations Can be backed by different stores o e.g. File System, SQLite DB, Web Can expose your data to other applications Can consumer data from other Content Providers o e.g. Contacts or Call Log Extend the ContentProvider class 14
15
Anatomy of an App - Broadcast receiver Respond to system wide messages Messages can be initiated by the system or an app 2 type of broadcast: o Normal - delivered async to all receivers o Ordered - delivered in priority order & can be aborted Can programatically register or statically register via the manifest Should be very light, pass any work onto a Service Extend the BroadcastReceiver class 15
16
Anatomy of an App - Intents Intents are the messages that link app components together Explicit / implicit An abstract description of an operation to be performed o An Action to be performed o The Data to operate upon o Extra metadata Standardise on a common vocabulary of Actions o e.g. 'View', 'Edit', 'Send' Apps register their ability to handle Actions for a given data type via IntentFilter 16
17
Anatomy of an App - Intents Publish an 'Intent API' o Specify Action & Extras to invoke your component 17
18
Achieve complex tasks by calling other Application's Intents, e.g. scanning a barcode Anatomy of an App - Intents 18
19
Anatomy of an App - Activity lifecycle Running in a multitasking environment Users switch apps, calls come in, system runs low on memory System invokes callbacks in your app The system will kill your app Be sure to save state! 19
20
Activity created Anatomy of an App - Activity lifecycle 20
21
onCreate() Activity created onResume() Activity running Anatomy of an App - Activity lifecycle 21
22
onPause() Call comes in onResume() Activity running Anatomy of an App - Activity lifecycle 22
23
onPause() Call comes in onResume() Activity running Return to app Anatomy of an App - Activity lifecycle 23
24
onPause() Call comes in onResume() Activity running Return to app Low Memory Activity destroyed Anatomy of an App - Activity lifecycle 24
25
Resources In Android, anything that is not pure code is written in a separate resource file (not a java file), for example strings, images, etc. This separation enables easier multi-language support since only the resource file needs to be changed – not the code itself Resource files are saved as XML file and the Resource Complier generates a Java file which reference the data in these XML files. The generated Java file is called R.java Using this file you can access the data in java code 25
26
Resources – cont. Resources live in the res folder Qualifiers provide specific resources for different device configuration e.g. layout-land, drawable-hdpi Resources IDs automatically generated in R.java e.g. R.layout.main 26
27
Resources – cont. When creating UI elements in Android, the components and their layout are saved in an XML file The Android compiler generates the R.java file under the “gen” folder Whenever a new resource is changed, the R file will be re-generted
28
משאבים (Resources)
29
main.xml contains the layout in a form of XML declaration. It will be used in setContentView main.xml
30
Resources – cont.
31
main.xml defines all the components that will be displayed in the activity Each view will have its own ID in order to be able to access it directly strings.xml defines all the strings in the system 31
32
Views In Android, all UI elements are Views (or inherit from the View class) – it’s kind of like JComponent in Swing. The Activity class has a method called setContentView which sets the View that will be displayed in the Activity. The XML file is translated into a View instance 32
33
Permissions Each Android application must declare what external actions/resources its going to access (GPS, address book, phone, etc) Required permissions are declared in the manifest.xml file. To be able to access the internet: AndroidManifest.xml: To allow an Android application access to the internet, add the following tag under the permissions tag: 33
34
Default Activity You can define the default Activity in the manifest.xml file 34
35
Accessing localhost of the host machine Since the Android emulator runs as a virtual machine, trying to access localhost or 127.0.0.1 will direct you to the Android VM, and not your host machine (your computer) To access your host machine from within the Android VM, use the IP address: 10.0.2.2 (example: http://10.0.2.2:8084/chat) 35
36
Toast - Popups replacement To show a popup use: Toast.makeToast(…).show() 36
37
Switching to another Activity Each Activity is like a card with a specific logic to handle. To switch to another Activity (for example, when a user click a login screen): Intent myIntent = new Intent(view.getContext(), Activity2.class); startActivityForResult(myIntent, 0); 37
38
Installing an Android Application Under the “dist” directory in your project there will be a *.apk file (which is like a war file or jar file = zip file with a different extension) Send this file as an email attachment and that’s it! 38
39
Links Intro: http://www.io-bootcamp.com/sessions#TOC- Androidhttp://www.io-bootcamp.com/sessions#TOC- Android http://developer.android.com/sdk/installing.html http://developer.android.com/guide/index.html http://www.vogella.de/articles/Android/article.html http://thenewboston.org/tutorials.php http://www.androidhive.info/ http://blog.js-development.com/2009/10/accessing- host-machine-from-your.html http://blog.js-development.com/2009/10/accessing- host-machine-from-your.html 39
40
Last Thing… iblecher@gmail.com
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.