android applications
DESCRIPTION
java programmingTRANSCRIPT
-
UPB - ETTI 26.03.2015 1
Dezvoltarea Aplicatiilor Android Inovative
(DAAI)
2015
UPB - Facultatea ETTI
Titular curs: SAIM Lab Team
Suport curs: https://www.facebook.com/daai.saim
https://www.facebook.com/groups/daai2015/
-
UPB - ETTI 2
Organizare
Curs DAAI
-
UPB - ETTI 3
Dezvoltarea Aplicatiilor Android Inovative (DAAI)
Sinteza organizare
Curs
Introducere in platforma Android si dezvoltarea pe aceasta platforma
Dezvoltarea interfetelor grafice pe platforma Android
Dezvoltarea aplicatiilor Android bazate pe biblioteci cross-platform
(libGDX, phonegap, etc).
Dezvoltarea aplicatiilor Android bazate pe utilizarea senzorilor
Dezvoltarea aplicatiilor avansate cu biblioteci specializate (SQLite, etc.)
Introducere in problematica inovarii si a proceselor de inovare
Elemente de marketing, conceperea produselor inovative, etc.
-
UPB - ETTI 4
Dezvoltarea Aplicatiilor Android Inovative (DAAI)
Sinteza organizare
Laborator
Familiarizarea cu mediul de dezvoltare (Eclipse) i configurarea lui (SDK, emulator)
Dezvoltarea interfetelor grafice pe platforma Android
Dezvoltarea aplicatiilor Android bazate pe utilizarea senzorilor
Dezvoltarea aplicatiilor avansate cu biblioteca SQLite, alte biblioteci
specializate i biblioteci cross-platform (prima iteratie)
Dezvoltarea aplicatiilor avansate cu biblioteca SQLite, alte biblioteci
specializate i biblioteci cross-platform (a doua iteratie)
Studii de caz de aplicare a proceselor de inovare (1)
Studii de caz de aplicare a proceselor de inovare (2)
-
UPB - ETTI 5
Dezvoltarea Aplicatiilor Android Inovative (DAAI)
Sinteza organizare
Proiect
Alegerea ghidata a domeniului de aplicabilitate a proiectului
Definirea temei proiectului ca idee de aplicatie inovativa
Definirea temei proiectului din perspectiva tehnica (tehnologii i biblioteci utilizate)
Prima iteraie de realizare a proiectului (prototipul iniial)
A doua iteraie de realizare a proiectului (completarea arhitecturii)
A treia iteraie de realizare a proiectului (adugarea unor detalii)
Evaluarea final a proiectului
-
UPB - ETTI 6
Dezvoltarea Aplicatiilor Android Inovative (DAAI)
Alte informatii importante
Organizator Laboratorul SAIM pagina Facebook https://www.facebook.com/etti.saim
(site in curs de refacere)
Pagina cursului https://www.facebook.com/daai.saim
Grupul secret al cursantilor https://www.facebook.com/groups/daai2014/
Evenimente de grup https://www.facebook.com/events/1495054114111877/
Evenimente publice unele Sesiuni Deschise vor fi publice
Competitia MobilPRO
site oficial http://mobilpro.lse.org.ro/ si
pagina Facebook https://www.facebook.com/mobilproetti
-
UPB - ETTI 7
Organizare
Tutoriale Localizare
http://www.androidhive.info/2012/07/android-gps-location-manager-tutorial/
Android Location API - Tutorial http://www.vogella.com/tutorials/AndroidLocationAPI/article.html
https://developer.android.com/training/location/retrieve-current.html
Android Location Based Services Application GPS http://www.javacodegeeks.com/2010/09/android-location-based-services.html
Tutoriale Google Maps
http://www.javacodegeeks.com/2011/02/android-google-maps-tutorial.html
https://developers.google.com/maps/documentation/android/start
http://www.androidhive.info/2013/08/android-working-with-google-maps-v2/
Google Maps Android API v2 Tutorial http://www.vogella.com/tutorials/AndroidGoogleMaps/article.html
Tutoriale Camera
http://www.androidhive.info/2013/09/android-working-with-camera-api/
http://developer.android.com/guide/topics/media/camera.html
http://www.vogella.com/tutorials/AndroidCamera/article.html
http://www.tutorialspoint.com/android/android_camera.htm
-
UPB - ETTI 8
Organizare
Tutoriale Socketuri
http://examples.javacodegeeks.com/android/core/socket-core/android-socket-example/
http://stackoverflow.com/questions/15984001/java-client-socket-connection-in-android
http://lakjeewa.blogspot.ro/2012/03/simple-client-server-application-for.html
http://android-er.blogspot.ro/2014/02/android-sercerclient-example-client.html
http://www.pixelstech.net/article/1368328614-Android-socket-programming-example
http://thinkandroid.wordpress.com/2010/03/27/incorporating-socket-programming-into-your-applications/
http://stackoverflow.com/questions/5135438/example-android-bi-directional-network-socket-using-asynctask
Tutoriale Acces servicii Web
http://android.programmerguru.com/android-webservice-example/
http://chintankhetiya.wordpress.com/2013/05/27/83/
http://spring.io/guides/gs/consuming-rest-android/
http://www.themobilemontage.com/2012/11/29/successfully-integrating-web-services-into-your-android-apps/
-
UPB - ETTI 9
Introducere in platforma Android si in
dezvoltarea pe aceasta platforma
Curs DAAI
-
UPB - ETTI 10
Resurse
Resurse online:
Android Tutorial Vogella
http://www.vogella.com/tutorials/Android/article.html
Programming Mobile Applications for Android Handheld Coursera
https://www.coursera.org/course/android (de parcurs acasa pe perioada cursului)
https://class.coursera.org/android-001/lecture (de parcurs la curs ca exemplu)
Pattern-Oriented Software Architectures: Programming Mobile Services for
Android Handheld Systems Coursera
https://www.coursera.org/course/posa (de parcurs pe perioada cursurilor saul ulterior)
https://class.coursera.org/posa-002/lecture (de parcurs la curs ca exemplu)
Android Application Development Heavendrops.net
http://heavendrops.net/category/android-application-development/161
How To Learn Android 4.4 KitKat App Development Online
http://www.diygenius.com/how-to-learn-android-app-development-online/
Introducere in platforma Android
-
UPB - ETTI 11
Android Tutorial Vogella
Android Tutorial Vogella http://www.vogella.com/tutorials/Android/article.html
Introducere in platforma Android
Android platform components
-
UPB - ETTI 12
Android Tutorial Vogella
Introducere in platforma Android
Android emulator and
Android Virtual Device
-
UPB - ETTI 13
Android Tutorial Vogella
Introducere in platforma Android
-
UPB - ETTI 14
Android Tutorial Vogella
Introducere in platforma Android
-
UPB - ETTI 15
Android Tutorial Vogella
Introducere in platforma Android
-
UPB - ETTI 16
Android Tutorial Vogella
Introducere in platforma Android
-
UPB - ETTI 17
Android Tutorial Vogella
Introducere in platforma Android
-
UPB - ETTI 18
Android Tutorial Vogella
Introducere in platforma Android
-
UPB - ETTI 19
Android Tutorial Vogella
Introducere in platforma Android
-
UPB - ETTI 20
Android Tutorial Vogella
Introducere in platforma Android
-
UPB - ETTI 21
Android Tutorial Vogella
Introducere in platforma Android
-
UPB - ETTI 22
Android Tutorial Vogella
Introducere in platforma Android
-
UPB - ETTI 23
Android Tutorial Vogella
Introducere in platforma Android
-
UPB - ETTI 24
Android Tutorial Vogella
Introducere in platforma Android
-
UPB - ETTI 25
Android Tutorial Vogella
Introducere in platforma Android
-
UPB - ETTI 26
Android Tutorial Vogella
Introducere in platforma Android
-
UPB - ETTI 27
Android Tutorial Vogella
Introducere in platforma Android
-
UPB - ETTI 28
Android Tutorial Vogella
Introducere in platforma Android
-
UPB - ETTI 29
Android Tutorial Vogella
Introducere in platforma Android
-
UPB - ETTI 30
Android Tutorial Vogella
Introducere in platforma Android
-
UPB - ETTI 31
Android Tutorial Vogella
Introducere in platforma Android
-
UPB - ETTI 32
Android Tutorial Vogella
Introducere in platforma Android
-
UPB - ETTI 33
Android Tutorial Vogella
Introducere in platforma Android
AndroidManifest.xml
example file
-
UPB - ETTI 34
Resurse
Programming Mobile Applications for Android Coursera
https://www.coursera.org/course/android
https://class.coursera.org/android-001/lecture
Introduction to the Android Platform (18:19)
The Android Development Environment - Part 1 (18:06)
The Android Development Environment - Part 2 (12:26)
Application Fundamentals - Part 1 (15:24)
Application Fundamentals - Part 2 (11:24)
The Activity Class - Part 1 (14:06)
The Activity Class - Part 2 (14:50)
The Intent Class - Part 1 (9:14)
The Intent Class - Part 2 (10:42)
Introducere in platforma Android
-
UPB - ETTI 35
Programarea pe platforma Android
-
UPB - ETTI 36
Programarea pe platforma Android
Exista 4 tipuri de componente
Activitati interfete grafice corespunzatoare actiunilor utilizatorului
Servicii procese fara interfata care sunt executate (ruleaza) in background
Broadcast Receivers receptioneaza notificari si reactioneaza la ele
Furnizori continut pun la dispozitie altor aplicatii un set specific de date
Componentele aplicatiilor Android
-
UPB - ETTI 37
Programarea pe platforma Android
Intent descrierea abstracta a unei operatii
Trimiterea implicita a unui obiect Intent catre entitatile ce pot executa ACTION_CALL
se foloseste Intent-filter
startActivity(intent);
Pot executa ACTION_CALL
Definirea Intent-filter in fisierul Androidmanifest.xml
-
UPB - ETTI 38
Programarea pe platforma Android
Intent descrierea abstracta a unei operatii
Trimiterea explicita a unui obiect Intent cu startActivityForResult() de catre Activity1
-
UPB - ETTI 39
Programarea pe platforma Android
Componentele
aplicatiilor
Android
-
UPB - ETTI 40
Programarea pe platforma Android
Activitati, task-uri, procese
Activitatea este ca o molecula o portiune distincta de functionalitate Un task este o colectie de Activitati Un proces este un proces Linux standard
-
UPB - ETTI 41
Programarea pe platforma Android
Activitati, task-uri, procese
Activitatea este ca o molecula o portiune distincta de functionalitate Un task este o colectie de Activitati Un proces este un proces Linux standard
-
UPB - ETTI 42
Programarea pe platforma Android
Activitati, task-uri, procese
Activitate
clasa concreta in API
incapsulare a unei operatii
ruleaza in procesul .APK-ului care a instalat-o
optional asociata cu o fereastra (UI)
Task
o notiune (nu o entitate concreta)
o colectie de Activitati legate intre ele
capabil sa se intinda peste mai multe procese
asociat cu propria stiva a istoricului UI (fereastrelor)
similar aplicatiilor de pe alte platforme
-
UPB - ETTI 43
Programarea pe platforma Android
Activitati, task-uri, procese
Task o colectie de Activitati legate intre ele, are propria stiva a istoricului UI
Fiecare noua activitate intr-un task adauga un element in back stack. Cand utilizatorul
apasa tasta BACK, activitatea curenta e distrusa si cea anterioara reluata
-
UPB - ETTI 44
Programarea pe platforma Android
Activitati, task-uri, procese
Task o colectie de Activitati legate intre ele, are propria stiva a istoricului UI
O activitate poate fi
instantiata de mai multe ori
Doua task-uri: Task-ul A este in background,
asteptand sa fie reluat, in timp ce Task-ul B
interactioneaza cu utilizatorul in foreground.
http://developer.android.com/guide/topics/fundamentals/tasks-and-back-stack.html
-
UPB - ETTI 45
Programarea pe platforma Android
Activitati, task-uri, procese
Daca o activitate este deja parte a unui task din background cu propria back stack (B),
atunci intreaga back stack revine in prim plan, in varful task-ului curent (A).
-
UPB - ETTI 46
Programarea pe platforma Android
Activitati, task-uri, procese
Lansarea unei Activity din Home
Iesirea dintr-o Activity cu tasta BACK
-
UPB - ETTI 47
Programarea pe platforma Android
Activitati, task-uri, procese
Iesirea dintr-o Activity cu tasta HOME
http://developer.android.com/guide/practices/ui_guidelines/activity_task_design.html
-
UPB - ETTI 48
Programarea pe platforma Android
Activitati, task-uri, procese
Reutilizarea unei Activity Contacts reutilizeaza Gallery pentru a Obtine o imagine
-
UPB - ETTI 49
Programarea pe platforma Android
Activitati, task-uri, procese
Reutilizarea unei Activity Gallery reutilizeaza Messaging pentru a Partaja o imagine
-
UPB - ETTI 50
Programarea pe platforma Android
Activitati, task-uri, procese
Inlocuirea unei Activitati
utilizatorul descarca activitatea Rings Extended, inlocuitoare a Phone Ringtone cand utilizatorul efectueaza Settings > Sound & Display > Phone Ringtone, sistemul prezinta o alegere intre activitatea Android System si cea noua
dialogul are optiunea de reamintire a alegerii "Use by default for this action daca se alege "Rings Extended", activitatea se incarca, inlocuind-o pe cea originala Android System
-
UPB - ETTI 51
Programarea pe platforma Android
Activitati, task-uri, procese
Multitasking
Starea 1 Utilizatorul lanseaza activitatea View Map si cauta o locatie pe harta. Sa zicem ca incarcarea hartii dureaza neasteptat de mult
Starea 2 Utilizatorul doreste sa efectueze altceva in timp ce asteapta, asa incat apasa HOME, ceea ce nu intrerupe conexiunea de retea a hartii ci ii permite
sa continue incarcarea in background
Starea 3 Activitatea Map se executa acum in background, cu Home in prim plan. Utilizatorul lanseaza activitatea Calendar, care se executa in prim plan,
obtinand focus, iar utilizatorul poate vedea calendarul zilei
-
UPB - ETTI 52
Programarea pe platforma Android
Activitati, task-uri, procese
Multitasking
Starea 4 Utilizatorul apasa HOME, apoi Maps pentru a se intoarce la harta, care
acum este complet incarcata
-
UPB - ETTI 53
Programarea pe platforma Android
Activitati, task-uri, procese
Lansarea din 2 puncte de intrare
-
UPB - ETTI 54
Programarea pe platforma Android
Activitati, task-uri, procese
Intentiile
daca terminalul are doua aplicatii email configurate, cand utilizatorul atinge mailto:link pe o pagina web, rezultatul este un obiect Intent care afiseaza un
dialog cu o alegere intre doua activitati pentru a compune un email (Gmail si
Email)
-
UPB - ETTI 55
Programarea pe platforma Android
Activitati, task-uri, procese
Comutarea intre task-uri
Lansarea primului task. Se doreste trimiterea unui mesaj text si atasarea unei fotografii. Se alege: Home > Messaging > New message > MENU > Attach >
Pictures. Ultimul pas lanseaza galeria de imagini pentru a selecta o fotografie. Se
observa ca galeria de imagini e o activitate separata
In acest punct, inainte de a selecta imaginea, se decide oprirea taskului si saltul la
calendar, care este un task separat. Deoarece activitatea curenta nu are buton de
salt direct la Calendar, e necesar sa fie pornita din Home
-
UPB - ETTI 56
Programarea pe platforma Android
Activitati, task-uri, procese
Comutarea intre task-uri
Lansarea celui de-al doilea task. Se alege Home > Calendar pentru a se vedea evenimentele din calendar. Calendar se lanseaza din Home ca nou task
deoarece lansatorul de aplicatii creeaza un nou task pentru fiecare aplicatie lansata
-
UPB - ETTI 57
Programarea pe platforma Android
Activitati, task-uri, procese
Comutarea intre task-uri
Comutarea catre primul task si incheierea lui. Cand se incheie citirea din Calendar, se poate reveni la atasarea imaginii utilizand Home > Messaging,
ceea ce conduce nu la Messaging, ci direct la galerie, unde se suspendase
task-ul. Poate fi selectata o imagine, care e adaugata la mesaj, iar cand este
trimis mesajul se incheie primul task
-
UPB - ETTI 58
Programarea pe platforma Android
Fazele aplicatiilor Android
Visible and focused
activity is visible (on the top of the task), the user can interact
with the activity
Visible but without the focus
activity is still visible, but the user cannot interact with the activity (because of a view,
like a dialog, that has the focus on the top of the
activity)
activity is paused, but maintains the state (i.e. member values). It may be killed by the
system in extreme low memory situation
-
UPB - ETTI 59
Programarea pe platforma Android
Fazele aplicatiilor Android
Hidden
activity is completely hidden by another activity (full-screen)
activity is stopped, it still retains all state and members BUT is
often killed by the system when
memory is needed elsewhere
Finished
an activity that is paused or stopped can be killed by the system
the system can either call the onDestroy() method or simply kill the process (without any notification)
the state is lost in that case
if the activity is displayed again to the user, it must be completely restarted and restore its previous state itself (if at all)
-
UPB - ETTI 60
Programarea pe platforma Android
Fazele aplicatiilor Android
Activitatea trece
in pauza, starea
ii este mentinuta
Activitatea revine
in prim plan din
pauza
Activitatea este
in prim plan
Activitatea este
oprita, nu mai
este vizibila
Diagrama MSC schimbul de mesaje
-
UPB - ETTI 61
Programarea pe platforma Android
Fazele aplicatiilor Android
Activitatea in
pauza este
distrusa pentru
a se elibera
memorie
Activitatea
revine in prim
plan dupa ce a
fost oprita
Activitatea
oprita este
distrusa pentru
a se elibera
memorie
Diagrama MSC schimbul de mesaje
-
UPB - ETTI 62
Programarea pe platforma Android
Fazele aplicatiilor Android
Diagrama de activitati
-
UPB - ETTI 63
Programarea pe platforma Android
Fazele
aplicatiilor
Android
Diagrama de
stari si tranzitii
-
UPB - ETTI 64
Programarea pe platforma Android
Fazele aplicatiilor Android Detalii privind metodele asociate
-
UPB - ETTI 65
Programarea pe platforma Android
Fazele serviciilor Android
-
UPB - ETTI 66
Introducere in Java si Orientarea spre Obiecte
(complemente)
Curs DAAI
-
UPB - ETTI 67
Local: 2014_Intro_Java_OOP_short_v01.pdf
http://uet.vnu.edu.vn/~chauttm/e-books/java/Head-First-Java-2nd-edition.pdf
Local: Head-First-Java-2nd-edition.pdf
Introducere in Java si Orientarea spre Obiecte
Introducere in Orientarea spre Obiecte
-
UPB - ETTI 68
package com.vogella.android.first;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (BuildConfig.DEBUG) { Log.d(Constants.LOG, "onCreated called"); }
setContentView(R.layout.activity_main);
}
// you may have here an onCreateOptionsMenu method
// this method is not required for this exercise therefore I deleted it
public void onClick(View view) {
EditText input = (EditText) findViewById(R.id.main_input);
String string = input.getText().toString();
Toast.makeText(this, string, Toast.LENGTH_LONG).show();
}
}
Introducere in Java si Orientarea spre Obiecte
Introducere in Java / Android http://uet.vnu.edu.vn/~chauttm/e-books/java/Head-First-Java-2nd-edition.pdf
Local: Head-First-Java-2nd-edition.pdf