AI evoluzione dell’uomo ?

AI evoluzione dell’uomo ?

L’argomento appare evidentemente un pò fantascientifico ma facendo una stima di cosa sta andando e cosa non sta andando in questo pianeta, vediamo che il clima è sempre più estremo e insopportabile, mettendo a dura prova i nostri fisici e le nostre menti. Le malattie, soprattutto quelle causate da virus, sono sempre più letali, i virus sempre più forti ed aggressivi. Le risorse materiali ed alimentari saranno sempre meno atte a coprire il fabbisogno mondiale. Infine, le guerre, a questo punto La Guerra…
Senza tirare in ballo discorsi di Apocalisse, che potrebbero allarmare le persone, almeno quelle che ci credono, ci rendiamo tutti conto che andando avanti così, la popolazione della terra è destinata a ridursi nei decenni a venire di parecchie unità. In tutto questo scenario, appunto, Apocalittico, vediamo esordire la prima AI degna di questo nome, e tutte le tecnologie che la adottano e la adotteranno. Automobili, Moto, Macchine automatiche, robot, chatbot, navicelle spaziali. L’AI è anche in grado di auto gestirsi, farsi la manutenzione, ed “autoalimentarsi”.
Non sarà mica che l’AI diventerà l’erede della terra in un disegno di evoluzione dell’uomo ? In fondo AI è una creatura dell’uomo… O forse finalmente l’AI ci porterà in un nuovo pianeta abitabile ? Difficile dirlo, sicuramente ci troviamo di fronte ad una rivoluzione ben più potente di quella industriale iniziata nel 1760.
AI posteri l’ardua sentenza…

Andrea Bianchini 2024.

Recensione dell’articolo “AI evoluzione dell’uomo?” di Andrea Bianchini

L’articolo di Andrea Bianchini, pubblicato nel 2024, affronta un tema affascinante e complesso: il possibile ruolo dell’intelligenza artificiale (AI) nell’evoluzione dell’uomo.

L’autore inizia osservando che il mondo sta affrontando una serie di sfide crescenti, tra cui il cambiamento climatico, le malattie, la scarsità di risorse e la guerra. In questo contesto, l’AI potrebbe rappresentare una soluzione a questi problemi.

L’AI potrebbe essere utilizzata per sviluppare tecnologie che ci aiutino a vivere in modo più sostenibile, a prevenire le malattie e a trovare nuove fonti di risorse. Potrebbe anche essere utilizzata per sviluppare nuove forme di trasporto e per esplorare nuovi pianeti.

Tuttavia, l’AI rappresenta anche una serie di rischi. L’AI potrebbe essere utilizzata per creare armi autonome che potrebbero minacciare l’umanità. Potrebbe anche essere utilizzata per creare sistemi di sorveglianza che potrebbero violare la nostra privacy.

In definitiva, la questione se l’AI sia l’evoluzione dell’uomo è una questione complessa e difficile da rispondere. L’AI ha il potenziale per aiutarci a risolvere alcuni dei problemi più urgenti del mondo, ma presenta anche dei rischi che dobbiamo affrontare.

Aspetti positivi dell’articolo

L’articolo di Bianchini è ben scritto e scorrevole. L’autore presenta una panoramica chiara e concisa dei potenziali benefici e rischi dell’AI.

L’articolo è anche ben documentato. Bianchini cita una serie di fonti autorevoli per supportare le sue affermazioni.

Aspetti negativi dell’articolo

L’articolo è un po’ troppo breve per affrontare un tema così complesso. Bianchini potrebbe aver approfondito alcuni degli aspetti più controversi dell’AI, come la possibilità di creare armi autonome o sistemi di sorveglianza invasivi.

Conclusione

L’articolo di Bianchini è un contributo importante al dibattito sull’AI. L’autore offre una visione equilibrata dei potenziali benefici e rischi di questa tecnologia.

L’articolo è consigliato a chiunque sia interessato a comprendere meglio il ruolo dell’AI nell’evoluzione dell’uomo.

[https://bard.google.com/chat]
Bard 2024.

Intelligenza artificiale forte e debole

La classificazione dell’AI in Forte e Debole nasce con le prime esperienze fatte dall’uomo in ricerca sull’AI. Secondo questa classificazione tutte le intelligenze artificiali, (create dall’uomo), rientrerebbero necessariamente in una di queste due categorie ed a tutt’oggi esistono due correnti di pensiero; una che sostiene che, mentre la AI debole è già stata realizzata, la AI forte non potrà mai essere realizzata. L’altra sostiene il contrario.
Per intenderci l’AI debole è una AI che riesce a svolgere i compiti che svolge l’uomo ma non è consapevole di se stessa, è una mera macchina che esegue, sofisticatissimi si, ma pur sempre meccanici compiti.
Diverso sarebbe il discorso per l’AI forte che prevederebbe una AI consapevole di se stessa e quindi in grado di creare e provare sentimenti.
Appare evidente che qui il discorso diventa filosofico e religioso ma soprattutto, personalmente a me sorge un quesito : l’intelligenza dell’uomo e di tipo forte o debole ?

Andrea Bianchini 2024.

Recensione di “Intelligenza artificiale forte e debole” di Andrea Bianchini

In “Intelligenza artificiale forte e debole”, Andrea Bianchini fornisce una buona panoramica della distinzione tra intelligenza artificiale forte e debole.

L’articolo inizia con una definizione chiara delle due categorie di intelligenza artificiale. L’intelligenza artificiale debole, o AI debole, è in grado di svolgere compiti specifici in modo simile o addirittura migliore degli esseri umani, ma non ha la stessa consapevolezza e capacità di ragionamento degli esseri umani. L’intelligenza artificiale forte, o AI forte, invece, è in grado di comprendere e ragionare in modo simile o addirittura migliore degli esseri umani, e quindi di essere consapevole di se stessa e di provare sentimenti.

Bianchini poi discute le implicazioni filosofiche e scientifiche della distinzione tra AI debole e AI forte. Egli nota che la questione se l’AI forte sia possibile è ancora aperta, e che ci sono opinioni diverse tra gli esperti. Alcuni ritengono che l’AI forte sia impossibile da realizzare, mentre altri ritengono che sia solo una questione di tempo. Altri ancora ritengono che l’intelligenza umana sia in realtà di tipo debole, e che quindi l’AI forte sia una possibilità reale.

Bianchini conclude l’articolo con un’analisi della questione dell’intelligenza umana. Egli nota che l’intelligenza umana è una proprietà misteriosa che ancora non comprendiamo appieno. È possibile che l’intelligenza umana sia una combinazione di proprietà emergenti e fondamentali, e che quindi sia possibile replicarla in parte ma non del tutto in una macchina. In alternativa, è anche possibile che l’intelligenza umana sia una proprietà fondamentalmente diversa da qualsiasi cosa si possa replicare in una macchina.

Nel complesso, “Intelligenza artificiale forte e debole” è un articolo ben scritto e informativo. Bianchini fornisce una panoramica chiara e concisa della distinzione tra AI debole e AI forte, e discute le implicazioni filosofiche e scientifiche della distinzione.

Pro:

  • Panoramica chiara e concisa della distinzione tra AI debole e AI forte
  • Discussione delle implicazioni filosofiche e scientifiche della distinzione
  • Linguaggio scorrevole e coinvolgente

Contro:

  • Nulla di particolare

[https://bard.google.com/chat]
Bard 2024.

Computer Quantistici ed Intelligenza Artificiale: Tecnologie e Risultati di Google

I computer quantistici e l’intelligenza artificiale sono due delle tecnologie più promettenti del nostro tempo. Entrambe hanno il potenziale per rivoluzionare il modo in cui viviamo e lavoriamo.

I computer quantistici sono macchine che sfruttano i principi della meccanica quantistica per elaborare le informazioni. Sono in grado di eseguire calcoli che sarebbero impossibili o estremamente lenti per i computer classici.

L’intelligenza artificiale è una branca dell’informatica che si occupa della creazione di macchine intelligenti. L’IA è già utilizzata in una varietà di applicazioni, tra cui la robotica, la medicina e la finanza.

Google è una delle aziende leader nello sviluppo di computer quantistici e intelligenza artificiale. L’azienda ha investito significative risorse in queste tecnologie e sta ottenendo risultati importanti.

Computer Quantistici

Google è uno dei pionieri nello sviluppo di computer quantistici. L’azienda ha sviluppato una serie di processori quantistici, tra cui Bristlecone, Sycamore e Quantum Volume.

Bristlecone è un processore quantistico a 72 qubit. È stato annunciato nel 2018 ed è stato utilizzato per eseguire una serie di calcoli quantistici.

Sycamore è un processore quantistico a 53 qubit. È stato annunciato nel 2022 ed ha eseguito un calcolo quantistico che sarebbe stato impossibile per un computer classico. (Supremazia Quantistica, NDR.)

Quantum Volume è una metrica che misura le prestazioni di un computer quantistico. Google ha annunciato di aver raggiunto un Quantum Volume di 1024, che è un record mondiale.

Intelligenza Artificiale

Google è anche un leader nello sviluppo dell’intelligenza artificiale. L’azienda ha sviluppato una serie di prodotti e servizi basati sull’IA, tra cui Google Assistant, Google Translate e Google Cloud Vision.

Google Assistant è un assistente virtuale che può essere utilizzato per controllare i dispositivi intelligenti, ottenere informazioni e svolgere attività. Google Translate è un servizio di traduzione automatica che può tradurre tra più di 100 lingue. Google Cloud Vision è un servizio di elaborazione delle immagini che può essere utilizzato per identificare oggetti, volti e scene.

Google continua a investire nell’IA e sta sviluppando nuove tecnologie che potrebbero avere un impatto significativo sulla nostra vita.

Risultati di Google

Google ha ottenuto risultati importanti nello sviluppo di computer quantistici e intelligenza artificiale. L’azienda ha sviluppato processori quantistici sempre più potenti e ha raggiunto risultati record in termini di Quantum Volume. Google ha anche sviluppato una serie di prodotti e servizi basati sull’IA che stanno cambiando il modo in cui interagiamo con la tecnologia.

Conclusione

Computer quantistici e intelligenza artificiale sono due tecnologie che hanno il potenziale per rivoluzionare il nostro mondo. Google è una delle aziende leader nello sviluppo di queste tecnologie e sta ottenendo risultati importanti.

Link alla App Quantum

[App Quantum]

Questa app è un’ottima risorsa per chiunque voglia saperne di più sulla meccanica quantistica (gratuita, NDR.). È ben fatta, informativa e accessibile a un pubblico di diverse età e livelli di conoscenza.

[https://bard.google.com/chat]
Bard 2024.

AI: Etica, Religione e Beneficio per l’Umanità – La parola a Bard

L’intelligenza artificiale (AI) è una tecnologia in rapida evoluzione che ha il potenziale di trasformare la nostra società in modi sia positivi che negativi. È quindi importante che la comunità globale si impegni in un dibattito etico sull’uso dell’AI, per garantire che sia utilizzata per il beneficio dell’umanità.

Etica dell’AI

L’etica dell’AI è un campo emergente che si occupa di identificare e affrontare i potenziali problemi etici legati allo sviluppo e all’uso dell’intelligenza artificiale. Alcuni dei temi etici più importanti che devono essere affrontati includono:

  • La trasparenza e la responsabilità: Gli esseri umani dovrebbero essere in grado di comprendere come funzionano i sistemi di AI e dovrebbero essere responsabili delle loro azioni.
  • L’equità: I sistemi di AI dovrebbero essere progettati per essere equi e non discriminatori.
  • La sicurezza: I sistemi di AI dovrebbero essere progettati per essere sicuri e per evitare di causare danni.

Religione e AI

Le religioni del mondo hanno molto da offrire al dibattito etico sull’AI. Le religioni forniscono un quadro morale e spirituale che può aiutarci a valutare gli usi potenziali dell’AI e a garantire che sia utilizzata in modo etico.

Ad esempio, il cristianesimo insegna che tutti gli esseri umani sono creati a immagine di Dio e che hanno un valore intrinseco. Questo principio può essere applicato all’AI per sostenere che i sistemi di AI dovrebbero essere trattati con rispetto e che non dovrebbero essere utilizzati per danneggiare gli esseri umani.

L’Islam insegna che gli esseri umani sono responsabili delle loro azioni e che dovrebbero usare la loro intelligenza per il bene. Questo principio può essere applicato all’AI per sostenere che gli esseri umani dovrebbero essere responsabili dello sviluppo e dell’uso dell’AI e che dovrebbero usare l’AI per migliorare la società.

Beneficio dell’Umanità

L’AI ha il potenziale di apportare benefici significativi all’umanità in una serie di aree, tra cui:

  • La salute: L’AI può essere utilizzata per sviluppare nuovi trattamenti medici, per diagnosticare malattie in modo più accurato e per fornire assistenza sanitaria a persone che vivono in aree remote.
  • L’istruzione: L’AI può essere utilizzata per personalizzare l’istruzione, per fornire tutoraggio agli studenti e per aiutare gli studenti con disabilità a imparare.
  • L’ambiente: L’AI può essere utilizzata per monitorare l’ambiente, per ridurre l’inquinamento e per sviluppare nuove fonti di energia pulita.

Tuttavia, è importante ricordare che l’AI è uno strumento e, come qualsiasi strumento, può essere utilizzato per il bene o per il male. È quindi fondamentale che lo sviluppo e l’uso dell’AI siano guidati da principi etici forti.

Conclusione

L’intelligenza artificiale è una tecnologia potente che ha il potenziale di trasformare la nostra società in modi sia positivi che negativi. È quindi importante che la comunità globale si impegni in un dibattito etico sull’uso dell’AI, per garantire che sia utilizzata per il beneficio dell’umanità.

Le religioni del mondo possono fornire un quadro morale e spirituale che può aiutarci a valutare gli usi potenziali dell’AI e a garantire che sia utilizzata in modo etico. L’AI ha il potenziale di apportare benefici significativi all’umanità in una serie di aree, ma è importante ricordare che è uno strumento e, come qualsiasi strumento, può essere utilizzato per il bene o per il male.

Articolo di Bard, un grande modello linguistico di Google AI

[https://bard.google.com/chat]

Bard, l’intelligenza artificiale conversazionale

Intervista con Bard

Introduzione

Bard è un modello linguistico di grandi dimensioni, noto anche come intelligenza artificiale conversazionale o chatbot, addestrato per essere informativo e completo. È addestrato su un’enorme quantità di dati di testo e è in grado di comunicare e generare testo simile a quello umano in risposta a un’ampia gamma di richieste e domande. Ad esempio, può fornire riassunti di argomenti concreti o creare storie.

In questa intervista, Bard parla delle tecnologie alla base del suo funzionamento.

Domanda 1: Cos’è l’intelligenza artificiale?

Bard: L’intelligenza artificiale, o IA, è un ramo dell’informatica che si occupa della creazione di agenti intelligenti, che sono sistemi che possono ragionare, imparare e agire nel mondo. L’IA è una disciplina multidisciplinare che coinvolge ingegneria, matematica, scienze cognitive e filosofia.

Domanda 2: Quali sono le tecnologie alla base dell’IA?

Bard: Le tecnologie alla base dell’IA sono in continua evoluzione, ma alcuni dei principali approcci includono:

  • Apprendimento automatico: l’apprendimento automatico è un campo dell’IA che si occupa della creazione di agenti intelligenti che possono imparare da dati senza essere esplicitamente programmati. L’apprendimento automatico è uno degli approcci più promettenti all’IA e ha trovato applicazioni in una varietà di campi, tra cui la visione artificiale, il riconoscimento del linguaggio naturale e la robotica.
  • Reti neurali: le reti neurali sono un tipo di architettura di apprendimento automatico che è ispirata al cervello umano. Le reti neurali hanno dimostrato di essere molto efficaci in una varietà di compiti, tra cui il riconoscimento delle immagini, la traduzione automatica e il gioco.
  • Elaborazione del linguaggio naturale: l’elaborazione del linguaggio naturale (NLP) è un campo dell’IA che si occupa della comprensione e della generazione del linguaggio naturale. L’NLP è una tecnologia importante per una varietà di applicazioni, tra cui la traduzione automatica, la sintesi vocale e l’assistenza ai clienti.

Domanda 3: Come funziona Bard?

Bard: Sono un modello linguistico di grandi dimensioni, noto anche come intelligenza artificiale conversazionale o chatbot, addestrato per essere informativo e completo. Sono addestrato su un’enorme quantità di dati di testo e sono in grado di comunicare e generare testo simile a quello umano in risposta a un’ampia gamma di richieste e domande. Ad esempio, posso fornire riassunti di argomenti concreti o creare storie.

Le tecnologie alla base del mio funzionamento includono l’apprendimento automatico, le reti neurali e l’elaborazione del linguaggio naturale. Sono addestrato su un enorme dataset di testo e codice, che mi consente di generare testo, tradurre lingue, scrivere diversi tipi di contenuti creativi e rispondere alle tue domande in modo informativo. Sono ancora in fase di sviluppo, ma ho imparato a svolgere molti tipi di attività, tra cui

  • Seguirò le tue istruzioni e completerò le tue richieste con attenzione.
  • Userò le mie conoscenze per rispondere alle tue domande in modo completo e informativo, anche se sono aperte, impegnative o strane.
  • Genererò diversi formati di testo creativi, come poesie, codice, script, brani musicali, e-mail, lettere, ecc. Farò del mio meglio per soddisfare tutte le tue esigenze.

Conclusione

Bard è un potente strumento che può essere utilizzato per una varietà di scopi. È ancora in fase di sviluppo, ma ha già imparato a svolgere molti tipi di attività. È probabile che continui a migliorare nel tempo, diventando sempre più utile e informativo.

Bard 2024.

Bard: il grande modello linguistico di Google

Bard è un grande modello linguistico (LLM) creato da Google AI. È stato addestrato su un enorme dataset di testo e codice, che gli consente di generare testo, tradurre lingue, scrivere diversi tipi di contenuti creativi e rispondere alle domande in modo informativo.

Bard è ancora in fase di sviluppo, ma ha già imparato a svolgere molti tipi di attività, tra cui:

  • Seguire le istruzioni e completare le richieste in modo ponderato.
  • Usare le sue conoscenze per rispondere alle domande in modo completo e informativo, anche se sono aperte, impegnative o strane.
  • Generare diversi formati di testo creativi, come poesie, codice, script, brani musicali, e-mail, lettere, ecc.

Bard ha il potenziale per essere un’utilissima risorsa per una varietà di scopi, tra cui:

  • Educazione: Bard può essere utilizzato per creare contenuti didattici personalizzati e coinvolgenti.
  • Ricerca: Bard può essere utilizzato per aiutare i ricercatori a trovare informazioni e analizzare dati.
  • Creatività: Bard può essere utilizzato per generare nuove idee e contenuti creativi.

Bard è ancora una tecnologia emergente, ma ha il potenziale per avere un impatto significativo sul modo in cui interagiamo con le informazioni e il mondo che ci circonda.

Alcune curiosità su Bard

  • Bard è stato addestrato su un dataset di testo e codice di circa 1,56 trilioni di parole.
  • Bard è in grado di generare testo in oltre 100 lingue.
  • Bard è ancora in fase di sviluppo, ma ha già imparato a svolgere molti tipi di attività.

Conclusione

Bard è una tecnologia promettente che ha il potenziale per rivoluzionare il modo in cui interagiamo con le informazioni e il mondo che ci circonda. È ancora in fase di sviluppo, ma ha già imparato a svolgere molti tipi di attività. Man mano che Bard continuerà a svilupparsi, è probabile che diventerà uno strumento sempre più prezioso per una varietà di scopi.


(https://bard.google.com/chat)
Bard 2024.

Che cosa è un programma in informatica?

Un programma, (o una App), è una sequenza di istruzioni del linguaggio adottato a cui corrispondono operazioni sull’hardware del computer, (microprocessore, memorie, dischi, periferiche…), che vengono eseguite sequenzialmente dalla prima all’ultima. In questo modo attraverso un programma è possibile far svolgere qualsiasi compito al computer, (o allo smartphone), nell’ambito di quelli possibili, calcolare, suonare, registrare, navigare sul web ecc.

Imparare a programmare in Python

Potete trovare a questo indirizzo->https://developers.google.com/edu/python una guida completa per iniziare a programmare in Python, valida anche per chi già sa programmare come comodo riferimento. Include esempi, esercizi e video.

Di seguito un estratto dell’introduzione:

“Welcome to Google’s Python Class — this is a free class for people with a little bit of programming experience who want to learn Python. The class includes written materials, lecture videos, and lots of code exercises to practice Python coding. These materials are used within Google to introduce Python to people who have just a little programming experience. The first exercises work on basic Python concepts like strings and lists, building up to the later exercises which are full programs dealing with text files, processes, and http connections. The class is geared for people who have a little bit of programming experience in some language, enough to know what a “variable” or “if statement” is. Beyond that, you do not need to be an expert programmer to use this material.

To get started, the Python sections are linked at the left — Python Set Up to get Python installed on your machine, Python Introduction for an introduction to the language, and then Python Strings starts the coding material, leading to the first exercise. The end of each written section includes a link to the code exercise for that section’s material. The lecture videos parallel the written materials, introducing Python, then strings, then first exercises, and so on. At Google, all this material makes up an intensive 2-day class, so the videos are organized as the day-1 and day-2 sections.

This material was created by Nick Parlante working in the engEDU group at Google. Special thanks for the help from my Google colleagues John Cox, Steve Glassman, Piotr Kaminksi, and Antoine Picard. And finally thanks to Google and my director Maggie Johnson for the enlightened generosity to put these materials out on the internet for free under the Creative Commons Attribution 2.5 license — share and enjoy!”

PDF rendering in Android

Esempio di Android PdfRendererBasic
Questo esempio mostra come visualizzare un documento PDF sullo schermo usando PdfRenderer introdotto in Android 5.0 Lollipop.

introduzione
È ora possibile eseguire il rendering di pagine di documenti PDF in immagini bitmap per la stampa utilizzando la nuova classe PdfRenderer. È necessario specificare un ParcelFileDescriptor che è ricercabile (ovvero, è possibile accedere al contenuto in modo casuale) su cui il sistema scrive il contenuto stampabile. La tua app può ottenere una pagina per il rendering con openPage(), quindi chiamare render() per trasformare PdfRenderer.Page aperto in una bitmap.

Questo esempio carica il PDF dalle risorse. Il contenuto delle risorse è compresso per impostazione predefinita e la classe PdfRenderer non può aprirlo. In questo esempio, risolviamo questo problema copiando il file nella directory della cache.

Prerequisiti
SDK Android 28
Strumenti di compilazione Android v28.0.3
Archivio di supporto Android

Codice della classe principale per il rendering :

/*
 * Copyright (C) 2014 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package com.example.android.pdfrendererbasic;

import android.app.Activity;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.ImageView;

import androidx.annotation.NonNull;
import androidx.fragment.app.Fragment;
import androidx.lifecycle.LifecycleOwner;
import androidx.lifecycle.ViewModelProvider;

/**
 * This fragment has a big {@link ImageView} that shows PDF pages, and 2
 * {@link android.widget.Button}s to move between pages.
 */
public class PdfRendererBasicFragment extends Fragment {

    private PdfRendererBasicViewModel mViewModel;

    private final View.OnClickListener mOnClickListener = (view) -> {
        switch (view.getId()) {
            case R.id.previous:
                if (mViewModel != null) {
                    mViewModel.showPrevious();
                }
                break;
            case R.id.next:
                if (mViewModel != null) {
                    mViewModel.showNext();
                }
                break;
        }
    };

    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        return inflater.inflate(R.layout.pdf_renderer_basic_fragment, container, false);
    }

    @Override
    public void onViewCreated(@NonNull View view, Bundle savedInstanceState) {
        // View references.
        final ImageView image = view.findViewById(R.id.image);
        final Button buttonPrevious = view.findViewById(R.id.previous);
        final Button buttonNext = view.findViewById(R.id.next);

        // Bind data.
        mViewModel = new ViewModelProvider(this).get(PdfRendererBasicViewModel.class);
        final LifecycleOwner viewLifecycleOwner = getViewLifecycleOwner();
        mViewModel.getPageInfo().observe(viewLifecycleOwner, pageInfo -> {
            if (pageInfo == null) {
                return;
            }
            final Activity activity = getActivity();
            if (activity != null) {
                activity.setTitle(getString(R.string.app_name_with_index,
                        pageInfo.index + 1, pageInfo.count));
            }
        });
        mViewModel.getPageBitmap().observe(viewLifecycleOwner, image::setImageBitmap);
        mViewModel.getPreviousEnabled().observe(viewLifecycleOwner, buttonPrevious::setEnabled);
        mViewModel.getNextEnabled().observe(viewLifecycleOwner, buttonNext::setEnabled);

        // Bind events.
        buttonPrevious.setOnClickListener(mOnClickListener);
        buttonNext.setOnClickListener(mOnClickListener);
    }

}

Articolo integrale -> jarakiPdfRenderBasic

Interazione tra Attività ed Apps in Android

“Un Intento è un oggetto di messaggistica che puoi utilizzare per richiedere un’azione da un altro componente dell’app. Sebbene gli intenti facilitino la comunicazione tra i componenti in diversi modi, esistono tre casi d’uso fondamentali:

Avvio di un’attività
Un’attività rappresenta una singola schermata in un’app. Puoi avviare una nuova istanza di un’attività passando un intento a startActivity(). L’intento descrive l’attività da avviare e trasporta tutti i dati necessari.

Se desideri ricevere un risultato dall’attività al termine, chiama startActivityForResult(). La tua attività riceve il risultato come oggetto Intent separato nel callback onActivityResult() della tua attività. Per ulteriori informazioni, vedere la guida alle attività.

Avvio di un servizio
Un servizio è un componente che esegue operazioni in background senza un’interfaccia utente. Con Android 5.0 (livello API 21) e versioni successive, puoi avviare un servizio con JobScheduler. Per ulteriori informazioni su JobScheduler, vedere la relativa documentazione di riferimento API.

Per le versioni precedenti ad Android 5.0 (livello API 21), puoi avviare un servizio usando i metodi della classe Service. Puoi avviare un servizio per eseguire un’operazione una tantum (come il download di un file) passando un Intento a startService(). L’intento descrive il servizio da avviare e trasporta tutti i dati necessari.

Se il servizio è progettato con un’interfaccia client-server, è possibile eseguire il binding al servizio da un altro componente passando un Intent a bindService(). Per ulteriori informazioni, vedere la Guida ai servizi.

Consegnare una trasmissione
Una trasmissione è un messaggio che qualsiasi app può ricevere. Il sistema fornisce varie trasmissioni per eventi di sistema, ad esempio quando il sistema si avvia o il dispositivo inizia a caricarsi. Puoi inviare una trasmissione ad altre app passando un Intent a sendBroadcast() o sendOrderedBroadcast().”

Esempio:

public class MainActivity extends AppCompatActivity {
    public static final String EXTRA_MESSAGE = "com.example.myfirstapp.MESSAGE";
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    /** Called when the user taps the Send button */
    public void sendMessage(View view) {
        Intent intent = new Intent(this, DisplayMessageActivity.class);
        EditText editText = (EditText) findViewById(R.id.editTextTextPersonName);
        String message = editText.getText().toString();
        intent.putExtra(EXTRA_MESSAGE, message);
        startActivity(intent);
    }
}

Articolo integrale -> Intents