SlideShare ist ein Scribd-Unternehmen logo
1 von 39
Android
Αλάπηπμε εθαξκνγώλ
Dr. Αλδξέαο Κνκλελόο
Μάξηηνο 2014
Java
• Χξεηάδεηαη ε θαηαλόεζε ηνπιάρηζησλ ησλ
βαζηθώλ ελλνηώλ Ο/Κ πξνγξακκαηηζκνύ
– Exceptions
– Inner Class, Interface
• Δπηπιένλ:
– Java IO
– Java Thread
– Java Socket
Android Basics
Εηζαγφγή ζηο Android
• Αλνηθηή πιαηθόξκα ινγηζκηθνύ γηα θηλεηέο
ζπζθεπέο
• Πιήξεο stack – OS, Middleware, Applications
• Αξρηθά project ηνπ Open Handset Alliance
(OHA)
• Βαζηζκέλν ζην Linux
• Γξήγνξε αλάπηπμε εθαξκνγώλ ζε Java
• Open source under the Apache 2 license
Linux Kernel
• Έρεη ην ξόιν ηνπ HAL
• Device drivers
• Memory management
• Process management
• Networking
Βηβιηοζήθες
• Γξακέλεο ζε C/C++
• Γηεπαθή κέζσ Java
• Surface manager – Handling UI Windows
• 2D and 3D graphics
• Media codecs, SQLite, Browser engine
Android Runtime
• Dalvik VM
– Αξρεία Dex (dalvik executable format)
– Πην ζπκπαγή θαη απνδνηηθά από ηα
παξαδνζηαθά class files
– Λόγσ πεξηνξηζκέλεο κπαηαξίαο
– Αληηθαζίζηαηαη από ην 4.4 κε ηελ ART
• Core Libraries
– Java 5 Std edition
– Collections, I/O etc…
Application Framework
• API interface
• Activity manager – δηαρεηξίδεηαη ηνλ θύθιν
δσήο ησλ εθαξκνγώλ
Applications
• Δλζσκαησκέλεο θαη εθαξκνγέο ηξίησλ
• Μπνξνύκε λα αληηθαηαζηήζνπκε ηηο
ελζσκαησκέλεο κε δηθέο καο
Εθαρκογές ζε Java
package com.google.android.helloactivity;
import android.app.Activity;
import android.os.Bundle;
public class HelloActivity extends Activity {
public HelloActivity() {
}
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.hello_activity);
}
}
Μεηαγιφηηίδοληαη ζε Dalvik
bytecode
Πεγαίνο θώδηθαο Java
Compiled ζε Java
Μεηαγιώηηηζε ζε Dalvik bytecode
Linux OS
Μεηαθόξησζε ζε Dalvik VM
Dalvik runtime – εηδηθό γηα
θηλεηές εθαρκογές
Ταπηόρξνλε θαη απνδνηηθή εθηέιεζε
πνιιαπιώλ VM
Κάζε εθαξκνγή έρεη δηθή ηεο VM
Διάρηζην memory footprint
Βαζηθά δοκηθά σιηθά εθαρκογής
• Activity
• IntentReceiver
• Service
• ContentProvider
Activities
• Σαλ γεληθόο θαλόλαο, αληηζηνηρνύλ ζε έλα
UI screen
• Όκσο κπνξνύλ:
– Να κελ έρνπλ UI
– Να είλαη ζε floating window
– Να επηζηξέθνπλ ηηκέο
IntentReceivers
• Αληαπνθξίλνληαη ζε εθπεκπόκελα
(broadcast) Intents’
• Δπηηξέπνπλ ηελ αληαπόθξηζε ζε
εμσηεξηθή εηδνπνίεζε ή alarms
• Κάζε εθαξκνγή κπνξεί λα νξίζεη θαη λα
εθπέκςεη ηα δηθά ηεο Intent
Intents
• Σθεθηείηε ην ζαλ δεύγνο από ξήκα –
νπζηαζηηθό: Μηα πεξηγξαθή ηνπ ηη ζα ζέιαηε
λα ζπκβεί
– Π.ρ. VIEW, CALL, PLAY θηι..
• Τν ζύζηεκα ηαηξηάδεη ην intent κε ην activity
ηεο ίδηαο ή άλλης εφαρμογής, πνπ κπνξεί λα
πξνζθέξεη ηελ επηζπκεηή ππεξεζία
• Τα Activities θαη ηα IntentReceivers
πεξηγξάθνπλ ηη είδνο intent κπνξνύλ λα
ρεηξηζηνύλ.
Intents
GMail
Contacts
Home
Blogger
Chat
Μηα εθαξκνγή αηηείηαη κηα
ιεηηνπξγία
“Pick
photo” Τν ζύζηεκα βξίζθεη ην
θαηάιιειν component άιιεο
εθαξκνγήο γηα ηε ιεηηνπξγία
Έηζη λέεο εθαξκνγέο κπνξνύλ
λα ρξεζηκνπνηνύλ άιιεο ήδε
εγθαηεζηεκέλεο
Blogger
Photo
Gallery
Services
• Σηνηρεία εθαξκνγώλ ρσξίο user interface
ηα νπνία ηξέρνπλ ζην παξαζθήλην
– Π.ρ. music player, network download θηι…
ContentProviders
• Δπηηξέπεη ηελ πξόζβαζε ζηα δεδνκέλα
ηεο εθαξκνγήο, ζε άιιεο εθαξκνγέο
– Π.ρ. address book, photo gallery
• Πξνζθέξεη νκνηόηππα APIs γηα:
– επεξσηήζεηο
– δηαγξαθή, ελεκέξσζε θαη εηζαγσγή
• Τν πεξηερόκελν εθπξνζσπείηαη από
θάπνην URI θαη MIME type
Development Tools
• Eclipse
• Android SDK 2.0 or
higher
developer.android.com
September 2011 [developer.android.com]
Emulator (2.x)
• QEMU-based ARM
emulator
• Ή hardware-
accelerated x86
emulator
• Πεξηνξηζκνί:
• Αηζζεηήξεο
Hello World
• Μηα θαιή αξρή:
http://developer.android.com/training/basic
s/firstapp/index.html
• Γεκηνπξγία UIs
– Χξήζε νξηζκέλσλ Views
• Π.ρ. TextView, EditText, Button
– Τνπνζεηεκέλα ζε Layouts
• Π.ρ. LinearLayout, TableLayout, AbsoluteLayout
Κύθιος δφής εθαρκογής
• Οη εθαξκνγέο ηξέρνπλ ζε δηθέο ηνπο
δηεξγαζίεο (VM, PID)
• Οη δηεξγαζίεο εθθηλνύλ θαη ζηακαηνύλ
όπνηε ρξεηάδεηαη, ώζηε λα ηξέμνπλ ηα
ζπζηαηηθά κηαο εθαξκνγήο
• Οη δηεξγαζίεο κπνξνύλ λα ηεξκαηηζηνύλ
γηα λα απειεπζεξσζνύλ πόξνη.
• Σπλήζσο δε ρξεηάδεηαη λα θιεζεί ε onDestroy
– ην ζύζηεκα αλαιακβάλεη ηνλ απηόκαην
ηεξκαηηζκό θαη ηελ απειεπζέξσζε κλήκεο.
Σύλουε
Τν Android ζρεδηάζηεθε λα επηηξέπεη ηε
ρξήζε ζηνηρείσλ άιισλ εθαξκνγώλ από
θάζε εθαξκνγή
Κάζε εθαξκνγή κπνξεί λα «δηαθεκίζεη» ζηηο
άιιεο ηηο ππεξεζίεο πνπ κπνξεί λα
πξνζθέξεη.
Οη εθαρκογές έτοσλ θοηλή
δοκή
Views όπσο lists,
grids, text boxes,
buttons
Content
Providers γηα ηελ
θνηλή ρξήζε
δεδνκέλσλ από
άιιεο εθαξκνγέο
ή ηεο δηθήο καο
εθαξκνγήο
Resource Manager, πνπ
πξνζθέξεη πξόζβαζε ζε
πόξνπο όπσο localized
strings, graphics θαη
layout files
Notification Manager πνπ
επηηξέπεη ηελ πξνβνιή
κελπκάησλ ζην notification
bar
Activity Manager πνπ
δηαρεηξίδεηαη ηνλ θύθιν
δσήο
Views
Views
Notification Manager
Notification Manager
• Ο κόλνο ηξόπνο δηεπαθήο ελόο
background app κε ηνπο ρξήζηεο
• Κνηλή κέζνδνο – εκπεηξία ρξήζηε γηα όιεο
ηηο εθαξκνγέο
Άιια θοηλά ζηοητεία
Broadcast
receivers γηα
ηελ εθθίλεζε
άιισλ
εθαξκνγώλ
Data storage
κέζσ βάζεσλ
δεδνκέλσλ,
αξρείσλ ή
application
preferences Services γηα ηελ
εθηέιεζε δηαδηθαζηώλ
ζην παξαζθήλην
Intents πνπ αηηνύληαη
ππεξεζίεο από άιιεο
εθαξκνγέο ή πξνζθέξνπλ
ππεξεζίεο
Activity πνπ πινπνηεί ηηο
δηεπαθέο κε ην ρξήζηε
(γξαθηθά ζηνηρεία
εθαξκνγήο)
Οη εθαρκογές έτοσλ κηα θοηλή
δοκή
code
images
files
UI layouts
constants
Auto
generated
resource list
Σεκείο Μεδέλ: Android Manifest
Όιεο νη βαζηθέο πιεξνθνξίεο γηα ηελ εθαξκνγή (ΧΜL)
<?xml version="1.0" encoding="utf-8"?>
<manifest
xmlns:android="http://schemas.android.com/apk/res/android"
package="com.my_domain.app.helloactivity">
<application android:label="@string/app_name">
<activity android:name=".HelloActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category
android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
</application>
Sample Activity Code
UI layouts are in Java and XML
setContentView(R.layout.main); //will load the XML UI file
UI!
Η αζθάιεηα ζηο Android
αθοιοσζεί ηης πραθηηθές ηοσ Linux
Κάζε εθαξκνγή δηθή ηεο δηεξγαζία
Γηθαηώκαηα πξόζβαζεο γηα θάζε
δηεξγαζία κε user & group permissions
Πνιιαπιά επίπεδα δηθαησκάησλ αλά
ιεηηνπξγία
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.google.android.app.myapp" >
<uses-permission id="android.permission.RECEIVE_SMS" />
</manifest>
Τέιος
• Να δνύκε έλα πξαθηηθό παξάδεηγκα
– Hello World!

Weitere ähnliche Inhalte

Ähnlich wie Application Development Part 1

Online reservation tool guidelines - GR - V1.1
Online reservation tool guidelines - GR - V1.1Online reservation tool guidelines - GR - V1.1
Online reservation tool guidelines - GR - V1.1
MyTable_Booking
 
Υλικό υπολογιστή,Γλωσσάρι πληροφορικής
Υλικό υπολογιστή,Γλωσσάρι πληροφορικήςΥλικό υπολογιστή,Γλωσσάρι πληροφορικής
Υλικό υπολογιστή,Γλωσσάρι πληροφορικής
Maria Tsigka
 
Kourvoulis ptyxiaki
Kourvoulis ptyxiakiKourvoulis ptyxiaki
Kourvoulis ptyxiaki
gkourv
 
A proposal for the use of learning activity management system (LAMS) to suppo...
A proposal for the use of learning activity management system (LAMS) to suppo...A proposal for the use of learning activity management system (LAMS) to suppo...
A proposal for the use of learning activity management system (LAMS) to suppo...
Sofia Papadimitriou
 
ασφαλή χρήση διαδικτύου
ασφαλή χρήση διαδικτύουασφαλή χρήση διαδικτύου
ασφαλή χρήση διαδικτύου
niefstat
 
Web 2.0 Εργαλεία
Web 2.0 ΕργαλείαWeb 2.0 Εργαλεία
Web 2.0 Εργαλεία
agathoula
 
εσηεα Ppt slideshare
εσηεα Ppt slideshareεσηεα Ppt slideshare
εσηεα Ppt slideshare
Mary Mourelatou
 
παρουσίαση 1γυμνασιο νεαπολης 1
παρουσίαση 1γυμνασιο νεαπολης 1παρουσίαση 1γυμνασιο νεαπολης 1
παρουσίαση 1γυμνασιο νεαπολης 1
theodosiadou12
 
Επιταγή κατάρτισης ανέργων Δημοσιογράφων
Επιταγή κατάρτισης ανέργων ΔημοσιογράφωνΕπιταγή κατάρτισης ανέργων Δημοσιογράφων
Επιταγή κατάρτισης ανέργων Δημοσιογράφων
Mary Mourelatou
 
ΜΜΕ ή Μέσα Μαζικής Επικοινωνίας
ΜΜΕ ή Μέσα Μαζικής ΕπικοινωνίαςΜΜΕ ή Μέσα Μαζικής Επικοινωνίας
ΜΜΕ ή Μέσα Μαζικής Επικοινωνίας
marimiva
 
τεχνολογίες κοινωνικής δικτύωσης στην εκπαίδευση
τεχνολογίες κοινωνικής δικτύωσης στην εκπαίδευσητεχνολογίες κοινωνικής δικτύωσης στην εκπαίδευση
τεχνολογίες κοινωνικής δικτύωσης στην εκπαίδευση
agathoula
 
τεχνολογίες κοινωνικής δικτύωσης στην εκπαίδευση
τεχνολογίες κοινωνικής δικτύωσης στην εκπαίδευσητεχνολογίες κοινωνικής δικτύωσης στην εκπαίδευση
τεχνολογίες κοινωνικής δικτύωσης στην εκπαίδευση
agathoula
 
τεχνολογίες κοινωνικής δικτύωσης στην εκπαίδευση
τεχνολογίες κοινωνικής δικτύωσης στην εκπαίδευσητεχνολογίες κοινωνικής δικτύωσης στην εκπαίδευση
τεχνολογίες κοινωνικής δικτύωσης στην εκπαίδευση
agathoula
 

Ähnlich wie Application Development Part 1 (20)

Διαλειτουργικότητα στην Τοπική Αυτοδιοίκηση
Διαλειτουργικότητα στην Τοπική ΑυτοδιοίκησηΔιαλειτουργικότητα στην Τοπική Αυτοδιοίκηση
Διαλειτουργικότητα στην Τοπική Αυτοδιοίκηση
 
H Διαλειτουργικότητα στην Τοπική Αυτοδιοίκηση
H  Διαλειτουργικότητα στην Τοπική ΑυτοδιοίκησηH  Διαλειτουργικότητα στην Τοπική Αυτοδιοίκηση
H Διαλειτουργικότητα στην Τοπική Αυτοδιοίκηση
 
Online reservation tool guidelines - GR - V1.1
Online reservation tool guidelines - GR - V1.1Online reservation tool guidelines - GR - V1.1
Online reservation tool guidelines - GR - V1.1
 
Υλικό υπολογιστή,Γλωσσάρι πληροφορικής
Υλικό υπολογιστή,Γλωσσάρι πληροφορικήςΥλικό υπολογιστή,Γλωσσάρι πληροφορικής
Υλικό υπολογιστή,Γλωσσάρι πληροφορικής
 
Kourvoulis ptyxiaki
Kourvoulis ptyxiakiKourvoulis ptyxiaki
Kourvoulis ptyxiaki
 
A proposal for the use of learning activity management system (LAMS) to suppo...
A proposal for the use of learning activity management system (LAMS) to suppo...A proposal for the use of learning activity management system (LAMS) to suppo...
A proposal for the use of learning activity management system (LAMS) to suppo...
 
ασφαλή χρήση διαδικτύου
ασφαλή χρήση διαδικτύουασφαλή χρήση διαδικτύου
ασφαλή χρήση διαδικτύου
 
Web 2.0 Εργαλεία
Web 2.0 ΕργαλείαWeb 2.0 Εργαλεία
Web 2.0 Εργαλεία
 
eede
eedeeede
eede
 
Ασφάλεια Android - Βασικές αρχές, αδυναμίες και λύσεις
Ασφάλεια Android - Βασικές αρχές, αδυναμίες και λύσειςΑσφάλεια Android - Βασικές αρχές, αδυναμίες και λύσεις
Ασφάλεια Android - Βασικές αρχές, αδυναμίες και λύσεις
 
Pc
PcPc
Pc
 
εσηεα Ppt slideshare
εσηεα Ppt slideshareεσηεα Ppt slideshare
εσηεα Ppt slideshare
 
εσηεα
εσηεαεσηεα
εσηεα
 
παρουσίαση 1γυμνασιο νεαπολης 1
παρουσίαση 1γυμνασιο νεαπολης 1παρουσίαση 1γυμνασιο νεαπολης 1
παρουσίαση 1γυμνασιο νεαπολης 1
 
Βασικές Υπηρεσίες Διαδικτύου
Βασικές Υπηρεσίες ΔιαδικτύουΒασικές Υπηρεσίες Διαδικτύου
Βασικές Υπηρεσίες Διαδικτύου
 
Επιταγή κατάρτισης ανέργων Δημοσιογράφων
Επιταγή κατάρτισης ανέργων ΔημοσιογράφωνΕπιταγή κατάρτισης ανέργων Δημοσιογράφων
Επιταγή κατάρτισης ανέργων Δημοσιογράφων
 
ΜΜΕ ή Μέσα Μαζικής Επικοινωνίας
ΜΜΕ ή Μέσα Μαζικής ΕπικοινωνίαςΜΜΕ ή Μέσα Μαζικής Επικοινωνίας
ΜΜΕ ή Μέσα Μαζικής Επικοινωνίας
 
τεχνολογίες κοινωνικής δικτύωσης στην εκπαίδευση
τεχνολογίες κοινωνικής δικτύωσης στην εκπαίδευσητεχνολογίες κοινωνικής δικτύωσης στην εκπαίδευση
τεχνολογίες κοινωνικής δικτύωσης στην εκπαίδευση
 
τεχνολογίες κοινωνικής δικτύωσης στην εκπαίδευση
τεχνολογίες κοινωνικής δικτύωσης στην εκπαίδευσητεχνολογίες κοινωνικής δικτύωσης στην εκπαίδευση
τεχνολογίες κοινωνικής δικτύωσης στην εκπαίδευση
 
τεχνολογίες κοινωνικής δικτύωσης στην εκπαίδευση
τεχνολογίες κοινωνικής δικτύωσης στην εκπαίδευσητεχνολογίες κοινωνικής δικτύωσης στην εκπαίδευση
τεχνολογίες κοινωνικής δικτύωσης στην εκπαίδευση
 

Application Development Part 1

  • 2. Java • Χξεηάδεηαη ε θαηαλόεζε ηνπιάρηζησλ ησλ βαζηθώλ ελλνηώλ Ο/Κ πξνγξακκαηηζκνύ – Exceptions – Inner Class, Interface • Δπηπιένλ: – Java IO – Java Thread – Java Socket
  • 4. Εηζαγφγή ζηο Android • Αλνηθηή πιαηθόξκα ινγηζκηθνύ γηα θηλεηέο ζπζθεπέο • Πιήξεο stack – OS, Middleware, Applications • Αξρηθά project ηνπ Open Handset Alliance (OHA) • Βαζηζκέλν ζην Linux • Γξήγνξε αλάπηπμε εθαξκνγώλ ζε Java • Open source under the Apache 2 license
  • 5.
  • 6. Linux Kernel • Έρεη ην ξόιν ηνπ HAL • Device drivers • Memory management • Process management • Networking
  • 7. Βηβιηοζήθες • Γξακέλεο ζε C/C++ • Γηεπαθή κέζσ Java • Surface manager – Handling UI Windows • 2D and 3D graphics • Media codecs, SQLite, Browser engine
  • 8. Android Runtime • Dalvik VM – Αξρεία Dex (dalvik executable format) – Πην ζπκπαγή θαη απνδνηηθά από ηα παξαδνζηαθά class files – Λόγσ πεξηνξηζκέλεο κπαηαξίαο – Αληηθαζίζηαηαη από ην 4.4 κε ηελ ART • Core Libraries – Java 5 Std edition – Collections, I/O etc…
  • 9. Application Framework • API interface • Activity manager – δηαρεηξίδεηαη ηνλ θύθιν δσήο ησλ εθαξκνγώλ
  • 10. Applications • Δλζσκαησκέλεο θαη εθαξκνγέο ηξίησλ • Μπνξνύκε λα αληηθαηαζηήζνπκε ηηο ελζσκαησκέλεο κε δηθέο καο
  • 11. Εθαρκογές ζε Java package com.google.android.helloactivity; import android.app.Activity; import android.os.Bundle; public class HelloActivity extends Activity { public HelloActivity() { } @Override public void onCreate(Bundle icicle) { super.onCreate(icicle); setContentView(R.layout.hello_activity); } }
  • 12. Μεηαγιφηηίδοληαη ζε Dalvik bytecode Πεγαίνο θώδηθαο Java Compiled ζε Java Μεηαγιώηηηζε ζε Dalvik bytecode Linux OS Μεηαθόξησζε ζε Dalvik VM
  • 13. Dalvik runtime – εηδηθό γηα θηλεηές εθαρκογές Ταπηόρξνλε θαη απνδνηηθή εθηέιεζε πνιιαπιώλ VM Κάζε εθαξκνγή έρεη δηθή ηεο VM Διάρηζην memory footprint
  • 14. Βαζηθά δοκηθά σιηθά εθαρκογής • Activity • IntentReceiver • Service • ContentProvider
  • 15. Activities • Σαλ γεληθόο θαλόλαο, αληηζηνηρνύλ ζε έλα UI screen • Όκσο κπνξνύλ: – Να κελ έρνπλ UI – Να είλαη ζε floating window – Να επηζηξέθνπλ ηηκέο
  • 16. IntentReceivers • Αληαπνθξίλνληαη ζε εθπεκπόκελα (broadcast) Intents’ • Δπηηξέπνπλ ηελ αληαπόθξηζε ζε εμσηεξηθή εηδνπνίεζε ή alarms • Κάζε εθαξκνγή κπνξεί λα νξίζεη θαη λα εθπέκςεη ηα δηθά ηεο Intent
  • 17. Intents • Σθεθηείηε ην ζαλ δεύγνο από ξήκα – νπζηαζηηθό: Μηα πεξηγξαθή ηνπ ηη ζα ζέιαηε λα ζπκβεί – Π.ρ. VIEW, CALL, PLAY θηι.. • Τν ζύζηεκα ηαηξηάδεη ην intent κε ην activity ηεο ίδηαο ή άλλης εφαρμογής, πνπ κπνξεί λα πξνζθέξεη ηελ επηζπκεηή ππεξεζία • Τα Activities θαη ηα IntentReceivers πεξηγξάθνπλ ηη είδνο intent κπνξνύλ λα ρεηξηζηνύλ.
  • 18. Intents GMail Contacts Home Blogger Chat Μηα εθαξκνγή αηηείηαη κηα ιεηηνπξγία “Pick photo” Τν ζύζηεκα βξίζθεη ην θαηάιιειν component άιιεο εθαξκνγήο γηα ηε ιεηηνπξγία Έηζη λέεο εθαξκνγέο κπνξνύλ λα ρξεζηκνπνηνύλ άιιεο ήδε εγθαηεζηεκέλεο Blogger Photo Gallery
  • 19. Services • Σηνηρεία εθαξκνγώλ ρσξίο user interface ηα νπνία ηξέρνπλ ζην παξαζθήλην – Π.ρ. music player, network download θηι…
  • 20. ContentProviders • Δπηηξέπεη ηελ πξόζβαζε ζηα δεδνκέλα ηεο εθαξκνγήο, ζε άιιεο εθαξκνγέο – Π.ρ. address book, photo gallery • Πξνζθέξεη νκνηόηππα APIs γηα: – επεξσηήζεηο – δηαγξαθή, ελεκέξσζε θαη εηζαγσγή • Τν πεξηερόκελν εθπξνζσπείηαη από θάπνην URI θαη MIME type
  • 21. Development Tools • Eclipse • Android SDK 2.0 or higher developer.android.com September 2011 [developer.android.com]
  • 22. Emulator (2.x) • QEMU-based ARM emulator • Ή hardware- accelerated x86 emulator • Πεξηνξηζκνί: • Αηζζεηήξεο
  • 23. Hello World • Μηα θαιή αξρή: http://developer.android.com/training/basic s/firstapp/index.html • Γεκηνπξγία UIs – Χξήζε νξηζκέλσλ Views • Π.ρ. TextView, EditText, Button – Τνπνζεηεκέλα ζε Layouts • Π.ρ. LinearLayout, TableLayout, AbsoluteLayout
  • 24. Κύθιος δφής εθαρκογής • Οη εθαξκνγέο ηξέρνπλ ζε δηθέο ηνπο δηεξγαζίεο (VM, PID) • Οη δηεξγαζίεο εθθηλνύλ θαη ζηακαηνύλ όπνηε ρξεηάδεηαη, ώζηε λα ηξέμνπλ ηα ζπζηαηηθά κηαο εθαξκνγήο • Οη δηεξγαζίεο κπνξνύλ λα ηεξκαηηζηνύλ γηα λα απειεπζεξσζνύλ πόξνη.
  • 25. • Σπλήζσο δε ρξεηάδεηαη λα θιεζεί ε onDestroy – ην ζύζηεκα αλαιακβάλεη ηνλ απηόκαην ηεξκαηηζκό θαη ηελ απειεπζέξσζε κλήκεο.
  • 26. Σύλουε Τν Android ζρεδηάζηεθε λα επηηξέπεη ηε ρξήζε ζηνηρείσλ άιισλ εθαξκνγώλ από θάζε εθαξκνγή Κάζε εθαξκνγή κπνξεί λα «δηαθεκίζεη» ζηηο άιιεο ηηο ππεξεζίεο πνπ κπνξεί λα πξνζθέξεη.
  • 27. Οη εθαρκογές έτοσλ θοηλή δοκή Views όπσο lists, grids, text boxes, buttons Content Providers γηα ηελ θνηλή ρξήζε δεδνκέλσλ από άιιεο εθαξκνγέο ή ηεο δηθήο καο εθαξκνγήο Resource Manager, πνπ πξνζθέξεη πξόζβαζε ζε πόξνπο όπσο localized strings, graphics θαη layout files Notification Manager πνπ επηηξέπεη ηελ πξνβνιή κελπκάησλ ζην notification bar Activity Manager πνπ δηαρεηξίδεηαη ηνλ θύθιν δσήο
  • 28. Views
  • 29. Views
  • 31. Notification Manager • Ο κόλνο ηξόπνο δηεπαθήο ελόο background app κε ηνπο ρξήζηεο • Κνηλή κέζνδνο – εκπεηξία ρξήζηε γηα όιεο ηηο εθαξκνγέο
  • 32. Άιια θοηλά ζηοητεία Broadcast receivers γηα ηελ εθθίλεζε άιισλ εθαξκνγώλ Data storage κέζσ βάζεσλ δεδνκέλσλ, αξρείσλ ή application preferences Services γηα ηελ εθηέιεζε δηαδηθαζηώλ ζην παξαζθήλην Intents πνπ αηηνύληαη ππεξεζίεο από άιιεο εθαξκνγέο ή πξνζθέξνπλ ππεξεζίεο Activity πνπ πινπνηεί ηηο δηεπαθέο κε ην ρξήζηε (γξαθηθά ζηνηρεία εθαξκνγήο)
  • 33. Οη εθαρκογές έτοσλ κηα θοηλή δοκή code images files UI layouts constants Auto generated resource list
  • 34. Σεκείο Μεδέλ: Android Manifest Όιεο νη βαζηθέο πιεξνθνξίεο γηα ηελ εθαξκνγή (ΧΜL) <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.my_domain.app.helloactivity"> <application android:label="@string/app_name"> <activity android:name=".HelloActivity"> <intent-filter> <action android:name="android.intent.action.MAIN"/> <category android:name="android.intent.category.LAUNCHER"/> </intent-filter> </activity> </application>
  • 36. UI layouts are in Java and XML setContentView(R.layout.main); //will load the XML UI file
  • 37. UI!
  • 38. Η αζθάιεηα ζηο Android αθοιοσζεί ηης πραθηηθές ηοσ Linux Κάζε εθαξκνγή δηθή ηεο δηεξγαζία Γηθαηώκαηα πξόζβαζεο γηα θάζε δηεξγαζία κε user & group permissions Πνιιαπιά επίπεδα δηθαησκάησλ αλά ιεηηνπξγία <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.google.android.app.myapp" > <uses-permission id="android.permission.RECEIVE_SMS" /> </manifest>
  • 39. Τέιος • Να δνύκε έλα πξαθηηθό παξάδεηγκα – Hello World!