Processos e Threads em App Android.

https://developer.android.com/guide/components/processes-and-threads#java

https://developer.android.com/studio/write/annotations#thread-annotations

https://developer.android.com/guide/components/activities/process-lifecycle

https://github.com/rbeninca/Camera/

  1. Adicionando permissão no manifesto as permissões necessárias

    <uses-permission android:name="android.permission.CAMERA"/>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
    

Nas primeiras versões do Android as permissões necessárias para um app eram declaradas apenas no arquivo manifest.xml, a partir do Android 6.6 API 23 as permissões também necesistam ser solicitadas em tempo de execução. Por isso mais adiante no momento de implementarmos uma Activity que fara o uso da camera necessitaremos solicitar novamente as pemissões. Mas antes ainda é necessário adicionar as dependências necessárias para acessar o CameraX

2.Adicionando Dependências Necessárias no Gradle.Module

    // CameraX core library using the camera2 implementation
    def camerax_version = "1.2.0-alpha02"
    // The following line is optional, as the core library is included indirectly by camera-camera2
    implementation("androidx.camera:camera-core:${camerax_version}")
    implementation("androidx.camera:camera-camera2:${camerax_version}")
    // If you want to additionally use the CameraX Lifecycle library
    implementation("androidx.camera:camera-lifecycle:${camerax_version}")
    // If you want to additionally use the CameraX VideoCapture library
    implementation("androidx.camera:camera-video:${camerax_version}")
    // If you want to additionally use the CameraX View class
    implementation("androidx.camera:camera-view:${camerax_version}")
    // If you want to additionally add CameraX ML Kit Vision Integration
    implementation("androidx.camera:camera-mlkit-vision:${camerax_version}")
    // If you want to additionally use the CameraX Extensions library
    implementation("androidx.camera:camera-extensions:${camerax_version}")

Após adicionar essas linhas no final do arquivo devemos sincronizar o projeto.

  1. Adicionando visualização da câmera e botão de captura em XML

Para previsualiarmos o fluxo de vídeo vamos adicionar um componente que faz parte do cameraX definido como PreviewView, ilustrado com parte preta na Figura de Layout a seguir:

Untitled