SlideShare a Scribd company logo
1 of 43
Android: conheça o
 futuro Inevitável!
Alessandro de Oliveira Faria (A.K.A.CABELO)
           cabelo@opensuse.org
Perfil Técnico:
                         Alessandro de Oliveira Faria (A.K.A. CABELO)
                                                  Diretor de pesquisas
                                                   NETi TECNOLOGIA


●
  Atuando no mercado de software desde 1986 
●
  Embaixador e openSUSE Member; 
●
  Membro da comunidade Viva O Linux; 
●
  Conselheiro Administrativo Linux do projeto Tecnociência;
●
  Projetista/mantenedor mais de 90 RPMs no openSUSE Build Service; 

Mantenedor e Desenvolvedor
●
  droidFrete: Cálculo de frete na plataforma Android.
●
  droidRastreamento: Rastreabilidade de objeto postados.
●
  stampDate: Serviço de menu KDE para estampar data em imagens.
●
  libHAIRCAPTURE: Biblioteca de video captura em Linux.
●
  IPCMSG: Biblioteca de comunicação inter­processos.
●
  easyPCSC: Biblioteca para utilização de cartões smartcard
●
  twitterME: Adicina usuários com QRCode.

Publicações:
●
  Linux Magazine 9 Artigos
●
  Internet 100 artigos técnicos (VOL/Tecnociência/Linha de Código).
Arquitetura
                          O Dalvik é uma máquina virtual performática




                                               Em 2005 a google comprou a Android Inc
                                               (surgiu em 2003)., uma pequena empresa
                                               de     desenvolvimento    de     sistemas
                                               embarcados. Atualmente com exceção da
                                               Apple, da Nokia e da Microsoft,
                                               praticamente todos os outros grandes
                                               fabricantes possuem projetos relacionados
                                               ao Android.
O Android usa um gerenciamento de aplicativos nada convencional, pois os os
aplicativos abertos continuam ativos ao finalizar e são fechados somente quando o sistema
precisa de recursos. Na contrapartida, desenvolvedores nada caprichoso pode degradar o
sistema.
Notícias
           Algumas informações




●Esta plataforma aberta resultou em julho de 2011 no
Android Market a marca de 500.000 aplicativos.

Está disponível também o App Inventor, uma
plataforma de desenvolvimento rápido, baseada na
Open Blocks Java library.

● Lojas http://www.android.com/market,
● http://slideme.org

● LG

● http://andappstore.co

● http://shop4apps.motorola.com/
Notícias
                                                 Algumas informações




 Os aplicativos disponíveis vão desde aplicativos realmente inovadores
 e uteis, até mini-aplicativos especializados que se limitam a mostrar
 alguma informação específica, passando por todos os tipos de jogos e
 inutilidades, que se dividem entre aplicativos gratuitos e pagos.




A a idéia de tornar todos os aplicativos compatíveis com todos os dispositivos
baseados no Android, é uma ideia “QUASE” impossível de implementar na prática, pois
cada aplicativo exige uma versão mínima do sistema para rodar, além também casos de
aplicativos com requerimentos específicos (como para telas WXGA, que não rodam nos
aparelhos com telas HVGA).

Sendo assim leva-se em conta as propriedades do aparelho sobre o qual está rodando,
exibindo apenas os aplicativos compatíveis com ele.
Notícias
                                                Algumas informações




                               Android torna-se IMORTAL

● Abertura do código-fonte 3.0 – 4.0
● Kindle Fire, Baidu, Aliyun OS, Mozilla e Facebook.

● Barômetro, NFC, Reconhecimento Facial.

● Android em controle remotos – Motorola Covair.

● Aplicativos Android executados em plataformas BlackBerry.
Notícias
  Invasão dos quad-core




- HTC Edge/Supreme/Endeavor: O Edge promete
Tegra 3 quad-core de 1,5GHz, 1GB de RAM, tela de
4,7 polegadas com resolução HD, câmera de 8
megapixels.

- LG X3: Além do Tegra 3, tela HD de 4,7″ e câmera
traseira de 8MP – e câmera frontal de 1,3MP – o LG
X3 deve contar com bateria de 2.000mAh. Isso é
menos que o Razr Maxx

- Asus Padfone: Um dock que o torna um tablet!
Dizem que rodará Tegra 3, em vez do processador
Snapdragon presente no modelo atual.

- Fujitsu Arrows:Tegra 3, 1GB de RAM, tela HD de
4,6″, uma câmera impressionante de 13,1
megapixels com ISO 25.600, além de ser à prova
d’água e de poeira .
Notícias
Pantech Vega – Reconhecendo movimentos
Notícias
Algumas informações
Notícias
                                                  Algumas informações




Android 2.2: está disponível inclusive o suporte a multitouch, com gestos
para zoom;

Deslizamento os dedos de uma tecla a outra, sem precisar tirá-los do teclado;

 A linguagem padrão Java, embora sacrifique parte do desempenho, (reduz a eficiência
energética, resultando em um maior consumo de energia),na contrapartida obtemos
ganhos de portabilidade.

Compartilhamento da conexão através
da interface Wi-Fi e também via
 Bluetooth.

Acesso a root permite enxergar além
do limite.
Notícias
Algumas informações
Notícias
Algumas informações
Notícias
Algumas informações
Notícias
                                              Algumas informações




   Vale a pena mencionar sobre o uso do Android em x86,
uma medida estratégica do Google para o caso de a Intel
conseguir eventualmente conseguir embarcar com força no
ramo de tablets e smartphones com as versões de baixo
consumo do Atom http://www.android-x86.org/ Vale a pena
mencionar sobre o produto ThinkPad X1 Hybrid terá Android e
Windows 7.
Processamento de imagem
           Onde utilizar o NDK?
Processamento de imagem
              NDK é preciso?
Instalação e configuração do SDK
                               Download e descompactação do SDK




Pagina principal:
http://developer.android.com/sdk/index.html




$ tar ­zxvf android­sdk_r04­linux_86.tgz 
$ cd android­sdk­linux_86/tools
$ ./android
$ export PATH=${PATH}:<pasta de instalação do 
android>/tools 
Instalação e configuração do SDK
            Configuração da maquina virtual
Instalação e configuração do SDK
                   Instalação do eclipse
Instalação e configuração do SDK
                 Configuração do Eclipse
Instalação e configuração do SDK
                 Configuração do Eclipse
Instalação e configuração do SDK
                 Configuração do Eclipse
Criando o primeiro Ola Mundo
                                      Imprimir ola mundo




package com.android.hello;
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
public class HelloAndroid extends Activity {
   /** Called when the activity is first created. */
   @Override
   public void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       TextView tv = new TextView(this);
       tv.setText("Ola Mundo, Viva Pitágoras!");
       setContentView(tv);
   }
} 
Criando o primeiro Ola Mundo
              Executando o programa
Instalação e configuração do NDK
                              Download e descompactação do NDK




Pagina principal:
http://developer.android.com/sdk/ndk/index.html



$ unzip android­ndk­r4b­linux­x86.zip



Pronto o NDK esta instalado com sucesso!
Criando o primeiro Ola Mundo com NDK
                           Abrindo projeto
Instalação e configuração do NDK
                       Arquivo layout
Instalação e configuração do NDK
                  Criação protótipo da função nativa e makefile.




$ cd ~/workspace/HelloNDK
$ javah ­o  hellondk.h ­classpath bin com.cabelo.hellondk.HelloNDK
$ mkdir jni
$ cp hellondk.h  jni/
$ cd jni



$ vi Android.mk

LOCAL_PATH := $(call my­dir)
include $(CLEAR_VARS)
LOCAL_DEFAULT_CPP_EXTENSION := cpp
LOCAL_MODULE    := hellondk
LOCAL_SRC_FILES := hellondk.cpp
include $(BUILD_SHARED_LIBRARY)
Instalação e configuração do NDK
                                    Criação da função nativa




$ vi hellondk.cpp

#include <hellondk.h>

JNIEXPORT jstring JNICALL 
Java_net_bruary_hellondk_HelloNDK_sayHello(JNIEnv *env, jobject obj){
     return env­>NewStringUTF("Hello, NDK!");
 }
Instalação e configuração do NDK
                      Criação protótipo da função nativa e makefile.




$ /usr/local/share/android­ndk­r4b/ndk­build 
 Compile++ thumb: hellondk <= ~/HelloNDK/jni/hellondk.cpp
 SharedLibrary  : libhellondk.so
 Install        : libhellondk.so => ~/HelloNDK/libs/armeabi

$ vi Application.mk

APP_ABI := armeabi armeabi­v7a

 $ /usr/local/share/android­ndk­r4b/ndk­build 
 
 Compile++ thumb: hellondk <= ~/HelloNDK/jni/hellondk.cpp
 SharedLibrary  : libhellondk.so
 Install        : libhellondk.so => ~/HelloNDK/libs/armeabi
 Compile++ thumb: hellondk <= ~/HelloNDK/jni/hellondk.cpp
 SharedLibrary  : libhellondk.so
 Install        : libhellondk.so => ~/HelloNDK/libs/armeabi­v7a
Instalação e configuração do NDK
                  Execução do programa
Aplicações de video captura
       Permissão de uso da CAMERA.
Aplicações de video captura
                                  Inicialização e propriedades.




    <SurfaceView android:id="@+id/surface"
        android:layout_width="fill_parent" android:layout_height="10dip"
        android:layout_weight="1">
    </SurfaceView>

import android.hardware.Camera;


Camera camera = Camera.open();
camera.release();

        Camera.Parameters p = mCamera.getParameters();
        p.setPictureFormat(PixelFormat.JPEG); 
        p.setPreviewSize(w, h);
        mCamera.setParameters(p);
Aplicações de video captura
                                         Preview e captura




camera.startPreview();
[ … ]
camera.stopPreview();


private void takePicture() {
camera.takePicture(shutterCallback, rawCallback, jpegCallback); }



ShutterCallback shutterCallback = new ShutterCallback() {
public void onShutter() {
[ … ] } };

PictureCallback rawCallback = new PictureCallback() {
public void onPictureTaken(byte[] _data, Camera _camera) {
[ … ] } };
Aplicações de video captura
                                        Gravação em disco




   PictureCallback jpegCallback = new PictureCallback() {
       public void onPictureTaken(byte[] data, Camera camera) {
          FileOutputStream outStream = null;
          nomeImagem = String.format("/sdcard/DCIM/Camera/img­%d.jpg", 
System.currentTimeMillis());
          outStream = new FileOutputStream(nomeImagem);
              outStream.write(data);
              outStream.close();
       }
   };
Processando imagem
http://code.google.com/p/android-playground-erdao/wiki/SnapFace
Processamento em tempo real
                                         Preview e captura




void
Java_com_erdao_SnapFace_PreviewView_grayToRgb( JNIEnv*  env,
                                      jobject  this,
                                      jbyteArray src,
                                      jintArray  dst )
{
   jboolean b;
   jint len;
   jbyte* srcPtr=(*env)­>GetByteArrayElements(env,src,&b);
   jint* dstPtr=(*env)­>GetIntArrayElements(env,dst,&b);
   len = (*env)­>GetArrayLength(env,src);
   gray8toRGB32(srcPtr, dstPtr, len);
   (*env)­>ReleaseByteArrayElements(env, src, srcPtr, 0);
   (*env)­>ReleaseIntArrayElements(env, dst, dstPtr, 0);
}
;
Processamento em tempo real
                                                OpenCV



$ export ANDROID_NDK=/home/cabelo/android­ndk­r5c
$ export ANDROID_NDK_TOOLCHAIN_ROOT=/home/cabelo/android­ndk­
r5c/toolchains

$ cd ../android/
$ sh ./scripts/cmake_android_armeabi.sh ou cmake_android_neon.sh

$ cd build_armeabi
$ make 

$ make install

$ adb push HelloAndroid /data
$ adb shell chmod 777 /data/HelloAndroid
$ adb shell /data/HelloAndroid

$ adb pull /mnt/sdcard/HelloAndroid.png
$ xv HelloAndroid.png

$ adb install tutorial­1­addopencv.apk
Processamento em tempo real
                      OpenCV
Dicas
                    Ice Cream Sandwich, acabou o botão Menu do Android




http://android-developers.blogspot.com/2012/01/say-goodbye-to-menu-button.html
Críticas e sugestões
                               cabelo@opensuse.org




                  Obrigado!




 “Colaborar atrai amigos,
 competir atrai inimigos...”




         http://cabelovivaolinux.wordpress.com

More Related Content

What's hot

Palestra sobre Android - Faculdade Hélio Rocha
Palestra sobre Android  - Faculdade Hélio RochaPalestra sobre Android  - Faculdade Hélio Rocha
Palestra sobre Android - Faculdade Hélio RochaUbiracy Santos
 
Introdução à plataforma android.
Introdução à plataforma android.Introdução à plataforma android.
Introdução à plataforma android.Everton Dewes
 
Desenvolvimento de Apps e Games para Android - Parte 1
Desenvolvimento de Apps e Games para Android - Parte 1Desenvolvimento de Apps e Games para Android - Parte 1
Desenvolvimento de Apps e Games para Android - Parte 1Erisvaldo Junior
 
Programação Android - Básico
Programação Android - BásicoProgramação Android - Básico
Programação Android - BásicoHugoDalevedove
 
Curso de Android Aula 4
Curso de Android Aula 4Curso de Android Aula 4
Curso de Android Aula 4Jose Berardo
 
Programando Android - Aula 1
Programando Android - Aula 1Programando Android - Aula 1
Programando Android - Aula 1Kalil Maciel
 
Introdução ao Android
Introdução ao AndroidIntrodução ao Android
Introdução ao AndroidBruno Lui
 
Aula01 mobilidade android
Aula01 mobilidade androidAula01 mobilidade android
Aula01 mobilidade androidRoberson Alves
 
Entenda porque seu aplicativo de Android não deve ser igual ao de iPhone
Entenda porque seu aplicativo de Android não deve ser igual ao de iPhoneEntenda porque seu aplicativo de Android não deve ser igual ao de iPhone
Entenda porque seu aplicativo de Android não deve ser igual ao de iPhoneHenrique Perticarati
 

What's hot (20)

Palestra sobre Android - Faculdade Hélio Rocha
Palestra sobre Android  - Faculdade Hélio RochaPalestra sobre Android  - Faculdade Hélio Rocha
Palestra sobre Android - Faculdade Hélio Rocha
 
Android
AndroidAndroid
Android
 
Android
AndroidAndroid
Android
 
Android
AndroidAndroid
Android
 
Android - Conceito e Arquitetura
Android - Conceito e ArquiteturaAndroid - Conceito e Arquitetura
Android - Conceito e Arquitetura
 
Introdução à plataforma android.
Introdução à plataforma android.Introdução à plataforma android.
Introdução à plataforma android.
 
Android
AndroidAndroid
Android
 
Desenvolvimento de Apps e Games para Android - Parte 1
Desenvolvimento de Apps e Games para Android - Parte 1Desenvolvimento de Apps e Games para Android - Parte 1
Desenvolvimento de Apps e Games para Android - Parte 1
 
História do Android
História do AndroidHistória do Android
História do Android
 
Google android pdf
Google android pdfGoogle android pdf
Google android pdf
 
Programação Android - Básico
Programação Android - BásicoProgramação Android - Básico
Programação Android - Básico
 
Curso de Android Aula 4
Curso de Android Aula 4Curso de Android Aula 4
Curso de Android Aula 4
 
Sistema Operacional Android
Sistema Operacional AndroidSistema Operacional Android
Sistema Operacional Android
 
Trabalho android
Trabalho androidTrabalho android
Trabalho android
 
Programando Android - Aula 1
Programando Android - Aula 1Programando Android - Aula 1
Programando Android - Aula 1
 
Introdução ao Android
Introdução ao AndroidIntrodução ao Android
Introdução ao Android
 
Android
AndroidAndroid
Android
 
Aula01 mobilidade android
Aula01 mobilidade androidAula01 mobilidade android
Aula01 mobilidade android
 
Entenda porque seu aplicativo de Android não deve ser igual ao de iPhone
Entenda porque seu aplicativo de Android não deve ser igual ao de iPhoneEntenda porque seu aplicativo de Android não deve ser igual ao de iPhone
Entenda porque seu aplicativo de Android não deve ser igual ao de iPhone
 
Introdução ao Android Studio
Introdução ao Android StudioIntrodução ao Android Studio
Introdução ao Android Studio
 

Similar to Android: Conheça o Futuro Inevitável

Desenvolvendo Soluções com Android
Desenvolvendo Soluções com AndroidDesenvolvendo Soluções com Android
Desenvolvendo Soluções com Androidjgbirk
 
Treinamento Android Nooclix
Treinamento Android NooclixTreinamento Android Nooclix
Treinamento Android NooclixIury Teixeira
 
Resumo Desenvolvimento Mobile
Resumo Desenvolvimento MobileResumo Desenvolvimento Mobile
Resumo Desenvolvimento MobileCícero Moura
 
la 02Aula02 introdução phone_gap
la 02Aula02 introdução phone_gapla 02Aula02 introdução phone_gap
la 02Aula02 introdução phone_gapRoberson Alves
 
Minicurso de Desenvolvimento Android - Iguatu - CE
Minicurso de Desenvolvimento Android - Iguatu - CEMinicurso de Desenvolvimento Android - Iguatu - CE
Minicurso de Desenvolvimento Android - Iguatu - CERonildo Oliveira
 
Desenvolvimento de Aplicativos para Android
Desenvolvimento de Aplicativos para AndroidDesenvolvimento de Aplicativos para Android
Desenvolvimento de Aplicativos para AndroidPaulo Henrique de Sousa
 
Hands-on Cordova / Phonegap - GDG JF
Hands-on Cordova / Phonegap - GDG JFHands-on Cordova / Phonegap - GDG JF
Hands-on Cordova / Phonegap - GDG JFGiordano Bruno Vieira
 
Introdução ao android - siecomp 2015.1
Introdução ao android - siecomp 2015.1Introdução ao android - siecomp 2015.1
Introdução ao android - siecomp 2015.1Afonso Machado
 
Mobile Linux com Google Android
Mobile Linux com Google AndroidMobile Linux com Google Android
Mobile Linux com Google Androidfelipebzr
 
Chega de lendas! JavaFX em Android
Chega de lendas! JavaFX em AndroidChega de lendas! JavaFX em Android
Chega de lendas! JavaFX em AndroidBruno Oliveira
 
Desenvolvendo para Android com PhoneGap
Desenvolvendo para Android com PhoneGapDesenvolvendo para Android com PhoneGap
Desenvolvendo para Android com PhoneGapMayron Cachina
 
E tertulia paol-rq
E tertulia paol-rqE tertulia paol-rq
E tertulia paol-rqKMILT
 

Similar to Android: Conheça o Futuro Inevitável (20)

Phonegap
PhonegapPhonegap
Phonegap
 
Desenvolvendo Soluções com Android
Desenvolvendo Soluções com AndroidDesenvolvendo Soluções com Android
Desenvolvendo Soluções com Android
 
Treinamento Android Nooclix
Treinamento Android NooclixTreinamento Android Nooclix
Treinamento Android Nooclix
 
Android
AndroidAndroid
Android
 
Resumo Desenvolvimento Mobile
Resumo Desenvolvimento MobileResumo Desenvolvimento Mobile
Resumo Desenvolvimento Mobile
 
la 02Aula02 introdução phone_gap
la 02Aula02 introdução phone_gapla 02Aula02 introdução phone_gap
la 02Aula02 introdução phone_gap
 
3
33
3
 
Minicurso de Desenvolvimento Android - Iguatu - CE
Minicurso de Desenvolvimento Android - Iguatu - CEMinicurso de Desenvolvimento Android - Iguatu - CE
Minicurso de Desenvolvimento Android - Iguatu - CE
 
Curso Básico Android - Aula 01
Curso Básico Android - Aula 01Curso Básico Android - Aula 01
Curso Básico Android - Aula 01
 
Desenvolvimento de Aplicativos para Android
Desenvolvimento de Aplicativos para AndroidDesenvolvimento de Aplicativos para Android
Desenvolvimento de Aplicativos para Android
 
Hands-on Cordova / Phonegap - GDG JF
Hands-on Cordova / Phonegap - GDG JFHands-on Cordova / Phonegap - GDG JF
Hands-on Cordova / Phonegap - GDG JF
 
Java
JavaJava
Java
 
Introdução ao android - siecomp 2015.1
Introdução ao android - siecomp 2015.1Introdução ao android - siecomp 2015.1
Introdução ao android - siecomp 2015.1
 
Empreendedori$mo com Android
Empreendedori$mo com AndroidEmpreendedori$mo com Android
Empreendedori$mo com Android
 
Mobile Linux com Google Android
Mobile Linux com Google AndroidMobile Linux com Google Android
Mobile Linux com Google Android
 
Android - Notas de aula
Android - Notas de aulaAndroid - Notas de aula
Android - Notas de aula
 
Chega de lendas! JavaFX em Android
Chega de lendas! JavaFX em AndroidChega de lendas! JavaFX em Android
Chega de lendas! JavaFX em Android
 
Desenvolvendo para Android com PhoneGap
Desenvolvendo para Android com PhoneGapDesenvolvendo para Android com PhoneGap
Desenvolvendo para Android com PhoneGap
 
Aptoide
AptoideAptoide
Aptoide
 
E tertulia paol-rq
E tertulia paol-rqE tertulia paol-rq
E tertulia paol-rq
 

More from Campus Party Brasil

Desenvolvimento de aplicações para o Google App Engine
Desenvolvimento de aplicações para o Google App EngineDesenvolvimento de aplicações para o Google App Engine
Desenvolvimento de aplicações para o Google App EngineCampus Party Brasil
 
Técnicas forenses para a recuperação de arquivos
Técnicas forenses para a recuperação de arquivosTécnicas forenses para a recuperação de arquivos
Técnicas forenses para a recuperação de arquivosCampus Party Brasil
 
Como ganhar dinheiro no mundo mobile?
Como ganhar dinheiro no mundo mobile?Como ganhar dinheiro no mundo mobile?
Como ganhar dinheiro no mundo mobile?Campus Party Brasil
 
Tempestades solares: mitos e verdades
Tempestades solares: mitos e verdadesTempestades solares: mitos e verdades
Tempestades solares: mitos e verdadesCampus Party Brasil
 
A busca por planetas além do sistema solar
A busca por planetas além do sistema solarA busca por planetas além do sistema solar
A busca por planetas além do sistema solarCampus Party Brasil
 
Construção de uma luneta a baixo custo
Construção de uma luneta a baixo custoConstrução de uma luneta a baixo custo
Construção de uma luneta a baixo custoCampus Party Brasil
 
Hardware livre Arduino: eletrônica e robótica com hardware e software livres
Hardware livre Arduino: eletrônica e robótica com hardware e software livresHardware livre Arduino: eletrônica e robótica com hardware e software livres
Hardware livre Arduino: eletrônica e robótica com hardware e software livresCampus Party Brasil
 
Robótica e educação inclusiva
Robótica e educação inclusivaRobótica e educação inclusiva
Robótica e educação inclusivaCampus Party Brasil
 
Fazendo do jeito certo: criando jogos sofisticados com DirectX
Fazendo do jeito certo: criando jogos sofisticados com DirectXFazendo do jeito certo: criando jogos sofisticados com DirectX
Fazendo do jeito certo: criando jogos sofisticados com DirectXCampus Party Brasil
 
Robótica e educação inclusiva
	Robótica e educação inclusiva	Robótica e educação inclusiva
Robótica e educação inclusivaCampus Party Brasil
 
Gestão e monitoramento de redes e dispositivos com Software Livre
Gestão e monitoramento de redes e dispositivos com Software LivreGestão e monitoramento de redes e dispositivos com Software Livre
Gestão e monitoramento de redes e dispositivos com Software LivreCampus Party Brasil
 
Confecção de Circuito Impresso
Confecção de Circuito ImpressoConfecção de Circuito Impresso
Confecção de Circuito ImpressoCampus Party Brasil
 
Virtualização, cloud computig e suas tendencias
Virtualização, cloud computig e suas tendenciasVirtualização, cloud computig e suas tendencias
Virtualização, cloud computig e suas tendenciasCampus Party Brasil
 

More from Campus Party Brasil (20)

Wordpress
WordpressWordpress
Wordpress
 
Buracos negros
Buracos negrosBuracos negros
Buracos negros
 
Programação para Atari 2600
Programação para Atari 2600Programação para Atari 2600
Programação para Atari 2600
 
Desenvolvimento de aplicações para o Google App Engine
Desenvolvimento de aplicações para o Google App EngineDesenvolvimento de aplicações para o Google App Engine
Desenvolvimento de aplicações para o Google App Engine
 
Técnicas forenses para a recuperação de arquivos
Técnicas forenses para a recuperação de arquivosTécnicas forenses para a recuperação de arquivos
Técnicas forenses para a recuperação de arquivos
 
Como ganhar dinheiro no mundo mobile?
Como ganhar dinheiro no mundo mobile?Como ganhar dinheiro no mundo mobile?
Como ganhar dinheiro no mundo mobile?
 
Tempestades solares: mitos e verdades
Tempestades solares: mitos e verdadesTempestades solares: mitos e verdades
Tempestades solares: mitos e verdades
 
A busca por planetas além do sistema solar
A busca por planetas além do sistema solarA busca por planetas além do sistema solar
A busca por planetas além do sistema solar
 
Passeio virtual pelo LHC
Passeio virtual pelo LHCPasseio virtual pelo LHC
Passeio virtual pelo LHC
 
Construção de uma luneta a baixo custo
Construção de uma luneta a baixo custoConstrução de uma luneta a baixo custo
Construção de uma luneta a baixo custo
 
Hardware livre Arduino: eletrônica e robótica com hardware e software livres
Hardware livre Arduino: eletrônica e robótica com hardware e software livresHardware livre Arduino: eletrônica e robótica com hardware e software livres
Hardware livre Arduino: eletrônica e robótica com hardware e software livres
 
Robótica e educação inclusiva
Robótica e educação inclusivaRobótica e educação inclusiva
Robótica e educação inclusiva
 
Fazendo do jeito certo: criando jogos sofisticados com DirectX
Fazendo do jeito certo: criando jogos sofisticados com DirectXFazendo do jeito certo: criando jogos sofisticados com DirectX
Fazendo do jeito certo: criando jogos sofisticados com DirectX
 
Blue Via
Blue ViaBlue Via
Blue Via
 
Linux para iniciantes
Linux para iniciantesLinux para iniciantes
Linux para iniciantes
 
Robótica e educação inclusiva
	Robótica e educação inclusiva	Robótica e educação inclusiva
Robótica e educação inclusiva
 
Gestão e monitoramento de redes e dispositivos com Software Livre
Gestão e monitoramento de redes e dispositivos com Software LivreGestão e monitoramento de redes e dispositivos com Software Livre
Gestão e monitoramento de redes e dispositivos com Software Livre
 
Confecção de Circuito Impresso
Confecção de Circuito ImpressoConfecção de Circuito Impresso
Confecção de Circuito Impresso
 
Vida de Programador
Vida de Programador Vida de Programador
Vida de Programador
 
Virtualização, cloud computig e suas tendencias
Virtualização, cloud computig e suas tendenciasVirtualização, cloud computig e suas tendencias
Virtualização, cloud computig e suas tendencias
 

Android: Conheça o Futuro Inevitável

  • 1. Android: conheça o futuro Inevitável! Alessandro de Oliveira Faria (A.K.A.CABELO) cabelo@opensuse.org
  • 2. Perfil Técnico: Alessandro de Oliveira Faria (A.K.A. CABELO) Diretor de pesquisas NETi TECNOLOGIA ●  Atuando no mercado de software desde 1986  ●  Embaixador e openSUSE Member;  ●  Membro da comunidade Viva O Linux;  ●  Conselheiro Administrativo Linux do projeto Tecnociência; ●  Projetista/mantenedor mais de 90 RPMs no openSUSE Build Service;  Mantenedor e Desenvolvedor ●  droidFrete: Cálculo de frete na plataforma Android. ●  droidRastreamento: Rastreabilidade de objeto postados. ●  stampDate: Serviço de menu KDE para estampar data em imagens. ●  libHAIRCAPTURE: Biblioteca de video captura em Linux. ●  IPCMSG: Biblioteca de comunicação inter­processos. ●  easyPCSC: Biblioteca para utilização de cartões smartcard ●  twitterME: Adicina usuários com QRCode. Publicações: ●  Linux Magazine 9 Artigos ●  Internet 100 artigos técnicos (VOL/Tecnociência/Linha de Código).
  • 3. Arquitetura O Dalvik é uma máquina virtual performática Em 2005 a google comprou a Android Inc (surgiu em 2003)., uma pequena empresa de desenvolvimento de sistemas embarcados. Atualmente com exceção da Apple, da Nokia e da Microsoft, praticamente todos os outros grandes fabricantes possuem projetos relacionados ao Android. O Android usa um gerenciamento de aplicativos nada convencional, pois os os aplicativos abertos continuam ativos ao finalizar e são fechados somente quando o sistema precisa de recursos. Na contrapartida, desenvolvedores nada caprichoso pode degradar o sistema.
  • 4. Notícias Algumas informações ●Esta plataforma aberta resultou em julho de 2011 no Android Market a marca de 500.000 aplicativos. Está disponível também o App Inventor, uma plataforma de desenvolvimento rápido, baseada na Open Blocks Java library. ● Lojas http://www.android.com/market, ● http://slideme.org ● LG ● http://andappstore.co ● http://shop4apps.motorola.com/
  • 5. Notícias Algumas informações Os aplicativos disponíveis vão desde aplicativos realmente inovadores e uteis, até mini-aplicativos especializados que se limitam a mostrar alguma informação específica, passando por todos os tipos de jogos e inutilidades, que se dividem entre aplicativos gratuitos e pagos. A a idéia de tornar todos os aplicativos compatíveis com todos os dispositivos baseados no Android, é uma ideia “QUASE” impossível de implementar na prática, pois cada aplicativo exige uma versão mínima do sistema para rodar, além também casos de aplicativos com requerimentos específicos (como para telas WXGA, que não rodam nos aparelhos com telas HVGA). Sendo assim leva-se em conta as propriedades do aparelho sobre o qual está rodando, exibindo apenas os aplicativos compatíveis com ele.
  • 6. Notícias Algumas informações Android torna-se IMORTAL ● Abertura do código-fonte 3.0 – 4.0 ● Kindle Fire, Baidu, Aliyun OS, Mozilla e Facebook. ● Barômetro, NFC, Reconhecimento Facial. ● Android em controle remotos – Motorola Covair. ● Aplicativos Android executados em plataformas BlackBerry.
  • 7. Notícias Invasão dos quad-core - HTC Edge/Supreme/Endeavor: O Edge promete Tegra 3 quad-core de 1,5GHz, 1GB de RAM, tela de 4,7 polegadas com resolução HD, câmera de 8 megapixels. - LG X3: Além do Tegra 3, tela HD de 4,7″ e câmera traseira de 8MP – e câmera frontal de 1,3MP – o LG X3 deve contar com bateria de 2.000mAh. Isso é menos que o Razr Maxx - Asus Padfone: Um dock que o torna um tablet! Dizem que rodará Tegra 3, em vez do processador Snapdragon presente no modelo atual. - Fujitsu Arrows:Tegra 3, 1GB de RAM, tela HD de 4,6″, uma câmera impressionante de 13,1 megapixels com ISO 25.600, além de ser à prova d’água e de poeira .
  • 8. Notícias Pantech Vega – Reconhecendo movimentos
  • 10. Notícias Algumas informações Android 2.2: está disponível inclusive o suporte a multitouch, com gestos para zoom; Deslizamento os dedos de uma tecla a outra, sem precisar tirá-los do teclado; A linguagem padrão Java, embora sacrifique parte do desempenho, (reduz a eficiência energética, resultando em um maior consumo de energia),na contrapartida obtemos ganhos de portabilidade. Compartilhamento da conexão através da interface Wi-Fi e também via Bluetooth. Acesso a root permite enxergar além do limite.
  • 14. Notícias Algumas informações Vale a pena mencionar sobre o uso do Android em x86, uma medida estratégica do Google para o caso de a Intel conseguir eventualmente conseguir embarcar com força no ramo de tablets e smartphones com as versões de baixo consumo do Atom http://www.android-x86.org/ Vale a pena mencionar sobre o produto ThinkPad X1 Hybrid terá Android e Windows 7.
  • 15. Processamento de imagem Onde utilizar o NDK?
  • 16. Processamento de imagem NDK é preciso?
  • 17. Instalação e configuração do SDK Download e descompactação do SDK Pagina principal: http://developer.android.com/sdk/index.html $ tar ­zxvf android­sdk_r04­linux_86.tgz  $ cd android­sdk­linux_86/tools $ ./android $ export PATH=${PATH}:<pasta de instalação do  android>/tools 
  • 18. Instalação e configuração do SDK Configuração da maquina virtual
  • 19. Instalação e configuração do SDK Instalação do eclipse
  • 20. Instalação e configuração do SDK Configuração do Eclipse
  • 21. Instalação e configuração do SDK Configuração do Eclipse
  • 22. Instalação e configuração do SDK Configuração do Eclipse
  • 23.
  • 24. Criando o primeiro Ola Mundo Imprimir ola mundo package com.android.hello; import android.app.Activity; import android.os.Bundle; import android.widget.TextView; public class HelloAndroid extends Activity {    /** Called when the activity is first created. */    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        TextView tv = new TextView(this);        tv.setText("Ola Mundo, Viva Pitágoras!");        setContentView(tv);    } } 
  • 25. Criando o primeiro Ola Mundo Executando o programa
  • 26. Instalação e configuração do NDK Download e descompactação do NDK Pagina principal: http://developer.android.com/sdk/ndk/index.html $ unzip android­ndk­r4b­linux­x86.zip Pronto o NDK esta instalado com sucesso!
  • 27. Criando o primeiro Ola Mundo com NDK Abrindo projeto
  • 28.
  • 29. Instalação e configuração do NDK Arquivo layout
  • 30. Instalação e configuração do NDK Criação protótipo da função nativa e makefile. $ cd ~/workspace/HelloNDK $ javah ­o  hellondk.h ­classpath bin com.cabelo.hellondk.HelloNDK $ mkdir jni $ cp hellondk.h  jni/ $ cd jni $ vi Android.mk LOCAL_PATH := $(call my­dir) include $(CLEAR_VARS) LOCAL_DEFAULT_CPP_EXTENSION := cpp LOCAL_MODULE    := hellondk LOCAL_SRC_FILES := hellondk.cpp include $(BUILD_SHARED_LIBRARY)
  • 31. Instalação e configuração do NDK Criação da função nativa $ vi hellondk.cpp #include <hellondk.h> JNIEXPORT jstring JNICALL  Java_net_bruary_hellondk_HelloNDK_sayHello(JNIEnv *env, jobject obj){      return env­>NewStringUTF("Hello, NDK!");  }
  • 32. Instalação e configuração do NDK Criação protótipo da função nativa e makefile. $ /usr/local/share/android­ndk­r4b/ndk­build   Compile++ thumb: hellondk <= ~/HelloNDK/jni/hellondk.cpp  SharedLibrary  : libhellondk.so  Install        : libhellondk.so => ~/HelloNDK/libs/armeabi $ vi Application.mk APP_ABI := armeabi armeabi­v7a  $ /usr/local/share/android­ndk­r4b/ndk­build     Compile++ thumb: hellondk <= ~/HelloNDK/jni/hellondk.cpp  SharedLibrary  : libhellondk.so  Install        : libhellondk.so => ~/HelloNDK/libs/armeabi  Compile++ thumb: hellondk <= ~/HelloNDK/jni/hellondk.cpp  SharedLibrary  : libhellondk.so  Install        : libhellondk.so => ~/HelloNDK/libs/armeabi­v7a
  • 33. Instalação e configuração do NDK Execução do programa
  • 34. Aplicações de video captura Permissão de uso da CAMERA.
  • 35. Aplicações de video captura Inicialização e propriedades.     <SurfaceView android:id="@+id/surface"         android:layout_width="fill_parent" android:layout_height="10dip"         android:layout_weight="1">     </SurfaceView> import android.hardware.Camera; Camera camera = Camera.open(); camera.release();         Camera.Parameters p = mCamera.getParameters();         p.setPictureFormat(PixelFormat.JPEG);          p.setPreviewSize(w, h);         mCamera.setParameters(p);
  • 36. Aplicações de video captura Preview e captura camera.startPreview(); [ … ] camera.stopPreview(); private void takePicture() { camera.takePicture(shutterCallback, rawCallback, jpegCallback); } ShutterCallback shutterCallback = new ShutterCallback() { public void onShutter() { [ … ] } }; PictureCallback rawCallback = new PictureCallback() { public void onPictureTaken(byte[] _data, Camera _camera) { [ … ] } };
  • 37. Aplicações de video captura Gravação em disco PictureCallback jpegCallback = new PictureCallback() { public void onPictureTaken(byte[] data, Camera camera) { FileOutputStream outStream = null; nomeImagem = String.format("/sdcard/DCIM/Camera/img­%d.jpg",  System.currentTimeMillis()); outStream = new FileOutputStream(nomeImagem); outStream.write(data); outStream.close(); } };
  • 39. Processamento em tempo real Preview e captura void Java_com_erdao_SnapFace_PreviewView_grayToRgb( JNIEnv*  env,                                       jobject  this,                                       jbyteArray src,                                       jintArray  dst ) { jboolean b; jint len; jbyte* srcPtr=(*env)­>GetByteArrayElements(env,src,&b); jint* dstPtr=(*env)­>GetIntArrayElements(env,dst,&b); len = (*env)­>GetArrayLength(env,src); gray8toRGB32(srcPtr, dstPtr, len); (*env)­>ReleaseByteArrayElements(env, src, srcPtr, 0); (*env)­>ReleaseIntArrayElements(env, dst, dstPtr, 0); } ;
  • 40. Processamento em tempo real OpenCV $ export ANDROID_NDK=/home/cabelo/android­ndk­r5c $ export ANDROID_NDK_TOOLCHAIN_ROOT=/home/cabelo/android­ndk­ r5c/toolchains $ cd ../android/ $ sh ./scripts/cmake_android_armeabi.sh ou cmake_android_neon.sh $ cd build_armeabi $ make  $ make install $ adb push HelloAndroid /data $ adb shell chmod 777 /data/HelloAndroid $ adb shell /data/HelloAndroid $ adb pull /mnt/sdcard/HelloAndroid.png $ xv HelloAndroid.png $ adb install tutorial­1­addopencv.apk
  • 41. Processamento em tempo real OpenCV
  • 42. Dicas Ice Cream Sandwich, acabou o botão Menu do Android http://android-developers.blogspot.com/2012/01/say-goodbye-to-menu-button.html
  • 43. Críticas e sugestões cabelo@opensuse.org Obrigado! “Colaborar atrai amigos,  competir atrai inimigos...” http://cabelovivaolinux.wordpress.com