alexandre.marcondes
821 views
23 slides
Nov 29, 2014
Slide 1 of 23
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
About This Presentation
O que do Android é realmente Open Source e o que não é
Size: 2.82 MB
Language: pt
Added: Nov 29, 2014
Slides: 23 pages
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
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