Upload
denilson-mendonca-terra
View
212
Download
0
Embed Size (px)
Citation preview
Qualcomm• Qualcomm
– Fundada em 1985– San Diego, Califórnia USA– Localização por satélite – OmniTracs– CDMA: dispositivos e estações base– Eudora!
• Ano: 2000• Um olho na cadeia de valores do mercado...• Outro no potencial da tecnologia móvel...
Surgimento• Vasta experiência em desenvolvimento para celular• Líder em desenvolvimento de aplicações CDMA
Necessidade de uma plataforma uniforme de desenvolvimento
para celular
Binary Runtime Environment for Wireless
Necessidade de conexão entre os links na cadeia de valores do
mercado móvel
Jan 2001
End-to-end business and technology solution
O que é BREW?• Binary Runtime Enviroment for Wireless • Para o desenvolvedor
– Conjunto de APIs– Um meio de vender e distribuir aplicações para usuários finais
• Para o dispositivo– BREW é uma camada (150k) entre a aplicação e a ASIC
(Application Specific Integrated Circuit)
Cadeia de Negócios
Brew vs. J2ME
Application – Introduction
• Any class that implements the IApplet interface é uma “Aplicação”
• IApplet Methods– IAPPLET_AddRef()– IAPPLET_Release()– IAPPLET_HandleEvent()
• Applet_New() and HandleEvent() are key parts of na application code
How does brew recognize Apps?
• Each application must belong to a Module• Application information is stored in the
MIF– ClassID is the most important pieve of App
info stored in MIF,• On startup of device, BREW environment is
initialized. During this, the folowing steps are done:
Device/Simulator Start up• -Enumerates all the MIFsin the system• –Extracts information associated with all the
applications specified in the MIFs• –A single MIF can describe any number (0 or more) of
applications• –An in-memory (RAM) list of all the applications in the
system is created. This list contains all the pieces of application-info extracted from the MIF (ex: ClassID)
• –All operations related to applications (enumeration, start, stop, etc.) use this list as a starting point
Application – Key Concepts
• Top- Visible– Aplicação que tem acesso ao display e tem o foco do
teclado– Apenas uma aplicação Top-Visible em um dado
instante– Quando uma aplicação é iniciada ela se torna top-
visible. Toma controle sobre o display e recebe diretamente todos eventos de teclas
– ISHELL_StartApplet() e manipulação correta do EVT_APP_START é uma das formar de uma aplicativo se tornar top-visible
Application – Key Concepts• Suspeded
– Quando a aplicação top-visible muda, a aplicação top-visible anterior é Suspensa
– Aplicação suspensa não tem acesso a display ou teclado.
– Qualquer outra operação(não relacionada com display ou keyboard) pode ser realizada por uma aplicação suspensa
– Não é definido um limite de aplicações que estejam no estado suspenso
– EVT_APP_SUSPENDED é enviado para a aplicação, quando a aplicação deve ser suspensa.
Application – Key Concepts• Resume
– Quando a aplicação top-visible corrente deixar de ser top-visible, a aplicação suspensa mais recente é “ativada”
– Ativar uma aplicação é requisitar uma aplicação previamente suspensa para se tornar top-visible novamente.
– EVT_APP_RESUME é enviado para a aplicação, solicitando ativação do aplicativo
– Quando uma aplicação trata com sucesso ela se torna top-visible– Ao contrário de “Top Visible”, ou “Suspend”, Resume não é um
estado da aplicação. Resume é uma ação enviada a uma app. Ela imediatamente realiza a transição da app para o estado Top Visible
Application – Key concepts
• Application History (1 de 2)– Lista contendo a applicação top-visible e o conjundo de
aplições suspensas– Essa lista mantém a ordem(application stack) na qual
apps se tornaram top-visible e suspensas– Top-visible no topo da lista e a suspensa mais recente é
a mais proxima do topo– Essa lista sempre existiu em versões anteriores de brew
mas só no BREW 3.x é que existem APIs para acessar essa lista. IAppHistory
Application – Key concepts
• Application History (1 de 2)– Uma única aplicação pode ocupar multiplos lugares na
lista• –Application History allows an applet to load once
and maintain separate data for UI contexts• Example
•Email application module loaded once: History 1 maintains read state, History 2 maintains message composition state, etc.
Application – Key concepts
• Background apps não fazem parte do Histórico de aplicações
• Não tem acesso ao display e eventos de teclado• Não é definido um limite para a quantidade de
aplicações em backgroung• São usadas para realizar operações sem relação
com interface de usuário como: manipulador de mensagens, download de musicas, etc.
Como tornar uma background aplication?
• BREW 3.x:– ISHELL_StartBackgroundApplet()– On calling the above API, the event
EVT_APP_START_BACKGROUND event is sent to the background app by BREW. This event is sent instead of the normal start event EVT_APP_START
• –BREW 2.x:– Step 1: Call ISHELL_CloseApplet() on the app that
needs to be become backround– Step 2: On receiving EVT_APP_STOP, set
*(dwParam) to FALSE (*(boolean*)dwParam) = FALSE;
ISHELL_StartApplet() – Call Flow
• Utilizado para tornar a applicação top-visible• Método tem duas porções para sua execução – Porção
sincrona seguida pela porção Assincrona• O processo de iniciar um applet só está completo depois
que a parte assincrona é finalizada• Passos na porção Sincrona do ISHELL_StartApplet()
– Checa se o ClassID da aplicalção é válido e suportado– Valida a licença da app e garante que não está expirada– Checa o gerenciador de recursos para garantir que essa aplicação
pode ser iniciada– Se ok. Empilha a porção assincrona. – Retorna codigo de erro
ISHELL_StartApplet() – Call Flow
• Passos na porção assincrona do ISHELL_StartApplet()– Suspede a app top-visible corrente– Associa a history entry para essa app– Se não existir entrada para esse class id, uma
nova history entry é criada
Top-visible vs Rnunning App
Parts of a brew Application
The Resource Editor• Features
– Allows you to create external resources used in aplications– Dialogs, strings, images and binariies
• You can also create controls for application– Menus, lists, date selectores and timers
MIF Editor• Use MIF editor to specify
– Icons for your app used on the phone´s BREW menu– Copyright information– External extensions(libraries) that your application uses– Extensions(libraries) that your application exposes for others to use– Application´s unique ID (Class ID)
HelloWorld!
Qualcomm's BREW distribution system (BDS)
1. Developers submit application for testing.
2. The operator evaluates and accepts applications to offer to consumers after successful testing.
3. Consumers select those applications to purchase and download those applications to their BREW devices.
Brew Distribution Testing Process
• TRUE BREW ®• É pago!• Centros autorizados• Test Reports• Your application is now TRUE BREW
tested and is ready to be hosted on operators' download servers.
• Price Plan Operator evaluation
Brew Distribution Testing Process
– How the application interacts with core phone functionality.
– Core application stability over time.– Major application functionality.– A standard set of tests for each area of BREW
functionality used by the application.– Any operator or manufacturer-specific look and feel
requirements.– Compatibility with the target device(s). – Interaction with required accessories. – Interoperability with a small set of core applications
designated by QUALCOMM.
Brew Distribution Testing Process
• Passos para chegar a operadora:– Cria aplicação– Cria espeficicação– Testa– Prepara submição– Submete aplicação para um centro
autorizado
Brew Distribution Application Management
• flexibility in pricing of application usage to maximize consumer adoption and revenue opportunity.
• application-pricing options that range from per use charges to monthly subscriptions.
• All options may not be offered by every carrier.
Brew Distribution Usage and Billing Reports
Brew Distribution BGP
• Brew Global Program
Referências
• BREW Resource Center– http://www.palowireless.com/brew/
tutorials.asp