Android Open Source Project - AOSP

alexandre.marcondes 821 views 23 slides Nov 29, 2014
Slide 1
Slide 1 of 23
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23

About This Presentation

O que do Android é realmente Open Source e o que não é


Slide Content

ANDROID OPEN SOURCE
PROJECT – AOSP
O que realmente é Open Source e o que não é no Android

AOSP
Android Open Source Project

O QUE É O AOSP
•Uma iniciativa criada para
guiar o desenvolvimento da
plataforma Android!
•Consiste no Sistema
Operacional, midleware e
aplicativos!
•Mantido pelo Google!
•Regulado pelo Android
Compatibility Program (ACP)

Linhas de Código
Commits por Mês
•Desde 8 de Março de 2008!
•Aberto em 22 de Outubro de 2008!
•10.715.902 linhas de código!
•319.322 commits por 2.314 pessoas
1.6 Donut
2.0 Eclair
2.2 Froyo
2.3 Gingerbread
3.0 Honeycomb
4.0 Ice Cream Sandwich
4.1 Jelly Bean
4.4 KitKat
5.0 Lollipop

LICENÇAS
•Preferencialmente Apache Software License 2.0
(ASLv2) para o userspace!
•O Kernel usa GPLv2!
•Partes tem o código fechado com licenças
comerciais (ex.: Serviços do Google Play)

ANDROID COMPATIBILITY
PROGRAM (ACP)
•Ambiente consistente de hardware e aplicativos para
desenvolvedores!
•Experiência consistente para o usuário!
•Fabricantes se diferenciando, porém mantendo
compatibilidade!
•Minimizar custos e tempo associados com compatibilidade

CONSISTE EM
•Código fonte do Android!
•Documento de Definição
de Compatibilidade (CDD)!
•Conjunto de Testes de
Compatibilidade (CTS)

O QUE NÃO É ABERTO
•Aplicativos do Google!
•Google Play Services!
•Google Mobile Services
(GMS)!
•Experiência Google!
•Licença Comercial!
•“Tudo ou Nada"

GOOGLE MOBILE SERVICES
•Gmail!
•Chrome!
•Google+!
•Maps!
•YouTube!
•Google Drive!
•Google Translate!
•Google Now!
•Google Play

GOOGLE PLAY SERVICES
•Criado em 26 de Setembro de 2012 !
•Sicronismo de contas!
•Google+ (SSO, compartilhamento)!
•Google Maps!
•Location APIs!
•Google Play Games!
•Cloud Messaging (Push Notifications)!
•Android Device Manager

CUSTOM ROMS
•CyanogenMod!
•Paranoid Android!
•XobotOS (Xamarin + C#)!
•Android Open Kang Project
AOKP!
•Baidu Yi!
•Replicant

ANDROID FORKS
•Amazon Fire OS!
•Barnes & Noble Nook!
•Nokia X!
•Yandex.kit!
•PrivatOS

MÃOS À OBRAS
Baixe, compile e instale

O AMBIENTE DE
DESENVOLVIMENTO
•Pelo menos 30 GB de espaço live em disco!
•Idealmente 16 GB de RAM e processador de 8 cores!
•Python 2.6 ou 2.7 (python.org)!
•GNU Make 3.81 ou 3.82 (gnu.org)!
•JDK 7 (como instalar o JDK)!
•Git 1.7 ou superior (git-scm.org)

A FERRAMENTA REPO
1.Coloque uma pasta bin no seu home e deixe-o
acessível pelo PATH!
$"mkdir"~/bin"
$"PATH=~/bin:$PATH"
2.Baixe o repo e garanta que ele pode ser
executado!
$"curl"https://storage.googleapis.com/git>repo>downloads/repo">"~/bin/repo "
$"chmod"a+x"~/bin/repo

A FERRAMENTA REPO
3.Inicialize a sua pasta de trabalho!
$"mkdir"aosp"
$"cd"aosp"
4.Baixe o código do Android Open Source Project!
$"repo"init">u"https://android.googlesource.com/platform/manifest">b"
android>5.0.0_r6"
$"repo"sync

BAIXANDO OUTRAS ROMS
•Baixe o código do Android Open Kang Project!
$"repo"init">u"git://github.com/AOKP/platform_manifest.git">b"jb>mr2 "
$"repo"sync"
•Baixe o código do CyanogenMod!
$"repo"init">u"https://github.com/CyanogenMod/android.git">b"cm>11.0 "
$"repo"sync"
•Baixe o código do Paranoid Android!
$"repo"init">u"https://github.com/AOSPA/manifest">b"lollipop "
$"repo"sync

COMPILANDO O ANDROID
•Processo demorado!
•Mais de 2 h com 4-core
e 8 GB de RAM!
•15 min com 48-core e
128 GB de RAM!
•45 min com 16-core e
32 GB de RAM

COMPILANDO O ANDROID
1.Inicialize o ambiente de compilação!
$"."build/envsetup.sh"
ou!
$"source"build/envsetup.sh"
2.Escolha a plataforma a ser compilada!
$"lunch"aosp_hammerhead>userdebug"
ou veja as alternativas!
$"lunch

COMPILANDO O ANDROID
3.Compile a distribuição!
A opção -jN cria N threads de compilação, calcule este
valor da seguinte forma: N=cores do processador×1.5!
$"make">j24

OS BINÁRIOS DA
PLATAFORMA - NEXUS 5
•O Google não distribui os
arquivos de driver binários
das plataformas junto com
o AOSP!
•Alguns drivers nem mesmo
estão nos pacotes de
download

OS BINÁRIOS DA
PLATAFORMA - NEXUS 5
1.Baixe os binários que o Google publica aqui!
$"wget"https://dl.google.com/dl/android/aosp/broadcom>hammerhead>
lrx21o>01fad5db.tgz"
$"wget"https://dl.google.com/dl/android/aosp/lge>hammerhead>lrx21o>
c6cf4582.tgz"
$"wget"https://dl.google.com/dl/android/aosp/qcom>hammerhead>lrx21o>
e0cd4949.tgz"
2.Descompacte, execute os scripts no diretório de
trabalho do AOSP e aceite as licenças!
$"for"f"in"*.tgz;"do"tar"xzf"$f;"done"
$"for"extractor_script"in"*.sh;"do"bash"$extractor_script;"done

INSTALANDO A ROM
1.Crie o pacote!
$"make">j24"updatepackage"
2.Reinicie o aparelho!
$"adb"reboot"bootloader"
3.Destrave o aparelho!
$"fastboot"oem"unlock"
$"fastboot"format"cache"
$"fastboot"format"userdata"
4.Instale o pacote!
$"fastboot">w"update"nome%do%pacote.zip