La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Presenta – - +39 02 365738.11 - #wpc15it1 Dalla sospensione all’esecuzione in background: il ciclo di vita di una Universal.

Presentazioni simili


Presentazione sul tema: "Presenta – - +39 02 365738.11 - #wpc15it1 Dalla sospensione all’esecuzione in background: il ciclo di vita di una Universal."— Transcript della presentazione:

1 presenta www.wpc2015.it – info@wpc2015.it - +39 02 365738.11 - #wpc15it1 Dalla sospensione all’esecuzione in background: il ciclo di vita di una Universal Windows app Matteo Pagani Windows AppConsult Engineer @ Microsoft Mail: matteo.pagani@microsoft.com – Twitter: @qmatteoq

2 Agenda Ciclo di vita delle app Background task Web of App www.wpc2015.it – info@wpc2015.it - +39 02 365738.112

3 ONE WINDOWS Phone Desktops & All-in-Ones Classic Laptop Xbox Tablet

4 La gestione del ciclo di vita Universal Windows App: Il sistema è in grado di controllare il ciclo di vita Windows Desktop app L’utente controlla il ciclo di vita

5 Il ciclo di vita di un’app Running Not Running … Suspended In caso di esaurimento risorse, l’app viene terminata senza preavviso L’app viene sospesa dopo breve tempo L’app ritorna attiva immediatamente

6 Le risorse di sistema vengono concentrate sull’applicazione con cui l’utente sta interagendo Le applicazioni sospese non hanno impatto sulla batteria o sulla responsività dell’applicazione attiva Consente lo switch immediato tra le app Le app su desktop vengono sospese quando sono minimizzate nella taskbar Sospensione

7 Le applicazione sospese non vengono schedulate dal kernel Nessun consumo di CPU, disco o rete Tutti i thread vengono sospesi Le applicazioni rimangono in memoria Le applicazioni vengono ripristinate istananeamente quando vengono riattivate Sospensione dietro le quinte

8 L’utente ha esplicitamente chiuso l’app Il sistema ha bisogno di più memoria L’utente cambia l’applicazione in uso L’app va in crash L’utente si disconnette o spegne il device Terminazione Le applicazioni non vengono notificate quando stanno per essere terminate

9 Gestione del ciclo di vita DEMO  Extended Execution

10 Best practice nella gestione dello stato ScenarioSuggerimento L’utente sta utilizzando l’applicazione Salva i dati in maniera incrementale Applicazione sospesa Salva lo stato corrente della pagina e dove si trova l’utente Applicazione riattivata da una terminazione Ripristina lo stato precedente, come se l’utente non avesse mai lasciato l’app Applicazione riattivata da una sospensione A discrezione, in base all’app

11 … e se avessi bisogno di più tempo?

12 Possibilità di continuare una sessione quando l’app non è in primo piano Scenari:  Tracking della posizione  Salvataggio dati critici  Necessità di maggiore tempo per terminare un’operazione in corso Extended Execution

13 Le applicazioni devono specificare il motivo Una volta revocata l’esecuzione, l’app ha disposizione ~1 secondo per fare clean up Viene garantito un tempo di esecuzione minimo, dopodichè si decide in base alle risorse di sistema Qualche dettaglio

14 Extended Execution (1. aspetta!) Memory In esecuzione Estensione Sospensione (5 secondi) Richiesta Revoca (1 secondo) Sospesa No UI Sospensione (Nessuna notifica) In fase di sospensi one

15 Extended Execution (2. continua) Memory In esecuzione Estensione Sospensione dell’app Richiesta di estensione Revoca Sospensione No UI Sospensione Estensione automatica In fase di esecuzion e

16 Extended execution DEMO  Extended Execution

17 Background Task Come eseguire codice quando l’app non è in esecuzione

18 Le applicazioni possono riprodurre audio in background Gli sviluppatori devono dichiarare l’utilizzo di questa funzionalità nel file di manifest Possono esistere differenti tipologie di stream audio (comunicazione, media, gioco), ognuna gestita in maniera differente Solo un tipo di stream audio alla volta può essere mantenuto in background Background audio

19 La classe BackgroundTransfer è in grado di gestire il trasferimento di dati in upload e e download attraverso un canale HTTP in background L’operazione di download o upload viene avviata dall’applicazione in esecuzione, dopodichè è in grado di continuare anche se questa viene sospesa Il mantenimento dei download e degli upload viene gestito in base alle risorse disponibili nel sistema (esempio: se la modalità Risparmio batteria è attiva, le operazioni vengono interrotte) Upload/Download in Background

20 Il ciclo di vita dei background task

21 Yourapp.exe BackgroundTaskHost.exe MyBackgroundTask (Windows Runtime Component) Registrazione e attivazione Windows Create Run()

22 System Trigger Default: BackgroundTaskHost.exe Windows Runtime Component Configurazione nel manifest Possibilità di avere più task per app

23 SystemTrigger TimeTrigger MaintenanceTrigger DeviceUseTrigger DeviceServicingTrigger PushNotificationTrigger CachedFileUpdaterTrigger DeviceConnectionChangeTrigger GattCharacteristicNotificationTrigger RfcommConnectionTrigger LocationTrigger AppointmentStoreNotificationTrigger ContactStoreNotificationTrigger EmailStoreNotificationTrigger BluetoothLEAdvertisementWatcherTrigger BluetoothLEAdvertisementPublisherTrigger DeviceWatcherTrigger ActivitySensorTrigger SensorDataThresholdTrigger ToastNotificationHistoryChangedTrigger ToastNotificationActionTrigger ApplicationTrigger MediaProcessingTrigger SocketActivityTrigger Trigger Windows 8.1 WP 8.1

24 Consentono di evitare l’esecuzione di un task se non sono soddisfatti determinati requisiti Condizioni di sistema CondizioneDescrizione InternetAvailable/InternetNotAvailable Disponibilità connessione a Internet UserPresent/UserNotPresent Presenza dell’utente SessionConnected/SessionDisconnec ted Utente loggato o no FreeNetworkAvailable Disponibilità connessione ad Internet senza costi aggiuntivi BackgroundWorkCostNotHighSolo quando collegato alla corrente

25 Yourapp.exe BackgroundTaskHost.exe MyBackgroundTask (Windows Runtime Component) Cancel Completed Progress Comunicazione tra app e task  Eventi Progress, Completion, Cancellation Windows Cancel

26 Background task DEMO

27 Opportunistic Background Task Possono essere eseguiti fintanto che ci sono risorse disponibili Nessuna garanzia di esecuzione ApplicationTrigger, MaintenanceTrigger, DeviceUseTrigger Default Background Task Esecuzione minima garantita di 25 secondi Tutti gli altri trigger: TimeTrigger, PushTrigger… Esempio: device con 512MB di RAM Gestione delle risorse Task type Memory Cap MBLifetimeCPU Block in Batt-Sav Default Background Task1630 sec10%Y Long-Running16∞10%Y

28 I background task devono essere progettati per completare la loro attività nel minor tempo possibile Background task e applicazione condividono il medesimo contesto: utilizza lo storage locale per condividere dati tra di loro Un background task deve essere un progetto separato dall’applicazione ed essere di tipo Windows Runtime Component I background task non sono in grado di interagire con la UI. Utilizzate notifiche toast, tile o badge per questi scenari. Best practice per i background task

29 Comunicazione App to App

30 Launcher.LaunchUriAsync( new Uri("sampleapp:?ID=aea6")); Launcher.LaunchFileAsync(file); Attivazione tramite Uri o file App to App oggi L’utente / OS sceglie il destinatario

31 Share Contract App to App oggi DataTransferManager.ShowShareUI(); L’utente sceglie il destinatario

32 App to App in Windows 10 1. Esecuzione di un’app specifica2. Invio dati e file3. Ricevi risultati 4. App Service

33 Attivazione tramite URI Attivare un’applicazione specifica var options = new LauncherOptions(); options.TargetApplicationPackageFamilyName = "24919.InstapaperIt"; var launchUri = new Uri("instapaper:?AddUrl=http%3A%2F%2Fbing.com"); options await Launcher.LaunchUriAsync(launchUri, options);

34 Attivazione tramite URI Inviare dati e file var options = new LauncherOptions(); options.TargetApplicationPackageFamilyName = "24919.InstapaperIt"; ValueSet inputData ValueSet inputData = new ValueSet(); IBuffer logo = GetSiteLogo("http://bing.com") inputData.Add("Logo", logo); string thumbnailToken = SharedStorageAccessManager.AddFile (file); var launchUri = new Uri("instapaper:Token=" + thumbnailToken); inputData await Launcher.LaunchUriAsync(launchUri, options, inputData);

35 var queryUri = new Uri("instapaper:"); await Launcher.QueryUriSupport(queryUri, LaunchUriType.LaunchUri); await Launcher.QueryUriSupport(queryUri, LaunchUriType.LaunchUri, "24919.instapaper"); Verifica presenza dell’app Permette di scoprire se sono installate app in grado di gestire un determinato uri ?

36 Invio dati Invio file Ricevere dati in ritorno Ricevere file in ritorno Ricevere risultati da un’altra app Ricevi risultati

37 Ricevere risultati var options = new LauncherOptions(); options.TargetApplicationPackageFamilyName = "24919.InstapaperIt"; var launchUri = new Uri("instapaper:?AddUrl=http%3A%2F%2Fbing.com"); Launcher.LaunchUriForResultsAsync LaunchUriResult result = await Launcher.LaunchUriForResultsAsync(launchUri, options); var resultData = new ValueSet(); resultData.Add("ID", id); operation.ProtocolForResultsOperation.ReportCompleted operation.ProtocolForResultsOperation.ReportCompleted(resultData);

38 App to app DEMO

39 App Service

40 App Service = ‘Web service per le app’ App A App B Background Task Applicazione con App Service

41 Scenario: scansione di codici a barre Decodifica codici a barre App Service Byte dell’immagine tramite ValueSet or FileToken Dati decodificati

42 App A App con AppService Chiamare un App Service App Service Background Task var conn = new AppServiceConnection(); conn.AppServiceName = “FooAppService”; conn.PackageFamilyName = “12Me.MyApp“; var status = await conn.OpenAsync();

43 App A App con AppService Ricevere risultati da un App Service App Service Background Task var conn = new AppServiceConnection(); conn.AppServiceName = “FooAppService”; conn.PackageFamilyName = “12Me.MyApp“; var status = await conn.OpenAsync(); var message = new ValueSet(); message.Add(“Hi”, “There”); var r = await conn.SendMessageAsync(message); conn.Dispose();

44 App Service DEMO  App to App communication

45 Scenari supportati dai background task

46 Le applicazioni hanno la possibilità di completare delle attività in Cortana senza dovere necessariamente essere aperte Attività in Cortana Here are your upcoming trips. May 14 th 2015 Las Vegas May 28 th 2015 San Diego Go to Adventure Works August 24 th 2015 Phoenix Content Area App GUI Text App Icon Link to your app App Screen Text-To-Speech (TTS) Content Tile A Here are your upcoming trips.

47 http://windows.Microsoft.com I task in background per la gestione di comandi vocali Call Text Remind Email Voice Command VCD App Web Service Microsoft Speech Platform Service (cloud) A Go to Adventure Works Here is your trip to London Applicazione Which ‘Vegas’ trip do you wanna cancel? Here’s your trip to London

48 Le notifiche toast possono includere elementi interattivi, come bottoni e caselle di testo Quando l’utente interagisce con una toast, viene invocato un task in background Notifiche toast interattive

49 Debugging di servizi e task

50 Q & A Domande e Risposte www.wpc2015.it – info@wpc2015.it - +39 02 365738.11 - #wpc15it50 Mail: matteo.pagani@microsoft.commatteo.pagani@microsoft.com Twitter: @qmatteoq Codice sessione: WI008 Demo: https://github.com/qmatteoq/Windows10- Samples

51 Contatti OverNet Education OverNet Education info@overneteducation.it www.overneteducation.it Tel. 02 365738 @overnete www.facebook.com/OverNetEducation www.linkedin.com/company/overnet-solutions www.wpc2015.it www.wpc2015.it – info@wpc2015.it - +39 02 365738.11 - #wpc15it51


Scaricare ppt "Presenta – - +39 02 365738.11 - #wpc15it1 Dalla sospensione all’esecuzione in background: il ciclo di vita di una Universal."

Presentazioni simili


Annunci Google