1Compreendendo o BlackBerry e a programação de dispositivos BlackBerry.....................................................................5
Princípios usados no projeto de dispositivos BlackBerry...........................................................................................................5
Ciclos de lançamento e versões....................................................................................................................................................6
BlackBerry Java Development Environment................................................................................................................................6
APIs Java MEe Java para BlackBerry.............................................................................................................................................7
Suporte a APIs Java padrão...................................................................................................................................................7
Suporte a extensões de API Java..........................................................................................................................................8
BlackBerry Internet Service...................................................................................................................................................9
2 Projeto do BlackBerry Java Application...................................................................................................................................11
Aplicativos com sincronização de desktop...................................................................................................................................11
Aplicativos com acesso à rede sem fio, sincronização sem fio ou recursos de alerta sem fio...............................................11
Controle de API e assinatura de código.......................................................................................................................................13
Modelagem de objeto.....................................................................................................................................................................13
Prática recomendada: Usando os objetos de forma criteriosa.........................................................................................19
Prática recomendada: Reduzindo o tamanho do código compilado................................................................................19
Suporte a vários idiomas................................................................................................................................................................21
Prática recomendada: Armazenando strings de texto em arquivos de recursos............................................................21
Suporte a multimídia......................................................................................................................................................................22
Suporte a áudio.......................................................................................................................................................................22
Suporte a imagens..................................................................................................................................................................22
Suporte a vídeo.......................................................................................................................................................................22
3 Projeto da interface do usuário e da navegação....................................................................................................................23
Navegação e ação do usuário do dispositivo BlackBerry...........................................................................................................23
Trackwheel e trackball...........................................................................................................................................................23
Criando uma interface de usuário que seja consistente com as interfaces padrão do BlackBerry.......................................24
4 Gerenciamento de memória......................................................................................................................................................25
Gerenciando a memória.................................................................................................................................................................25
Memória do dispositivo BlackBerry......................................................................................................................................25
Principais recursos a serem reservados...............................................................................................................................25
Prática recomendada: Minimizando o uso da memória....................................................................................................26
Gerenciando situações de pouca memória disponível...............................................................................................................26
Identificando situações de pouca memória disponível em um dispositivo BlackBerry..................................................26
Prática recomendada: Usando uma seleção de estrutura de dados eficiente................................................................26
Prática recomendada: Consolidando objetos em grupos de objetos...............................................................................27
Coleta de lixo em um dispositivo BlackBerry...............................................................................................................................28
Coleta de lixo de RAM em um dispositivo BlackBerry.......................................................................................................28
Coleta de lixo completa em um dispositivo BlackBerry.....................................................................................................28
Coleta de lixo em um dispositivo BlackBerry inativo..........................................................................................................28
5 Gerenciamento de dados...........................................................................................................................................................29
Suporte a APIS para armazenamento de dados em memória persistente...............................................................................29
APIs de armazenamento persistente...................................................................................................................................29
APIs do sistema de gerenciamento de registros do MIDP................................................................................................29
Armazenamento em mídia removível...........................................................................................................................................30
Acessando dados no cartão de memória microSD.............................................................................................................30
Fazendo backup e sincronizando dados.......................................................................................................................................30
6 Transporte sem fio de dados......................................................................................................................................................32
Gateways sem fio............................................................................................................................................................................32
Usando o BlackBerry Enterprise Server como um gateway de rede................................................................................32
Usando o gateway de Internet do provedor de serviços sem fio......................................................................................32
Opções alternativas de transporte de dados...............................................................................................................................33
Usando e-mail para transportar dados................................................................................................................................33
Usando SMS para transportar dados...................................................................................................................................33
Usando mensagens PIN para transportar dados...............................................................................................................33
7 Integração de aplicativos BlackBerry.......................................................................................................................................34
Adicionando itens de menu personalizados................................................................................................................................34
Integração com aplicativos do BlackBerry Device Software......................................................................................................34
Acessando e-mail e dados do organizador..................................................................................................................................34
Usando o BlackBerry Messenger com um BlackBerry Application...........................................................................................34
Usando ouvintes para responder a alterações de aplicativos...................................................................................................35
8 Considerações sobre segurança................................................................................................................................................36
Criptografia de dados e o BlackBerry Application......................................................................................................................36
Criptografia de dados em transporte...................................................................................................................................36
Criptografia de dados no dispositivo BlackBerry................................................................................................................36
Acesso à memória...........................................................................................................................................................................36
Autenticação do dispositivo BlackBerry e política de TI....................................................................................................37
Autenticação do aplicativo....................................................................................................................................................37
Autenticação no servidor.......................................................................................................................................................37
APIs controladas e assinatura de código.....................................................................................................................................37
APIs do BlackBerry com acesso controlado.................................................................................................................................38
Suporte a políticas de TI.................................................................................................................................................................39
Controle de aplicativos...................................................................................................................................................................39
Criptografia de arquivos em cartões microSD.............................................................................................................................39
Criptografia de dados em um cartão de memória microSD..............................................................................................39
Usando o cartão de memória microSD com mais de um dispositivo BlackBerry...........................................................40
Políticas de TI e o cartão de memória microSD..................................................................................................................40
9 Testar um BlackBerry Java Application....................................................................................................................................41
Ofuscação de um BlackBerry Java Application...........................................................................................................................41
Pré-verificação de um BlackBerry Java Application...................................................................................................................41
Testando aplicativos em um BlackBerry Smartphone Simulator..............................................................................................41
Testando aplicativos em um dispositivo BlackBerry...................................................................................................................42
Simuladores do BlackBerry............................................................................................................................................................42
10 Disponibilizando os aplicativos.................................................................................................................................................44
Distribuição de aplicativos por meio de uma conexão de computador....................................................................................44
Distribuir um aplicativo a partir de um computador..........................................................................................................44
Distribuir um aplicativo a partir de uma página da Web...................................................................................................44
Distribuir um aplicativo para testes.....................................................................................................................................44
Distribuição de aplicativos pela rede sem fio..............................................................................................................................44
Recebimento sem fio (iniciado pelo usuário)......................................................................................................................45
Envio sem fio (iniciado pelo servidor)..................................................................................................................................45
Compreendendo o BlackBerry e a programação de dispositivos BlackBerry
Compreendendo o BlackBerry e a programação de
1
dispositivos BlackBerry
Os dispositivos BlackBerry® fornecem um ambiente sem fio Java® ME compatível com aplicativos cliente/servidor. Os
desenvolvedores de aplicativo podem criar um BlackBerry® Java Application que tenha interfaces de usuário sofisticadas para
entrada de dados e pesquisa e que ofereça suporte a multithreading, internacionalização, comunicação em rede e armazenamento
de dados local. Os aplicativos podem se comunicar com as redes usando conexões TCP e HTTP padrão, independentemente da
rede sem fio subjacente.
Os desenvolvedores de aplicativos também podem criar um BlackBerry Java Application que seja estreitamente integrado aos
aplicativos de dispositivos BlackBerry principais, como lista de mensagens, aplicativos organizadores, telefone e navegador, para
proporcionarem aos usuários uma capacidade de operação simples.
Princípios usados no projeto de dispositivos BlackBerry
Os aplicativos projetados para os dispositivos BlackBerry® devem oferecer um equilíbrio entre a melhor experiência possível para
o usuário e uma vida útil longa da bateria. Ao projetar seu aplicativo para o dispositivo BlackBerry, leve em consideração as
diferenças entre os dispositivos móveis e os computadores. Dispositivos móveis
•têm um tamanho de tela menor que pode exibir um número limitado de caracteres
•têm velocidades mais lentas de processador
•usam redes sem fio que têm um período de latência mais longo do que as LANs padrão
•têm menos memória disponível
•têm vida útil mais curta da bateria
•exibem uma tela de cada vez
Nos dispositivos móveis, os usuários utilizam os aplicativos de forma diferente que usariam em um computador. Nos dispositivos
móveis, os usuários esperam encontrar as informações rapidamente. Por exemplo, um sistema de CRM pode oferecer uma enorme
quantidade de informações, mas os usuários precisam apenas de uma pequena quantidade dessas informações de cada vez. A
interface do usuário do dispositivo BlackBerry foi projetada para que os usuários possam realizar as tarefas com facilidade e
acessar as informações rapidamente.
Ao projetar aplicativos para dispositivos BlackBerry, tente manter a maior compatibilidade possível com os
outrosBlackBerryaplicativos do dispositivo. Considere as seguintes diretrizes:
•Use ou estenda os componentes existentes da interface do usuário onde possível para que o seu aplicativo possa herdar o
comportamento padrão do componente.
•Siga o máximo possível o modelo de navegação padrão para que os usuários possam fazer pleno uso do teclado e do trackball.
•Disponibilize todas as ações pelo menu. Verifique se as ações disponíveis no menu são relevantes para o contexto atual dos
usuários.
5
Guia de fundamentos
Ao projetar seu aplicativo, também leve em consideração as seguintes diretrizes:
•Concentre-se na tarefa imediata dos usuários. Simplifique a seleção e a apresentação dos dados para que sejam exibidas
apenas as informações que os usuários precisam em um determinado momento.
•Exiba as informações usando de forma eficiente a tela pequena.
Antes de projetar o aplicativo, considere o uso dos principais aplicativos no dispositivo BlackBerry ou do BlackBerry Smartphone
Simulator para obter mais informações sobre o modelo de navegação e as práticas recomendadas para o projeto da interface do
usuário.
Ciclos de lançamento e versões
Ciclos de lançamento e versões
Todos os dispositivos BlackBerry® incluem uma versão específica do BlackBerry® Device Software e da BlackBerry® Java® Virtual
Machine. Para determinar a versão do BlackBerry Device Software para um dispositivo BlackBerry, em Options (Opções), clique
em About (Sobre). Você pode atualizar o BlackBerry Device Software. Por exemplo, você pode atualizar um dispositivo BlackBerry
com o BlackBerry Device Software 4.0 para o BlackBerry Device Software 4.1.
Em cada versão principal do BlackBerry Device Software e do BlackBerry JVM, a Research In Motion inclui as APIs Java
correspondentes e a versão do BlackBerry® Java® Development Environment. A versão do BlackBerry Device Software determina
a versão do BlackBerry® Integrated Development Environment que você pode usar para desenvolver aplicativos. Por exemplo, a
RIM lançou o BlackBerry Device Software 4.0 e o BlackBerry JDE 4.0 ao mesmo tempo. O BlackBerry JDE 4.0 inclui suporte às
APIs que foram apresentadas no BlackBerry Device Software 4.0 e no BlackBerry JVM 4.0. Os aplicativos criados usando o
BlackBerry JDE 4.0 funcionam apenas nos dispositivos BlackBerry com o BlackBerry Device Software 4.0 ou posterior.
Você pode usar os seguintes critérios para decidir qual versão do BlackBerry JDE deve ser usada no desenvolvimento de um
aplicativo:
•Se o aplicativo não precisar usar recursos de hardware específicos do dispositivo BlackBerry ou extensões de API lançadas
recentemente, use o BlackBerry JDE 4.0 para desenvolvê-lo.
•Se o aplicativo for projetado para ser executado apenas no smartphone BlackBerry® Pearl™ 8100, use o BlackBerry JDE 4.2
ou posterior.
BlackBerry Java Development Environment
O BlackBerry® Java® Development Environment é um ambiente de desenvolvimento e simulação totalmente integrado para a
criação de um BlackBerry® Java Application para dispositivos BlackBerry. Com o BlackBerry JDE, os desenvolvedores podem criar
aplicativos usando a linguagem de programação Java® ME e as APIs Java estendidas para BlackBerry.
O BlackBerry Java Development Environment inclui as seguintes ferramentas de desenvolvimento:
•BlackBerry® Integrated Development Environment
•BlackBerry Smartphone Simulator
•APIs Java ME e APIs do BlackBerry
6
Guia de fundamentos
•os mesmos aplicativos
O BlackBerry IDE inclui um conjunto completo de ferramentas de edição e depuração que são otimizadas para o desenvolvimento
de um BlackBerry Java Application. O BlackBerry Smartphone Simulator oferece um ambiente tipo Windows® completo e foi
projetado para simular interfaces de usuário e interação do usuário, conexões de rede, serviços de e-mail e sincronização sem
fio de dados.
O pacote de componentes BlackBerry Java Development Environment inclui as seguintes ferramentas para desenvolvimento em
IDEs de terceiros como NetBeans™ ou Eclipse™:
•RAPC: use este compilador de prompt de comando para compilar arquivos .java e .jar em arquivos .cod que podem ser
executados no BlackBerry Smartphone Simulator ou em um dispositivo BlackBerry.
•JavaLoader: use esta ferramenta para adicionar ou atualizar um aplicativo em um dispositivo BlackBerry para teste e para
exibir informações sobre os arquivos .cod do aplicativo.
•BlackBerry® Signature Tool: use esta ferramenta para enviar solicitações de assinatura de código para a BlackBerry® Signing
Authority Tool.
•Preverify Tool: use esta ferramenta para verificar parcialmente as classes antes de carregar o aplicativo em um dispositivo
BlackBerry.
•JDWP: use esta ferramenta para depurar os aplicativos usando ambientes de desenvolvimento integrados de terceiros.
APIs Java MEe Java para BlackBerry
APIs Java MEe Java para BlackBerry
Java® ME é uma plataforma de padrão industrial que define conjuntos comuns de APIs Java para diferentes tipos de dispositivos
sem fio e incorporados. O aplicativo Java ME no dispositivo BlackBerry® é executado na BlackBerry® Java® Virtual Machine, que
fornece todos os serviços de tempo de execução aos aplicativos e realiza funções como alocação de memória típica, verificações
de segurança e coleta de lixo.
O padrão Java ME MIDP gerencia as necessidades da API e da BlackBerry JVM de um dispositivo sem fio restrito com uma
interface de usuário. O dispositivo BlackBerry oferece suporte ao padrão Java ME MIDP conforme definido no JSR 118. O padrão
Java ME MIDP fornece um conjunto principal de APIs Java que podem ser suportadas por qualquer dispositivo BlackBerry,
independentemente do sistema operacional subjacente. Em geral, os desenvolvedores podem criar um aplicativo Javausando
APIs MIDP padrão e executar esse aplicativo em diferentes tipos de dispositivo.
Suporte a APIs Java padrão
O dispositivo BlackBerry® e o BlackBerry® Java® Development Environment oferecem suporte ao padrão MIDP Java® ME, que
oferece um conjunto principal de APIs Java que você pode usar para desenvolver aplicativos para dispositivo sem fio. O dispositivo
BlackBerry e o BlackBerry® Java® Development Environment também oferecem suporte aos seguintes JSRs:
•JSR 30: Connected Limited Device Configuration versão 1.0
(suportado nos dispositivos com BlackBerry® Device Software 4.0 ou anterior)
7
Guia de fundamentos
APIs Java MEe Java para BlackBerry
•JSR 37: Mobile Information Device Profile versão 1.0
(suportado nos dispositivos com BlackBerry Device Software 4.0 ou anterior)
•JSR 75: Portable Optional Packages para suporte à plataforma J2ME (PDAP) apenas para APIs de PIM e API File Connection
para Java ME (suportado apenas nos dispositivos com BlackBerry Device Software 4.2 ou posterior)
•JSR 82: Java APIs para Bluetooth®
•JSR 118: Mobile Information Device Profile versão 2.0
•JSR 120: Wireless Messaging API (WMA) versão 1.1
•JSR 135: Mobile Media APIs (MM API) versão 1.1
•JSR 139: Connected Limited Device Configuration versão 1.1
•JSR 172: J2ME Web Services
•JSR 177: Security and Trust Services API para J2ME (SATSA)
•JSR 179: Location API para Java ME
•JSR 185: Java Technology for the Wireless Industry (JTWI)
•JSR 205: Wireless Messaging API 2.0
•JSR 211: Content Handler API
•JSR 226: Scalable 2D Vector Graphics API para Java ME
•JSR 238: Mobile Internationalization API
Suporte a extensões de API Java
Os dispositivos BlackBerry® oferecem suporte às seguintes APIs Java® que não fazem parte das definições de JSR padrão e que
podem oferecer mais recursos e maior funcionalidade em relação ao que é disponibilizado na bibliotecas de API MIDP padrão.
APIDescrição
APIs de interface do usuárioUse estas APIS para criar telas, itens de menu e todos os componentes da interface
do usuário.
APIs de armazenamento de dados
persistentes
APIs de rede e E/SUse estas APIS para estabelecer conexões de rede e ler ou gravar dados em um
Ouvintes de eventosUse os Ouvintes de eventos para responder a eventos iniciados pelo sistema ou
APIs de integração de aplicativosUse estas APIS para fazer a integração de aplicativos BlackBerry existentes de e-
8
Use estas APIS para armazenar dados personalizados localmente no seu aplicativo.
aplicativo no servidor.
pelo usuário em um dispositivoBlackBerry BlackBerry.
mail, telefone, calendário, contatos, navegador, câmera, media player e lista de
tarefas.
Guia de fundamentos
APIDescrição
Utilitários adicionaisUse estas APIS adicionais para criptografia e compactação de dados, análise de
XML, conectividade Bluetooth®, serviços baseados em localização etc.
Soluções BlackBerry
Soluções BlackBerry
Os usuários de dispositivos BlackBerry® podem usar o BlackBerry® Enterprise Server ou o BlackBerry® Internet Service, ou os
dois no mesmo dispositivo. É importante saber as diferenças entre o BlackBerry Enterprise Server e o BlackBerry Internet Service,
e a quais tipos de usuário será oferecido suporte, visto que isso pode afetar os modos de transporte usados e o modo como você
gerencia a sincronização de dados.
BlackBerry Enterprise Solution
O BlackBerry® Enterprise Server faz parte da BlackBerry® Enterprise Solution. Sob a proteção do firewall corporativo, o BlackBerry
Enterprise Server fornece um gateway sem fio para que os usuários de dispositivos BlackBerry de uma organização acessem email corporativo e dados do organizador. EleBlackBerry Enterprise Servertambém oferece os seguintes recursos principais:
•criptografia e compactação de dados
•gerenciamento de dispositivos BlackBerry e utilitários de monitoramento
•aprovisionamento simplificado de aplicativos
•gateway autenticado para acesso à intranet em um BlackBerry® Java Application
BlackBerry Internet Service
Os usuários de dispositivos BlackBerry® que não estiverem associados a um BlackBerry® Enterprise Server poderão usar o
BlackBerry® Internet Service. O BlackBerry Internet Service é um serviço de e-mail e Internet para dispositivos BlackBerry,
projetado para fornecer aos usuários entrega automática de mensagens de e-mail, acesso sem fio a anexos de e-mail e acesso
ao conteúdo da Internet.
O BlackBerry Internet Service inclui suporte a conectividade HTTP direta e TCP/IP à Internet a partir de um BlackBerry® Java
Application de terceiros.
BlackBerry MDS
Para permitir que um BlackBerry® Java Application acesse os recursos sob a proteção do firewall corporativo, o BlackBerry®
Enterprise Server inclui o BlackBerry® Mobile Data System. O BlackBerry MDS fornece proxies HTTP e TCP/IP para um BlackBerry
Java Application, que permite que o dispositivo BlackBerry se comunique com os servidores de aplicativos e da Web sob a proteção
do firewall corporativo sem software VPN adicional. Os aplicativos que enviam dados usando o BlackBerry Enterprise Server
como gateway aproveitam a conectividade corporativa simplificada, a criptografia e compactação de dados e a independência
9
Guia de fundamentos
Soluções BlackBerry
da rede sem fio oferecidas pela BlackBerry® Enterprise Solution. O BlackBerry MDS também fornece uma interface aberta,
permitindo que os aplicativos do servidor sob a proteção do firewall corporativo enviem conteúdo aos aplicativos nos dispositivos
BlackBerry.
10
Guia de fundamentos
Projeto do BlackBerry Java Application
Projeto do BlackBerry Java Application
2
Aplicativos independentes
Você pode usar as APIs do BlackBerry® para criar aplicativos independentes, como jogos e guias de referência estáticos que
podem ser executados como aplicativos off-line. Você também pode adicionar os dados de recursos necessários a um aplicativo
antes de compilá-lo. Os usuários de dispositivos BlackBerry podem instalar o aplicativo pela rede sem fio ou com o BlackBerry®
Desktop Software. Depois que um aplicativo é instalado no dispositivo BlackBerry, ele não precisa se conectar à rede sem fio
nem ao computador.
Aplicativos com sincronização de desktop
Você pode usar as APIs do BlackBerry® para criar aplicativos com recursos de sincronização de desktop, como guias de referência
e aplicativos organizadores. O usuário conecta o dispositivo BlackBerry a um computador para gerenciar e sincronizar os dados
que estão localizados no computador.
A Research In Motion® não fornece canais HotSync® ou qualquer outro módulo de sincronização direta de banco de dados. Você
deve criar o código de sincronização e o usuário do dispositivo BlackBerry deve iniciar o processo de sincronização de dados
manualmente. Após o aplicativo ser instalado no dispositivo BlackBerry, oBlackBerryusuário deve sincronizar as informações
manualmente conectando oBlackBerrydispositivo ao computador por meio de uma conexão serial, USB ou Bluetooth®.
Aplicativos com acesso à rede sem fio, sincronização sem fio ou recursos de
alerta sem fio
Use as APIs do BlackBerry® para criar aplicativos que enviem o conteúdo de forma proativa pela rede sem fio para os dispositivos
BlackBerry em ambientes que usam o BlackBerry® Enterprise Server. O BlackBerry® Java Application para dispositivos BlackBerry
usa uma conexão sem fio com a Internet ou com a intranet corporativa para fornecer aos usuários de dispositivos BlackBerry
acesso a dados e aplicativos remotos. O BlackBerry® Java® Development Environment fornece APIs que você pode usar nos
aplicativos para estabelecer conexões de rede com os servidores na Internet ou intranet corporativa.
Aplicativos MIDlet
O modelo de aplicativo Midlet faz parte da especificação MIDP. A classe principal de um MIDlet sempre estende a classe MIDlet
e deve usar métodos para startApp(), pauseApp()e destroyApp().
11
Guia de fundamentos
VantagensDesvantagens
Aplicativos CLDC
•Os aplicativos são compatíveis
com outros dispositivos que
também oferecem suporte à
especificação MIDP.
•Os aplicativos podem usar apenas as APIs de interface de usuário existentes
na biblioteca javax.microedition.lcdui .
•O modelo pressupõe que todos os processos do aplicativo terminam quando
o aplicativo é fechado.
•Os aplicativos não podem ser automaticamente iniciados em segundo plano
quando o dispositivo é ativado.
Aplicativos CLDC
O modelo de aplicativo CLDC é uma especificação de um framework para Java® ME. Um aplicativo CLDC estende a classe
UiApplication e começa com um método main() padrão.
A maioria dos exemplos de aplicativos que o BlackBerry® Java® Development Environmentinclui usam o modelo de aplicativo
CLDC. Todos os aplicativos BlackBerry principais (incluindo lista de mensagens, lista de contatos, calendário e navegador) são
criados como aplicativos CLDC.
VantagensDesvantagens
•As APIs da interface do usuário do
BlackBerry oferecem mais
funcionalidade e flexibilidade do
que a biblioteca
javax.microedition.lcdui
padrão.
•Os aplicativos poderão executar
threads ativos em segundo plano
após serem fechados.
•Os aplicativos poderão ser
iniciados automaticamente em
segundo plano quando o
dispositivo for ligado.
•Os aplicativos não são compatíveis com outros dispositivos.
12
Guia de fundamentos
VantagensDesvantagens
•Os aplicativos podem aproveitar as
APIs de comunicação entre
processos (IPC) para trocar
informações com outros
aplicativos.
•Os desenvolvedores podem criar
módulos de biblioteca reutilizáveis
que podem ser importados pelos
aplicativos CLDC.
Controle de API e assinatura de código
Controle de API e assinatura de código
Ao desenvolver um BlackBerry® Java Application para dispositivos BlackBerry, você pode usar apenas as APIs Java públicas
publicadas em documentos Javadoc™ no BlackBerry® Java® Development Environment. A BlackBerry® Java® Virtual Machine
no dispositivo BlackBerry foi projetada para proteger o sistema operacional e os dados subjacentes, para que os aplicativos não
possam usar APIs não documentadas ou não suportadas nem acessar dados que não sejam explicitamente expostos pelas APIs.
Se você tentar usar APIs Java que não tenham sido expostas publicamente, o aplicativo receberá uma mensagem de erro ao ser
executado.
As APIs públicas são abertas ou assinadas. As APIs assinadas expõem os métodos de acesso a dados do usuário ou outras
informações noBlackBerrydispositivo BlackBerry que são considerados confidenciais. Você pode usar APIs assinadas, mas antes
deve solicitar e receber um conjunto de chaves de assinatura de código da Research In Motion. Depois, você precisa assinar
digitalmente seu aplicativo para poder instalá-lo em um dispositivo BlackBerry. A assinatura de código não certifica ou aprova
um aplicativo; apenas permite que a RIM identifique o autor de um aplicativo que usa APIs confidenciais, caso seja um aplicativo
mal-intencionado.
Para solicitar um conjunto de chaves de assinatura de código, visite www.blackberry.com/developers/downloads/jde/
api.shtml. Você receberá seu conjunto de chaves de assinatura de código em aproximadamente 10 dias.
Modelagem de objeto
Independentemente de usar o modelo de aplicativo MIDlet ou CLDC, você deve usar uma abordagem orientada a objeto ao
projetar o aplicativo para o dispositivo BlackBerry®. Em uma abordagem orientada a objeto, os desenvolvedores usam objetos
para conter os códigos comuns a um processo ou a uma função específica. Por exemplo, o desenvolvedor pode usar objetos
diferentes para controlar atividade de rede, armazenamento de dados, processamento e manipulação de dados, e interação de
interface de usuário. Ao desenvolver o aplicativo, é importante ter um bom modelo de objeto como base.
13
Guia de fundamentos
Multithreading
Multithreading
O sistema operacional do BlackBerry® é um sistema operacional multithreaded, o que significa que vários aplicativos e processos
podem ser rapidamente executados ao mesmo tempo no dispositivo BlackBerry. Por exemplo, os aplicativos podem usar threads
em segundo plano para gerenciar tarefas de processamento intenso ou comunicações de rede de modo a não afetarem o thread
principal. Se um aplicativo criar threads em segundo plano e o usuário do dispositivo BlackBerry fechar o aplicativo, esses threads
poderão permanecer ativos.
Prática recomendada: Usando multithreading
Faça uso eficiente dos recursos de multithreading do sistema operacional BlackBerry®. Especificamente, sempre crie um novo
thread para conexões de rede ou outras operações longas (com mais de um décimo de segundo). Use threads em segundo plano
para ouvintes ou outros processos que sejam executados em segundo plano durante a inicialização do aplicativo.
Práticas recomendadas para escrever de forma eficiente um BlackBerry Java
Application
Para possibilitar que um BlackBerry® Java® Application use os recursos de forma eficiente, considere as seguintes diretrizes:
•Use variáveis locais.
•Use shorthand para avaliar as condições Booleanas.
•Torne as classes finais.
•Use int em vez de long.
•Evite a coleta de lixo.
•Use variáveis estáticas para Strings.
•Evite o construtor String(String).
•Escreva loops eficientes.
•Otimize as subexpressões.
•Otimize as operações de divisão.
•Evite java.util.Enumeration.
•Execute conversões usando instanceof.
•Avalie as condições usando instanceof.
•Evite usar StringBuffer.append (StringBuffer).
•Evite retornar null.
14
Guia de fundamentos
•Evite passar null para os métodos.
•Tenha cuidado ao passar null para um construtor.
•Use longpara identificadores exclusivos.
•Saia dos aplicativos corretamente.
•Imprima o rastreamento de pilha.
Práticas recomendadas para escrever de forma eficiente um BlackBerry Java Application
Usando variáveis locais
Use variáveis locais sempre que possível. O acesso a variáveis locais é mais eficiente do que o acesso a membros de classe.
Usando shorthand para avaliar as condições Booleanas
Para avaliar uma condição Booleana , use shorthand. O código compilado resultante é menor.
Exemplo de código
return( boolean_expression );
Tornando as classes finais
Ao criar bibliotecas de código, marque as classes como finais se souber que os desenvolvedores nunca irão ampliá-las. A
presença da palavra-chave final permite que o compilador gere um código mais eficiente.
Por padrão, o compilador do BlackBerry® Java® Development Environment marca todas as classes que você não estende no
arquivo .cod de um aplicativo como finais.
Usando int em vez de long
No Java®, um long é um número inteiro de 64 bits. Como os dispositivos BlackBerry® usam um processador de 32 bits, as
operações podem ser executadas duas a quatro vezes mais rápido se você usar um int em vez de um long.
Evitando a coleta de lixo
Evite chamar System.gc() para executar uma operação de coleta de lixo pois esse procedimento pode ser muito demorado
nos dispositivos BlackBerry® com memória disponível limitada. Deixe que a BlackBerry® Java® Virtual Machine colete o lixo.
Usando variáveis estáticas para Strings
Ao definir campos estáticos (também denominados campos de classe) do tipo String, você pode aumentar a velocidade do
aplicativo usando variáveis estáticas (sem a palavra-chave final) em vez de constantes (final). O contrário é verdadeiro
para tipos de dados primitivos, como int.
15
Guia de fundamentos
Por exemplo, você pode criar um objeto String como a seguir:
private static final String x ="example";
Para essa constante estática (indicada pela palavra-chave final ), cada vez que você usa a constante, é criada uma instância
de String temporária. O compilador elimina o "x" e o substitui pela string "example" no código de bytes, para
que a BlackBerry® Java® Virtual Machine realize uma busca de tabela de hash cada vez que você fizer referência ao "x" .
Por outro lado, para uma variável estática (sem a palavra-chave final ), a String é criada apenas uma vez. O BlackBerry
JVM realiza a busca de tabela de hash apenas quando inicia o "x" , portanto o acesso é mais rápido.
private static String x = "example";
Você pode usar constantes públicas (ou seja, campos final ), mas você deve marcas as variáveis como privadas.
Práticas recomendadas para escrever de forma eficiente um BlackBerry Java Application
Evitando o construtor String(String)
No BlackBerry® Java Application, cada string citada é uma instância da classe java.lang.String . Crie uma String
sem usar o construtor java.lang.String(String) .
Se houver a possibilidade de que o seu contêiner possua mais de um elemento, atribua o tamanho a uma variável local.
Se a ordem de iteração entre os itens não for importante, você poderá fazer a iteração em ordem inversa para evitar a variável
extra local na pilha e fazer a comparação de forma mais rápida.
Exemplo de código
int size = vector.size(); for( int i = 0; i < size; ++i ) { ... } for( int
i = vector.size() - 1; i >= 0; --i ) { ... }
Otimizando subexpressões
Se você usar a mesma expressão duas vezes, use uma variável local.
Exemplo de código
int tmp = i+1; one( tmp ); two( tmp );
16
Guia de fundamentos
Práticas recomendadas para escrever de forma eficiente um BlackBerry Java Application
Otimizando as operações de divisão
As operações de divisão podem ser lentas nos dispositivos BlackBerry® porque o processador não tem uma instrução de divisão
de hardware.
Quando o código dividir um número positivo por dois, use shift right por um (>> 1). Use o shift right (>>) apenas quando você
souber que está trabalhando com um valor positivo.
Exemplo de código
int = width >> 1;
Evitando java.util.Enumeration
Evite usar objetos java.util.Enumeration a não ser que você queira ocultar dados (em outras palavras, para retornar
uma enumeração dos dados em vez dos dados em si). Pedir um vetor ou tabela de hash para um objeto Enumeration é um
processo lento e cria lixo desnecessário. Se outro thread puder modificar o vetor, sincronize a iteração. O Java® SE usa um objeto
Iterator para operações semelhantes, mas os objetos Iterator não estão disponíveis no Java® ME.
Exemplo de código
for( int i = v.size() - 1; i >=0; --i ) { o = v.elementAt( i ); ... }
synchronized( v ) { for( int i = v.size() - 1; i >=0; --i ) { o = v.elementAt
( i ); ... } }
Executando conversões com instanceof
Use instanceof para avaliar se uma conversão foi bem-sucedida.
Exemplo de código
if( x instanceof String ) { (String)x.whatever(); } else { ... } x
Avaliando condições com instanceof
Para gerar um código menor e mais rápido, ao avaliar uma condição usando instanceof, não faça uma avaliação explícita
se as variáveis forem nulas.
Exemplo de código
if( e instanceof ExampleClass ) { ... } if( ! ( e instanceof ExampleClass ) )
{ ... }
17
Guia de fundamentos
Práticas recomendadas para escrever de forma eficiente um BlackBerry Java Application
Evitando StringBuffer.append (StringBuffer)
Para anexar um buffer de String a outro, o BlackBerry® Java Application deve usar
net.rim.device.api.util.StringUtilities.append
( StringBuffer dst, StringBuffer src[, int offset, int length ] ).
Se você escrever um método público que retorne um objeto, o método deverá retornar null apenas mediante as seguintes
condições:
•O aplicativo espera que ocorra um valor null durante a operação normal do aplicativo.
•O parâmetro do Javadoc™ @return para o método especifica que null é um valor de retorno possível.
Se o seu aplicativo não esperar um valor de retorno null, o método deverá acionar uma exceção apropriada, que force o chamador
do método a lidar explicitamente com o problema. Talvez o chamador do método não precise verificar se há um valor de retorno
null a não ser que ele acione uma exceção null.
Evitando passar valores nulos para os métodos
Não passe parâmetros nulos para um método de API a menos que a referência da API declare explicitamente que o método
oferece suporte a eles.
Cuidado ao passar null para um construtor
Para evitar ambigüidade ao passar null para um construtor, converta null no valor apropriado.
Se uma classe tiver dois ou mais construtores, passar um parâmetro null pode não identificar exclusivamente o construtor a ser
usado. Conseqüentemente, o compilador reporta um erro.
Convertendo null no objeto apropriado, você indica precisamente qual construtor o compilador deve usar. Essa prática também
proporciona compatibilidade com versões posteriores de API que adicionarem novos construtores.
Exemplo de código
new someObject ((someObject)null );
18
Guia de fundamentos
Práticas recomendadas para escrever de forma eficiente um BlackBerry Java Application
Usando longs para identificadores exclusivos
Use um long em vez de um String para constantes exclusivas, como GUIDs, chaves de tabela de hash e identificadores de
estado ou contexto.
Para que os identificadores permaneçam exclusivos em um BlackBerry® Java Application, use as chaves geradas por um aplicativo
com base em um hash de um identificador String. No Stringde entrada, inclua informações suficientes para torná-lo
exclusivo. Por exemplo, use um nome de pacote totalmente qualificado como
com.rim.samples.docs.helloworld.
Saindo dos aplicativos corretamente
Antes de invocar System.exit(int status), realize as limpezas necessárias, como a remoção de objetos do
armazenamento em tempo de execução que os aplicativos não precisam mais.
Imprimindo o rastreamento de pilha
Ao depurar o aplicativo, para exibir o rastreamento de pilha, aplique o comando catch a uma instância passível de gerar uma
exceção .
Exemplo de código
catch (Throwable t) { t.printStackTrace(); }
Prática recomendada: Usando os objetos de forma criteriosa
Para permitir que o BlackBerry® Java Application use os recursos de memória de forma eficiente, considere as seguintes questões:
•De acordo com o tamanho do aplicativo, todos os objetos são necessários?
•Seu aplicativo pode armazenar objetos que representam primitivos como Long, Integere Booleancomo primitivos
em vez de objetos?
•Todos os objetos persistentes são necessários?
•Existe alguma instância de vetor e tabela de hash ? Essas instâncias são necessárias? Em caso positivo, quantos
handles de objeto não são usados no vetor ou na tabela de hash porque o tamanho inicial é maior do que o
tamanho necessário?
•Quantos objetos seu aplicativo cria e depois descarta? Em outras palavras, quantos objetos específicos de escopo
seu aplicativo cria?
Prática recomendada: Reduzindo o tamanho do código compilado
Para reduzir o tamanho do código compilado, considere as seguintes diretrizes:
19
Guia de fundamentos
•Defina o acesso apropriado.
•Evite criar interfaces.
•Use classes internas estáticas.
•Evite a inicialização de campos desnecessários.
•Importe classes individuais.
Práticas recomendadas para escrever de forma eficiente um BlackBerry Java Application
Definindo o acesso apropriado
Ao criar bibliotecas de código, você pode reduzir significativamente o tamanho do código compilado usando os modificadores
de acesso apropriados para campos e métodos. Defina os campos como privados sempre que possível. Além de ser uma boa
prática de codificação, isso permite que o compilador otimize o arquivo .cod. Quando possível, use o acesso padrão
(package) em vez do acesso público (ou seja, omita as palavras-chave public e protected ).
Evitando criar interfaces
Ao criar bibliotecas de API, evite criar interfaces a menos que você preveja múltiplas implementações da API. As interfaces geram
um código maior e mais lento.
Usando classes internas estáticas
Quando você usar uma classe interna para ocultar uma classe dentro de outra, mas a classe interna não fizer referência ao objeto
da classe externa, defina a classe interna como estática. Isso impede a criação de uma referência à classe externa.
Se você usar uma classe interna para escopo de nome, torne-a estática.
Exemplo de código
class outer { static class inner { ... } }
Evitando a inicialização de campos desnecessários
Sempre que possível, permita que os campos sejam automaticamente inicializados como a seguir:
•referências a objetos são inicializadas como null
•int, byteou long é inicializado como 0
•Booleano é inicializado como false
Você deve inicializar explicitamente as variáveis locais em um método.
Exemplo de código
class BetterExample { private int fieldsCount; private Field _fieldWithFocus;
private boolean _validLayout; private boolean _validLayout; }
20
Guia de fundamentos
Suporte a vários idiomas
Importando classes individuais
Um BlackBerry® Java Application que use apenas uma pequena quantidade de classes de um pacote deve importar apenas as
classes individuais.
Exemplo de código
import net.rim.blackberry.api.browser.Browser;
Suporte a vários idiomas
O BlackBerry® Integrated Development Environment inclui um mecanismo para criar recursos de string. A API de localização
faz parte do pacote net.rim.device.api.i18n . Os aplicativos MIDP não oferecem suporte à localização.
O BlackBerry Integrated Development Environment armazena recursos para uma localidade em um objeto
ResourceBundle . Um objeto ResourceBundleFamily contém uma coleta de ResourceBundles, que agrupa
os recursos de um aplicativo. O aplicativo pode alternar entre idiomas, dependendo da localidade do usuário do dispositivo
BlackBerry, sem precisar de novos pacotes de recursos.
Você pode usar o BlackBerry Integrated Development Environment para compilar cada pacote de recursos em um arquivo .cod
compilado separadamente. Você pode carregar os arquivos .cod apropriados nos dispositivos BlackBerry com os outros
arquivos .cod para o aplicativo.
Os recursos são organizados em uma hierarquia baseada na hereditariedade. Se uma string não for definida em uma localidade,
será usada a string da localidade seguinte mais próxima.
Prática recomendada: Armazenando strings de texto em arquivos de recursos
Em vez de usar texto no código fonte, desenvolva aplicativos de forma que usem arquivos de recursos para localização (adaptados
a regiões e idiomas específicos).
Considere as seguintes diretrizes:
•Armazene as strings de texto para cada localidade em um único arquivo de recursos.
•No código fonte, use identificadores exclusivos para fazer uso dos arquivos de recursos apropriados.
•Desenvolva o aplicativo para que recupere dinamicamente o arquivo de recursos apropriado a ser exibido para o usuário
doBlackBerrydispositivo BlackBerry® com base em sua localidade.
21
Guia de fundamentos
Suporte a multimídia
Suporte a multimídia
Suporte a áudio
Você pode criar um BlackBerry® Java Application que funcione com os formatos de áudio suportados pelo dispositivo BlackBerry.
O tipo de formato de áudio suportado por um dispositivo BlackBerry depende do número do modelo doBlackBerrydispositivo.
Para obter mais informações sobre suporte a áudio em um dispositivo BlackBerry, visite www.blackberry.com/developers.
Suporte a imagens
Nos dispositivos BlackBerry® com câmera, quando o usuário tira uma foto, oBlackBerrydispositivo a armazena
noBlackBerrysistema deBlackBerryarquivos. O BlackBerry® Java Application pode acessar as fotos usando a API File Connection
para Java ME que está disponível no BlackBerry® Java® Development Environment 4.2 ou posterior. O BlackBerry Java Application
pode invocar o aplicativo de câmera e ouvir os eventos quando as imagens são adicionadas ao sistema de arquivos.
Suporte a vídeo
Você pode criar um BlackBerry® Java Application que exiba imagens e use as classes de APIs gráficas para trabalhar com conteúdo
multimídia e reproduzir vídeos nos dispositivos BlackBerry que possuam um media player integrado.
22
Guia de fundamentos
Projeto da interface do usuário e da navegação
Projeto da interface do usuário e da navegação
3
Navegação e ação do usuário do dispositivo BlackBerry
BlackBerry® possuem um teclado, um trackwheel ou trackball, e uma tecla Escape para navegação e ação. A
teclaBlackBerryEscape é um mecanismo fácil para retornar à tela anterior ou para limpar um menu ou uma caixa de diálogo da
tela.
O BlackBerry® Java Application para dispositivos BlackBerry deve seguir o máximo possível os modelos de ação e navegação
abaixo.
•Clicar no trackwheel ou trackball para invocar um menu.
•Pressionar a tecla Escape para voltar à tela anterior ou fechar o aplicativo na tela principal.
Por padrão, os objetos de tela do BlackBerry fornecem essa funcionalidade sem necessidade de personalização; porém, é preciso
adicionar itens de menu e lógica de interface do usuário e navegação adicional.
Trackwheel e trackball
Sensibilidade do trackball
A sensibilidade do trackball refere-se à quantidade de movimento do trackball que é necessária para que o sistema identifique
o movimento como um evento de navegação e para despachar um evento de navegação para a camada de software. O hardware
do dispositivo BlackBerry® mede o movimento físico do trackball usando unidades denominadas tiques. Quando o número de
tiques ao longo de um eixo ultrapassa o limite do sistema ou um BlackBerry® Java Application, um evento de navegação ao longo
desse eixo é despachado para a camada de software e o sistema redefine a contagem de tiques para zero. As contagens de tiques
também são redefinidas para zero após um determinado período de tempo inativo.
Use a API do trackball para definir a sensibilidade do trackball. A alta sensibilidade do trackball equivale a um limite menor de
tique, o que significa que são necessários pequenos movimentos do trackball para disparar eventos de navegação. Por outro lado,
a baixa sensibilidade do trackball equivale a um limite maior de tique, o que significa que são necessários grandes movimentos
do trackball para disparar eventos de navegação.
Movimento do trackball
Você pode usar a API do trackball para filtrar os dados de movimento do trackball que o hardware do dispositivo BlackBerry®
envia à camada de software. A API do trackball pode filtrar "ruídos" de movimento ou movimentos não desejados.
23
Guia de fundamentos
Ela também pode ser usada para alterar configurações como aceleração do movimento do trackball. O aumento da configuração
de aceleração de movimento do trackball pode fazer com que a camada de software identifique os movimentos do trackball como
se estivessem com uma taxa mais rápida do que a taxa detectada pelo hardware do dispositivo BlackBerry, desde que o usuário
continue rolando o trackball. A sensibilidade do trackball aumenta temporariamente enquanto o usuário rola o trackball sem
pausa.
Criando uma interface de usuário que seja consistente com as interfaces padrão do BlackBerry
Trackwheel
Os dispositivos BlackBerry® anteriores ao BlackBerry® Pearl™ 8100 Series não possuem trackball. Em vez disso, possuem um
trackwheel no lado direito do dispositivo. O trackwheel é o principal controle de navegação do usuário.
Os usuários podem
•rolar o trackwheel para mover o cursor na vertical
•rolar o trackwheel enquanto pressionam a tecla Alt para mover o cursor na horizontal
•clicar no trackwheel para selecionar objetos ou abrir o menu
Diretrizes
•Familiarize-se com os dois modelos de navegação, o trackwheel e o trackball, e verifique se o seu aplicativo funciona bem
com ambos.
Criando uma interface de usuário que seja consistente com as interfaces
padrão do BlackBerry
Você pode usar APIs MIDP padrão e APIs de interface de usuário do BlackBerry® para criar interfaces do BlackBerry® Java
Application.
As APIs de interface do usuário do BlackBerry são uma biblioteca de componentes de interface que oferecem layouts e
comportamentos padrão consistentes com os principais aplicativos do dispositivo BlackBerry
•Os componentes de tela fornecem um layout de tela padrão, um menu padrão e um comportamento padrão quando o
usuário do dispositivo BlackBerry pressiona a tecla Escape ou clica no trackwheel ou trackball.
•Os componentes de campo fornecem elementos de interface padrão para escolha de datas e opções, caixas de seleção,
listas, campos de texto, rótulos e controles da barra de andamento.
•Os gerentes de layout oferecem ao aplicativo a capacidade de organizar os componentes na tela de um dispositivo BlackBerry
de maneiras padrão: na horizontal, na vertical ou da esquerda para a direita.
Você pode usar as APIs de interface de usuário do BlackBerry para criar interfaces que incluam tabelas, grades e outros recursos
especiais. O BlackBerry Java Development Environment usa um modelo de evento Java padrão para receber e responder a tipos
específicos de eventos. Os aplicativos podem receber e responder a eventos de usuários de dispositivos BlackBerry, por exemplo,
quando oBlackBerryusuário clica no trackwheel, clica no trackball ou digita no teclado, e a eventos do sistema como alertas
globais, alterações em tempo real e conexões de porta USB.
24
Guia de fundamentos
Gerenciamento de memória
Gerenciamento de memória
4
Gerenciando a memória
A BlackBerry® Java® Virtual Machine gerencia o uso de memória no dispositivo BlackBerry. A BlackBerry JVM aloca memória,
realiza coleta de lixo e troca dados automaticamente entre a SRAM e a memória flash. A BlackBerry JVM também deve
compartilhar a memória disponível entre os aplicativos do dispositivo BlackBerry e o BlackBerry® Java Application. Os recursos
de memória representam a quantidade total de memória disponível, que é maior do que a memória de trabalho disponível quando
todos os aplicativos e dados de aplicativo associados estão carregados no dispositivo BlackBerry.
Memória do dispositivo BlackBerry
Os dispositivos BlackBerry® possuem os seguintes tipos de memória:
MemóriaDescrição
FlashO sistema operacional BlackBerry e todos os módulos de aplicativo são
armazenados de forma persistente na memória flash. Na primeira vez em que o
dispositivoBlackBerry BlackBerry é ligado, o sistema operacional central e os
módulos de BlackBerry® Java Application ocupam cerca de 10 a 15 MB de memória
flash, dependendo da versão. A memória flash pode armazenar as mensagens de
e-mail, os dados do organizador e outras informações pessoais do usuário do
dispositivo BlackBerry, além dos dados que um BlackBerry Java Application
armazena na memória.
SRAMA SRAM controla objetos de dados e processos de tempo de execução transitórios.
Cartão de memória microSD expansível O cartão microSD armazena arquivos de mídia, documentos e dados persistentes
de um BlackBerry Java Application.
Principais recursos a serem reservados
•Memória flash: o espaço de armazenamento persistente que está disponível no dispositivo BlackBerry® é um valor fixo de
memória flash, geralmente no intervalo de 8 a 64 MB.
•Handles de objetos persistentes: os handles atribuídos a objetos persistentes são consumidos apenas pelos objetos
persistentes. A quantidade de memória flash no dispositivo BlackBerry determina a quantidade fixa de handles de objetos
persistentes no sistema.
25
Guia de fundamentos
•Handles de objeto: cada objeto e matriz de primitivos possui um handle de objeto associado a ele. A quantidade de memória
flash no dispositivo BlackBerry determina a quantidade fixa de handles de objetos no sistema.
Gerenciando situações de pouca memória disponível
Prática recomendada: Minimizando o uso da memória
Para minimizar a memória de tempo de execução, considere as seguintes diretrizes:
•Use tipos primitivos (como int ou Boolean) em vez de objetos (como String ou Integer).
•Não dependa totalmente do coletor de lixo.
•Evite criar muitos objetos rapidamente.
•Defina as referências de objeto como null ao terminar de usá-las.
•Reutilize os objetos o máximo possível.
•Transfira os processamentos pesados para o servidor. Por exemplo, você pode filtrar ou classificar os dados antes de enviálos para o dispositivo BlackBerry®.
Gerenciando situações de pouca memória disponível
O gerenciador de pouca memória controla os recursos de memória no dispositivo BlackBerry® quando eles ficam abaixo de um
determinado limite. Ele tenta liberar a memória utilizada para disponibilizar mais memória no dispositivo BlackBerry. Todos os
aplicativos, incluindo os BlackBerry® Java Application, devem funcionar com o gerenciador de pouca memória para liberar o
máximo de memória possível quando houver poucos recursos de memória no dispositivo BlackBerry.
Identificando situações de pouca memória disponível em um dispositivo BlackBerry
A seguinte condição pode fazer com que o gerenciador de pouca memória tente liberar recursos de memória:
•A quantidade de memória flash disponível no dispositivo BlackBerry® fica abaixo de um determinado limite. O limite de
memória flash depende da quantidade de RAM disponível no sistema. O limite de memória flash varia entre 400 KB e 800
KB.
•O número de handles de objeto persistente disponíveis no dispositivo BlackBerry fica abaixo de 1.000.
•O número de handles de objeto disponíveis no dispositivo BlackBerry fica abaixo de 1.000.
Economizando recursos
Prática recomendada: Usando uma seleção de estrutura de dados eficiente
A seleção de estrutura de dados define a quantidade de handles de objeto e de memória flash usada por um BlackBerry® Java
Application. A seleção de uma estrutura de dados inadequada pode consumir recursos chave sem melhorar a funcionalidade do
BlackBerry Java Application ou a experiência do usuário do dispositivo BlackBerry.
26
Guia de fundamentos
Economizando recursos
Considere as seguintes diretrizes:
•A estrutura de dados deve ser composta pelo menor número possível de objetos, especialmente quando você usa objetos
de nível superior como um vetor ou uma tabela de hash. Essas classes oferecem funcionalidade significativa,
mas não são um mecanismo de armazenamento eficiente. Evite utilizá-las no armazenamento persistente.
•Sempre que possível, use primitivos em vez de objetos, porque os primitivos reduzem o número de handles de objeto que
são consumidos no dispositivo BlackBerry. Uma matriz de primitivos é um objeto e consome um handle de objeto.
•Os objetos de String são tão eficientes quanto as matrizes de byte. Um objeto de String consome apenas um handle
de objeto e seria equivalente ao seu aplicativo armazenar todos os caracteres como um byte. Em outras palavras, o valor de
cada caractere é menor ou igual ao valor decimal de 255. Se o seu aplicativo não puder armazenar caracteres como um
byte, você poderá armazená-los como uma String porque é equivalente a armazenar uma matriz de caracteres.
Prática recomendada: Consolidando objetos em grupos de objetos
Um dos erros mais comuns que os desenvolvedores de aplicativos encontram é o esgotamento de handles de objeto persistente.
A quantidade de memória flash no dispositivo BlackBerry® determina a quantidade fixa de handles de objeto persistente
disponíveis no sistema. Dependendo da seleção da estrutura de dados, os registros armazenados podem esgotar facilmente os
handles de objeto persistente. Um objeto persistente consome um handle de objeto persistente e um handle de objeto. Um
objeto transitório consome apenas um handle de objeto.
Por exemplo, um registro que contenha dez campos de String , que representem itens como nome, número de telefone e
endereço, consome 11 handles de objeto persistente, um para o objeto de registro e um para cada String. Se um BlackBerry®
Java Application persistir em 3.000 registros, o aplicativo consumirá 33.000 handles de objeto persistente, excedendo assim a
quantidade de handles de objeto persistente disponível em um dispositivo BlackBerry com 16 MB de memória flash.
Você pode usar a classe net.rim.device.api.system.ObjectGroup para consolidar os handles de objeto para
um objeto em um grupo. Usando o exemplo do parágrafo anterior, se você agrupar o registro, ele consumirá um handle de objeto
persistente em vez de 11. Os handles de objeto para os campos de String são consolidados no handle do objeto do registro.
Quando você consolida handles de objeto em um grupo, o handle de objeto é somente leitura. Você deve desagrupar o objeto
antes de alterá-lo. Após concluir as alterações, agrupe-o novamente. Se você tentar alterar um objeto agrupado sem antes
desagrupá-lo, a exceção ObjectGroupReadOnlyException será acionada.
Desagrupar um objeto causa impacto no desempenho. O sistema cria uma cópia do objeto agrupado e aloca handles para cada
um dos objetos dentro desse grupo. Por isso, os objetos devem ser desagrupados somente quando necessário.
27
Guia de fundamentos
Coleta de lixo em um dispositivo BlackBerry
Coleta de lixo em um dispositivo BlackBerry
Coleta de lixo de RAM em um dispositivo BlackBerry
A BlackBerry® Java® Virtual Machine inicia uma operação de coleta de lixo da RAM apenas quando o BlackBerry JVM não
consegue alocar um objeto devido a falta de espaço na RAM. A operação de coleta de lixo da RAM costuma levar de 500 a 600
milissegundos para ser executada. Essa operação remove as variáveis recentemente alocadas que não têm mais referência na
RAM. Para ter a certeza de que a falta de referência na RAM seja uma condição suficiente para remover o objeto, a operação de
coleta de lixo da RAM poderá ser executada apenas quando os objetos não tiverem sido enviados para a memória flash.
Coleta de lixo completa em um dispositivo BlackBerry
A operação de coleta de lixo completa costuma ser executada em uma média de 1 segundo e não deve demorar mais de 2 segundos
para ser concluída. Essa operação faz o seguinte:
•Realiza a operação de coleta de lixo da RAM.
•Marca os objetos na memória flash que não têm mais referência ou não são mais persistentes.
•Libera handles de objetos não-persistentes na RAM e na memória flash.
O sistema pode iniciar uma operação de coleta de lixo completa nas seguintes situações:
•A BlackBerry® Java® Virtual Machine não pode alocar um objeto devido a falta de espaço na RAM.
•O processo está quase excedendo o tamanho de heap alocado no momento.
•A BlackBerry JVM não pode alocar um novo objeto porque não há handles de objeto disponíveis.
•O dispositivo BlackBerry está inativo.
Coleta de lixo em um dispositivo BlackBerry inativo
A coleta de lixo não ocorre sempre que o dispositivo BlackBerry® fica inativo. Ocorre apenas quando o sistema considera que a
operação de coleta de lixo otimizará o desempenho do sistema e maximizará o desempenho da bateria.
Para melhorar o desempenho sem prejudicar a experiência do usuário do dispositivo BlackBerry, o sistema tenta realizar as
seguintes operações de coleta de lixo quando o dispositivo BlackBerry fica inativo:
•Uma operação de coleta de lixo completa ocorre quando o dispositivo BlackBerry fica inativo por um tempo relativamente
pequeno.
•Uma operação de coleta de lixo minuciosa ocorre quando o dispositivo BlackBerry fica inativo por um tempo significativo.
28
Guia de fundamentos
Gerenciamento de dados
Gerenciamento de dados
O dispositivo BlackBerry® fornece APIs para armazenamento de dados na memória persistente doBlackBerrydispositivo. As APIs
de armazenamento persistente do BlackBerry e as APIs RMS do MIDP (compatíveis com JSR 37 e JSR 118) estão disponíveis em
todos os dispositivos BlackBerry baseados em Java®. Um dispositivo BlackBerry com o BlackBerry® Device Software 4.2 ou
posterior fornece um sistema de arquivos convencional e permite salvar conteúdo diretamente no sistema de arquivos usando
APIs JSR 75. Tanto com as APIs de armazenamento persistente do BlackBerry quanto com as APIs RMS do MIDP, é possível
armazenar dados de forma persistente na memória flash. Os dados continuam persistentes mesmo que você remova a bateria
do dispositivo BlackBerry.
5
Suporte a APIS para armazenamento de dados em memória persistente
APIs de armazenamento persistente
As APIs de armazenamento persistente do BlackBerry® oferecem uma interface de armazenamento de dados robusta e flexível.
Com essasBlackBerryAPIs, é possível salvar objetos Java® inteiros na memória sem precisar serializar os dados primeiro. Ao iniciar
o aplicativo, você pode recuperar os objetos Java da memória e processar as informações. Não há limite de tamanho em um
armazenamento persistente; porém, o limite para um objeto individual no armazenamento é de 64 KB.
As APIs de armazenamento persistente do BlackBerry não oferecem um modelo de banco de dados relacional. Você deve criar
um modelo de objeto eficiente e gerenciar os relacionamentos entre os objetos, conforme necessário, usando tabelas de hash e
índices.
APIs do sistema de gerenciamento de registros do MIDP
As APIs RMS fornecem um sistema de gerenciamento de registros simples que permite criar um objeto de armazenamento de
dados e manter uma série de registros no objeto. Cada registro é uma matriz de byte, portanto é necessário primeiro serializar
os dados nesse formato antes de armazená-los localmente. As APIs RMS não fornecem relacionamentos ou indexações inerentes
entre os registros. O limite de tamanho para um único armazenamento de dados do RMS é de no máximo 64 KB. Um aplicativo
pode criar vários armazenamentos de dados do RMS para manter maiores quantidades de dados. As APIs RMS fazem parte da
especificação MIDP padrão, por isso todos os dispositivos que podem oferecer suporte a MIDP também podem oferecer suporte
às APIs RMS.
APIs File Connection
As APIs File Connection oferecem um sistema de arquivos tradicional e possibilitam que os dados sejam salvos diretamente no
sistema de arquivos do dispositivo BlackBerry® ou em um cartão microSD. Você pode exibir os dados no sistema de arquivos e
transferi-los para um computador usando Windows®.
29
Guia de fundamentos
Armazenamento em mídia removível
Armazenamento em mídia removível
Acessando dados no cartão de memória microSD
O pacote javax.microedition.io.file oferece suporte às APIs File Connection JSR 75 e é usado nos aplicativos
para acessar o sistema de arquivos para o cartão de memória microSD. Você também pode implementar a interface
FileConnection para acessar imagens da câmera e toques do dispositivo BlackBerry®.
Classe ou interfaceDescrição
ConnectionClosedException
FileConnection
FileSystemListener
FileSystemRegistry
IllegalModeException
Esta exceção é acionada quando um aplicativo invoca um método em uma conexão
de arquivo fechada.
O aplicativo pode usar esta API para acessar arquivos ou diretórios.
O aplicativo pode usar esta API para receber notificações de status quando o
aplicativo adiciona ou remove uma raiz do sistema de arquivos.
O aplicativo pode usar esta API como um registro central para os ouvintes do sistema
de arquivos que ouvem a adição ou remoção de sistemas de arquivos.
Esta exceção é acionada quando um método requer um modo de segurança
específico (por exemplo READ ou WRITE) e a conexão aberta não está nesse modo.
Fazendo backup e sincronizando dados
O BlackBerry® Desktop Manager oferece uma ferramenta de backup e restauração que o usuárioBlackBerrypode utilizar para
gravar os dados do dispositivo BlackBerry em um arquivo no computador e depois restaurá-los para oBlackBerrydispositivo.
Quando um aplicativo usa a API de sincronização, o BlackBerry Desktop Manager pode fazer backup e restaurar o banco de
dados do aplicativo e de outros dispositivos BlackBerry ao mesmo tempo. Use a API de sincronização para criar arquivos de dados
ou para preencher bancos de dados de aplicativos na primeira vez que o dispositivo BlackBerry se conectar ao computador
doBlackBerryusuário.
Para sincronizar dados com fontes de dados remotas, é preciso criar a lógica de sincronização no BlackBerry Java®
Application. A maioria dos aplicativos envia dados para um aplicativo no servidor usando o protocolo padrão HTTP ou TCP/IP
pela rede sem fio e pela Internet ou intranet corporativa. Você pode usar as APIs XML para gerar e analisar dados no formato
XML a serem enviados e recebidos por conexão sem fio. No entanto, cabe aos aplicativos cliente e servidor ler e gravar
corretamente os dados, e confirmar o êxito na transmissão.
30
Guia de fundamentos
Fazendo backup e sincronizando dados
Um BlackBerry Java Application pode conectar-se a um aplicativo no computador para enviar os dados por uma conexão USB
usando as APIs do BlackBerry Desktop Synchronization e o BlackBerry Desktop Manager. Nesse caso, você deve criar um aplicativo
para Windows® que possa ler os dados do cliente por meio de uma tarefa de add-in para o BlackBerry Desktop Manager. O
usuário do dispositivo BlackBerry deve fazer a sincronização manual executando a tarefa de add-in do BlackBerry Desktop
Manager, que notificará o aplicativo no dispositivoBlackBerrypara enviar os dados ao aplicativo do computador. Você também
pode gravar dados no aplicativo do computador usando os protocolos nativos de USB.
31
Guia de fundamentos
Transporte sem fio de dados
Transporte sem fio de dados
6
Gateways sem fio
Os aplicativos Java® para dispositivos BlackBerry® podem usar os protocolos de soquete padrão HTTP, HTTPS e TCP para
estabelecer conexões pela rede sem fio. Quando um aplicativo estabelece uma conexão pela rede sem fio, ele pode usar um dos
dois gateways sem fio para atuar como proxy da conexão à Internet ou à intranet corporativa. Você pode desenvolver seu aplicativo
para utilizar o gateway padrão disponível para o usuário do dispositivo BlackBerry ou pode personalizar seu código para escolher
um gateway preferencial. Desenvolva seu aplicativo para escolher explicitamente o gateway preferencial para a conexão e usar
o gateway padrão se o método preferencial não estiver disponível. Isso pode minimizar os problemas de conexão de rede
enfrentados pelos clientes e permitir que seu aplicativo use um modelo de conectividade constante em todos os tipos de rede e
operadoras de rede sem fio.
Usando o BlackBerry Enterprise Server como um gateway de rede
Quando você usa o BlackBerry® Enterprise Server como um gateway de rede, todo o tráfego entre o aplicativo e o BlackBerry
Enterprise Server é criptografado usando AES ou DES Triplo. Como o BlackBerry Enterprise Server está localizado sob a proteção
do firewall corporativo e fornece criptografia de dados inerente, os aplicativos podem se comunicar com os servidores de
aplicativos e servidores da Web que estejam localizados na intranet da organização. O componente BlackBerry® Mobile Data
System do BlackBerry Enterprise Server inclui o BlackBerry MDS Services, que fornece um serviço de proxy HTTP e TCP/IP para
permitir que seja usado pelo BlackBerry® Java® Application como um gateway seguro para gerenciamento de conexões HTTP e
TCP/IP com a intranet.
Se o seu aplicativo se conectar à Internet, você poderá usar o BlackBerry Enterprise Server como um gateway. As solicitações de
rede são transmitidas sob a proteção do firewall corporativo para o BlackBerry Enterprise Server, que faz a solicitação da rede
para a Internet por meio do firewall cosporativo. Os administradores podem definir uma política de TI para garantir que o
BlackBerry Enterprise Server seja o gateway para todo o tráfego da rede sem fio, incluindo o tráfego destinado para a Internet.
Se o seu aplicativo se conectar à Internet, você também poderá usar o BlackBerry® Internet Service ou o gateway da Internet do
provedor de serviços sem fio para gerenciar as conexões.
Usando o gateway de Internet do provedor de serviços sem fio
A maioria dos provedores de serviços sem fio fornece um gateway de Internet que oferece conectividade TCP/IP direta com a
Internet. Há provedores de serviços sem fio que também oferecem um gateway WAP que permite conexões HTTP por meio do
protocolo WAP. O BlackBerry® Java® Application pode usar qualquer um desses gateways para se conectar à Internet. Se o seu
aplicativo for para usuários de dispositivos BlackBerry que estejam em uma rede sem fio específica, o uso do gateway de Internet
do provedor de serviços sem fio pode proporcionar bons resultados. Se o seu aplicativo for para usuários de dispositivos BlackBerry
32
Guia de fundamentos
em diversas redes sem fio, o teste do seu aplicativo em diferentes gateways de Internet e a obtenção de uma experiência constante
e confiável poderá ser um desafio. Talvez seja útil usar o BlackBerry® Internet Service. Use o gateway de Internet do provedor
de serviços sem fio como o tipo de conexão padrão se o BlackBerry Internet Service não estiver disponível.
Opções alternativas de transporte de dados
Opções alternativas de transporte de dados
Usando e-mail para transportar dados
Você pode usar as APIs do BlackBerry® para criar um BlackBerry® Java® Application que use e-mail como mecanismo de
transporte para enviar e receber dados. O e-mail pode ser uma maneira eficiente de distribuir de forma proativa o conteúdo para
os usuários de dispositivos BlackBerry quando os modelos de envio convencionais não estiverem disponíveis. O BlackBerry Java
Application pode usar as APIs do BlackBerry para enviar mensagens de e-mail e ouvir mensagens de e-mail recebidas. O
BlackBerry Java Application também pode acessar os detalhes e cabeçalhos das mensagens de e-mail que estão armazenadas
localmente no dispositivo BlackBerry e registrar os ouvintes para alterações no status de uma mensagem de e-mail.
Usando SMS para transportar dados
Você pode usar as APIS do BlackBerry® para criar aplicativos que usam SMS como mecanismo de transporte para enviar e receber
dados. As APIS do BlackBerry permitem que um aplicativo envie mensagens SMS e escute mensagens SMS recebidas.
Usando mensagens PIN para transportar dados
As mensagens PIN usam o canal de dados, em vez do canal de voz, e permitem endereçar o dispositivo BlackBerry® de destino
de acordo com seu PIN exclusivo. Elas podem ser usadas apenas para enviar dados de um dispositivo BlackBerry para outro. As
APIS do BlackBerry também podem permitir que um aplicativo envie e receba automaticamente mensagens PIN do BlackBerry.
As mensagens PIN podem ser uma maneira eficiente de implementar aplicativos PIN destinados apenas a usuários de dispositivos
BlackBerry.
33
Guia de fundamentos
Integração de aplicativos BlackBerry
Integração de aplicativos BlackBerry
7
Adicionando itens de menu personalizados
O BlackBerry® Java® Application pode adicionar itens de menu personalizados ao dispositivo BlackBerry para os aplicativos de
e-mail, organizadores e de telefone. Quando o usuário do dispositivo BlackBerry seleciona o item de menu personalizado, o
BlackBerry Java Application é iniciado com uma referência ao objeto selecionado pelo usuário do BlackBerry. Por exemplo, o
BlackBerry Java Application pode adicionar um item de menu denominado Show Location of Sender (Mostrar localização do
remetente) ao aplicativo de e-mail. Quando o usuário do dispositivo BlackBerry seleciona o item de menu, o BlackBerry Java
Application é iniciado com uma referência ao objeto de e-mail realçado no momento ou aberto pelo usuário. O BlackBerry Java
Application usa o endereço de e-mail do remetente para determinar a localização do remetente recuperando o endereço de email da lista de contatos ou recuperando dados de um servidor remoto e, depois, volta ao primeiro plano e exibe um mapa.
Integração com aplicativos do BlackBerry Device Software
Um aplicativo do dispositivo BlackBerry® pode invocar um dos aplicativos do BlackBerry Device Software como os aplicativos de
e-mail, organizadores, telefone, navegador e câmera para realizar uma ação ou exibir informações. Os exemplos a seguir
demonstram como um aplicativo do dispositivo BlackBerry pode invocar um aplicativo do BlackBerry Device Software:
•O aplicativo do dispositivo BlackBerry invoca o calendário para exibir uma determinada data ou entrada do calendário.
•O aplicativo do dispositivo BlackBerry invoca o catálogo de endereços para exibir um determinado contato.
•O aplicativo do dispositivo BlackBerry invoca o navegador para abrir um determinado endereço da Web.
•O aplicativo do dispositivo BlackBerry invoca o telefone para chamar um determinado número.
Acessando e-mail e dados do organizador
O BlackBerry® Java® Application pode usar as APIs do BlackBerry para acessar os detalhes de mensagens de e-mail, contatos,
eventos de calendário, tarefas e logs de chamada armazenados no dispositivo BlackBerry. O BlackBerry Java Application também
pode ler e atualizar as informações e criar novas entradas.
Usando o BlackBerry Messenger com um BlackBerry Application
É possível integrar um BlackBerry® Java® Application ao aplicativo BlackBerry® Messenger. Isso poderá ser útil se você estiver
criando um aplicativo de jogo baseado em ação para o dispositivo BlackBerry.
Para criar um BlackBerry Java Application que seja integrado ao aplicativo BlackBerry Messenger, você pode usar as classes no
pacote net.rim.blackberry.api.blackberrymessenger . Para obter mais informações sobre como usar a
classe BlackBerryMessenger , consulte a referência da API do BlackBerry.
34
Guia de fundamentos
Usando ouvintes para responder a alterações de aplicativos
Usando ouvintes para responder a alterações de aplicativos
O BlackBerry® Java® Application pode registrar ouvintes de alterações nos armazenamentos de dados de e-mail e do organizador
e no aplicativo de telefone. Os ouvintes permitem que o BlackBerry Java Application tome uma ação imediata quando o usuário
do dispositivo BlackBerry executa um evento local. Use os ouvintes de dados de e-mail e do organizador para notificar um
BlackBerry Java Application quando chegarem novas entradas ou quando o usuário do dispositivo BlackBerry fizer alterações
como adições, exclusões ou atualizações nos dados existentes. Você também pode usar os ouvintes de telefone para ouvir ações
de chamada telefônica, como o início de novas chamadas ou o término de chamadas.
35
Guia de fundamentos
Considerações sobre segurança
Considerações sobre segurança
8
Criptografia de dados e o BlackBerry Application
Criptografia de dados em transporte
Se você usar o BlackBerry® Enterprise Server como o gateway de rede para o seu aplicativo, o BlackBerry Enterprise Server
criptografará os dados usando criptografia DES triplo ou AES em todos os pontos da conexão entre o dispositivo BlackBerry e o
BlackBerry Enterprise Server sob a proteção do firewall da organização. Se você precisar de criptografia adicional de dados entre
o BlackBerry Enterprise Server e o servidor de destino, poderá usar o protocolo HTTPS e aproveitar a criptografia SSL/TLS.
Se o seu aplicativo usar o BlackBerry® Internet Service ou o gateway de Internet do provedor de serviços sem fio, o tráfego de
dados não será criptografado. Se os usuários do BlackBerry preferirem, você poderá usar o HTTPS para criptografar dados ou as
APIs Java® para aplicar a própria criptografia de chave simétrica ou chave pública.
Criptografia de dados no dispositivo BlackBerry
Os administradores podem definir uma política de TI para garantir que todos os dados do usuário do dispositivo BlackBerry®
armazenados nos aplicativos do dispositivo sejam criptografados localmente na memória flash. Você pode criar um BlackBerry
Java® Application que use APIs para registrar os dados de forma que o serviço de criptografia criptografe os dados com a mesma
chave de segurança antes de armazená-los na memória flash.
Acesso à memória
O BlackBerry® Java® Development Environment foi projetado para impedir que os aplicativos causem problemas, de forma
acidental ou intencional, em outros aplicativos ou no próprio dispositivo BlackBerry. Os aplicativos BlackBerry têm permissão de
gravação apenas na memória do dispositivo BlackBerry usada pela BlackBerry® Java® Virtual Machine; eles não podem acessar
a memória virtual ou o armazenamento persistente de outros aplicativos (a não ser que seja especificamente concedido acesso
para isso). O BlackBerry® Java Application pode acessar apenas o armazenamento persistente ou os dados do usuário, ou
comunicar-se com outros aplicativos, por meio de APIs específicas do BlackBerry. A Research In Motion deve assinar digitalmente
um BlackBerry Java Application que use essas APIs do BlackBerry para fornecer uma trilha de auditoria dos aplicativos que usam
APIs confidenciais.
36
Guia de fundamentos
Autenticação
Autenticação
Autenticação do dispositivo BlackBerry e política de TI
Os usuáriosBlackBerry®podem definir uma senha para seus dispositivos BlackBerry. Quando a senha do dispositivo estiver ativa,
osBlackBerryusuários terão que fornecer a senha para obterem acesso aos dados e aplicativos. O uso de senhas no dispositivo
é uma boa alternativa para limitar o acesso ao BlackBerry Java® Application no dispositivo BlackBerry.
Os administradores podem usar as políticas de TI que são fornecidas no BlackBerry® Enterprise Server para garantir que os
dispositivos BlackBerry da organização sejam protegidos por senha. Eles também podem usar as políticas de TI para bloquear
um dispositivo BlackBerry, alterar a senha ou remover todos os dados remotamente.
Autenticação do aplicativo
Para os aplicativos em que os recursos de segurança são críticos, convém oferecer uma tela de login que exija que o usuário do
dispositivo BlackBerry® efetue login no aplicativo no dispositivo BlackBerry antes de utilizá-lo. As classes de interface do usuário
oferecem campos de senha simples que ocultam o texto inserido, substituindo-o por asteriscos. As telas de login podem gerar
um impacto negativo na experiência do usuário do dispositivo BlackBerry e se o usuárioBlackBerrydefinir uma senha para proteger
oBlackBerrydispositivo, talvez o aplicativo não exija uma tela de login.
Autenticação no servidor
Caso o seu aplicativo vá se conectar a um aplicativo em um servidor ou à Internet ou a uma intranet, talvez você queira incluir
recursos adicionais de autenticação para o login dos usuários de dispositivos BlackBerry® no servidor. A maioria dos aplicativos
que requer autenticação do usuário emprega a autenticação básica HTTP, que usa uma combinação simples de nome de usuário
e senha. Você pode usar a autenticação básica HTTP adicionando os cabeçalhos HTTP corretos ao abrir a conexão HTTP. Também
é possível adicionar mais autenticação avançada usando certificados; porém, a maioria dos aplicativos não exige.
APIs controladas e assinatura de código
A Research In Motion controla o uso de APIs confidenciais por questões de segurança e controle de exportação. Na referência
de API doBlackBerry®, a RIM identifica classes ou métodos controlados por meio de um ícone de cadeado ou uma nota assinada.
Para usar classes ou métodos controlados em seus aplicativos e antes de instalar os arquivos .cod no dispositivo BlackBerry, você
deve assinar o aplicativo usando uma chave ou assinatura da RIM. Outras funcionalidades, como a capacidade de execução
quando o aplicativo é iniciado, podem requerer que os aplicativos sejam assinados.
37
Guia de fundamentos
Embora o processo de registro da RIM abranja o uso da maioria das APIs controladas, algumas classes de criptografia relacionadas
à criptografia pública e privada contêm tecnologia da Certicom™. Para usar essas classes, você precisa se registrar diretamente
na Certicom e obter uma licença. O processo de registro da RIM não inclui o uso das classes da Certicom.
Para testar e depurar o código antes de receber as assinaturas de código, você pode usar o BlackBerry® Smartphone
Simulator. O aplicativo precisa ser assinado antes de ser instalado nos dispositivos BlackBerry. Você não envia seu código de
verdade para a RIM. Use a BlackBerry® Signature Tool para enviar um hash SHA-1 do arquivo do código para que o sistema de
autoridade de assinatura possa gerar a assinatura necessária.
Para obter mais informações sobre como registrar e obter assinaturas de código, consulte BlackBerry Signing Authority Tool
Version 1.0 - Password Based Administrator Guide (BlackBerry Signing Authority Tool Versão 1.0 - Guia do administrador baseado
em senha). Para obter mais informações sobre como registrar e usar classes, visite www.blackberry.com/developers/
index.shtml.
APIs do BlackBerry com acesso controlado
APIs do BlackBerry com acesso controlado
Você pode executar aplicativos que usam APIs controladas no BlackBerry® Smartphone Simulator sem assinaturas de código,
mas deverá obter assinaturas de código da Research In Motion para poder instalar esses aplicativos em dispositivos BlackBerry.
Você pode usar as seguintes categorias de APIs controladas da RIM:
•APIs em tempo de execução
•APIs do BlackBerry® Application
•API criptográfica do BlackBerry
Se você usar um dos pacotes de API do BlackBerry a seguir, seu aplicativo precisará de assinaturas de código antes de ser instalado
em um dispositivo BlackBerry:
net.rim.blackberry.api.browser
•
net.rim.blackberry.api.invoke
•
net.rim.blackberry.api.mail
•
net.rim.blackberry.api.mail.event
•
net.rim.blackberry.api.menuitem
•
net.rim.blackberry.api.options
•
net.rim.blackberry.api.pdap
•
net.rim.blackberry.api.phone
•
net.rim.blackberry.api.phone.phonelogs
•
net.rim.device.api.browser.field
•
net.rim.device.api.browser.plugin
•
net.rim.device.api.crypto.*
•
net.rim.device.api.io.http
•
net.rim.device.api.notification
•
38
Guia de fundamentos
net.rim.device.api.servicebook
•
net.rim.device.api.synchronization
•
net.rim.device.api.system
•
Para obter mais informações sobre as APIs controladas da RIM, consulte a referência de API do BlackBerry.
Suporte a políticas de TI
Suporte a políticas de TI
Use as APIs do pacote net.rim.device.api.itpolicy para acessar as informações de política de TI no dispositivo
BlackBerry® e alterar o comportamento ou a funcionalidade de um aplicativo do dispositivo BlackBerry. Cada item da política
de TI é composto por um nome, uma descrição e um valor. O valor pode ser uma string, um número inteiro ou um valor Booleano.
As configurações de política de TI do dispositivo BlackBerry são automaticamente sincronizadas e atualizadas pela rede sem fio
com o BlackBerry® Device Software 3.6 ou posterior. Com as versões anteriores do BlackBerry Device Software, as configurações
de política de TI são atualizadas quando o usuário sincroniza oBlackBerrydispositivo BlackBerry com o computador.
Para obter mais informações sobre as políticas de TI, consulte o guia de referência de políticas do BlackBerry EnterpriseServer.
Controle de aplicativos
As regras de política de controle de aplicativos do BlackBerry® Enterprise Server são projetadas para permitir ou impedir a
instalação de aplicativos específicos no dispositivo BlackBerry e limitar as permissões de aplicativos no dispositivo BlackBerry.
Por exemplo, os administradores podem usar a política de controle de aplicativos para garantir que um aplicativo de jogo no
dispositivo BlackBerry não possa acessar o aplicativo de telefone.
O administrador poderá aplicar políticas de controle de aplicativos apenas quando o dispositivo BlackBerry estiver associado a
um BlackBerry Enterprise Server. Se o administrador ou um usuário de dispositivo BlackBerry recusar acesso do aplicativo a uma
das áreas protegidas, o aplicativo acionará uma ControlledAccessException.
Criptografia de arquivos em cartões microSD
Criptografia de dados em um cartão de memória microSD
Quando o BlackBerry® Java® Application acessa um arquivo no cartão de memória microSD, o arquivo é descriptografado e
transferido para a memória principal para ser lido por um aplicativo. Para que o BlackBerry Java Application acesse um arquivo
protegido por senha, o dispositivo BlackBerry não deve ser bloqueado. Os arquivos criptografados possuem uma extensão .rem
e não podem ser descriptografados em plataformas que não sejam BlackBerry.
39
Guia de fundamentos
Se a NVRAM for removida e o cartão de memória microSD for bloqueado com uma chave de dispositivo BlackBerry, os dados no
cartão de memória não poderão mais ser acessados. Para remover os dados que não podem ser acessados, ligue o dispositivo
BlackBerry e remova todos os arquivos de mídia criptografados.
O dispositivo BlackBerry usa uma chave mestra armazenada no cartão de memória microSD para criptografar arquivos de mídia
do dispositivo BlackBerry. A chave mestra impede que o dispositivo BlackBerry tenha que descriptografar ou criptografar
novamente todos os arquivos de mídia quando você desabilita a criptografia ou muda a senha.
Criptografia de arquivos em cartões microSD
Usando o cartão de memória microSD com mais de um dispositivo BlackBerry
Se o usuário do dispositivo BlackBerry® mover o cartão de memória microSD para um dispositivo BlackBerry que não use uma
senha de dispositivo ou use uma senha que não descriptografe corretamente a chave mestra do cartão de memória microSD, o
dispositivo BlackBerry solicitará que oBlackBerryusuário digite a senha do cartão de memória microSD. Se o dispositivo BlackBerry
tiver senha, oBlackBerryusuário poderá usar o prompt para alterar a senha do cartão de memória microSD para a senha
doBlackBerrydispositivo.
Políticas de TI e o cartão de memória microSD
Você pode aplicar os dados de criptografia de política de TI gravados no cartão de memória microSD em qualquer arquivo novo
ou modificado que esteja armazenado no cartão de memória microSD. Apenas os arquivos que você armazena no cartão de
memória microSD depois que o administrador define a política de TI são criptografados. Com exceção dos arquivos de mídia,
todo o conteúdo é criptografado.
40
Guia de fundamentos
Testar um BlackBerry Java Application
Testar um BlackBerry Java Application
9
Ofuscação de um BlackBerry Java Application
O compilador do BlackBerry® Java® Development Environment e do BlackBerry® JDE Plug-in para Eclipse™ foi projetado para
minimizar o tamanho do aplicativo. O compilador gera um arquivo .cod que fornece serviços de ofuscação semelhantes aos que
os pacotes de ofuscação fornecem para reduzir o tamanho do arquivo .cod. Por exemplo, o BlackBerry Java Development
Environment remove as seguintes informações de um arquivo .cod:
•todas as informações de depuração
•nomes das variáveis locais
•números da linha de origem
•nomes de membros e método privado
Em geral, não é necessário fornecer ofuscação aos seus aplicativos além da ofuscação já existente que, por padrão, é fornecida
pelo BlackBerry JDE. Na verdade, a Research In Motion não realiza ofuscação adicional de seus próprios produtos.
O BlackBerry JDE não oferece suporte a ofuscação realizada com ferramentas de terceiros. Você deve incluir um procedimento
de linha de comando para ofuscar os arquivos .cod a serem usados nos dispositivos BlackBerry.
Pré-verificação de um BlackBerry Java Application
Ao fazer a pré-verificação de suas classes, você reduz a quantidade de processamento que o dispositivo BlackBerry® deve executar
quando instala seu aplicativo. Para verificar parcialmente suas classes antes de instalar o aplicativo em um dispositivo BlackBerry,
use a ferramenta Preverify, disponibilizada com o BlackBerry® Java® Development Environment. Você pode usar o BlackBerry®
Smartphone Simulator para fazer a pré-verificação dos arquivos .cod.
Para obter mais informações sobre o uso do BlackBerry Smartphone Simulator, consulte o BlackBerry Device Simulator UserGuide (Guia do usuário do simulador de dispositivo BlackBerry). Para obter mais informações sobre o uso da ferramenta Preverify,
consulte o BlackBerry Java Development Environment Development Guide (Guia de desenvolvimento do BlackBerry JavaDevelopment Environment).
Testando aplicativos em um BlackBerry Smartphone Simulator
Após desenvolver e compilar o aplicativo, você pode testá-lo no dispositivo BlackBerry®. A etapa inicial mais comum é definir o
BlackBerry® Java® Development Environment para usar um BlackBerry® Smartphone Simulator. O BlackBerry Smartphone
Simulator executa o mesmo código Java que os dispositivos BlackBerry, portanto o BlackBerry Smartphone Simulator oferece um
41
Guia de fundamentos
ambiente adequado para testar como os aplicativos funcionarão em um dispositivo BlackBerry. O BlackBerry JDE inclui as versões
atuais do BlackBerry Smartphone Simulator. Para fazer download das versões adicionais do BlackBerry Smartphone Simulator,
visite www.blackberry.com/developers/index.shtml.
Testando aplicativos em um dispositivo BlackBerry
Testando aplicativos em um dispositivo BlackBerry
Após testar o aplicativo no BlackBerry® Smartphone Simulator, você pode instalá-lo em um dispositivo BlackBerry. Se o seu
aplicativo usar APIs assinadas, talvez você precise de chaves de assinatura de código. Após instalar o aplicativo no dispositivo
BlackBerry, você pode abrir o aplicativo e testar sua funcionalidade e desempenho.
Para fins de depuração, você pode anexar o dispositivo ao BlackBerry® Integrated Development Environment e usar a ferramenta
de depuração para executar as etapas do código do aplicativo. O BlackBerry IDE pode ser útil se você estiver tentando identificar
um problema de rede ou Bluetooth® ou outros problemas que sejam difíceis de serem simulados.
Simuladores do BlackBerry
BlackBerry Smartphone Simulator
O BlackBerry® Smartphone Simulator foi projetado para emular uma experiência do BlackBerry sem usar um dispositivo
BlackBerry de verdade. O BlackBerry Smartphone Simulator é um aplicativo que você instala no computador e que mostra uma
imagem do modelo do dispositivo BlackBerry de sua preferência. Essa imagem tem a aparência e o funcionamento de um
dispositivo BlackBerry de verdade. A funcionalidade inclui a mesma interação do usuário de um dispositivo BlackBerry de verdade
(incluindo o trackwheel ou trackball e o teclado), os mesmos aplicativos e os mesmos recursos, como mensagens de e-mail,
telefone e navegação na Internet.
O BlackBerry Smartphone Simulator também serve como uma plataforma onde os aplicativos podem ser executados. Isso inclui
a capacidade de os aplicativos fazerem conexões de rede, armazenarem dados e gerenciarem mensagens de e-mail. O BlackBerry
Smartphone Simulator inclui aplicativos que normalmente estão disponíveis nos dispositivos BlackBerry e permite instalar e
testar seus própriosBlackBerryaplicativos. É possível simular e testar várias alterações de estado e conectividade usando o
BlackBerry Smartphone Simulator.
Ao usar o BlackBerry Smartphone Simulator para realizar testes, convém simular também outros serviços BlackBerry. O
BlackBerry® MDS Simulator e o BlackBerry® Email Simulator servem para isso.
Para obter o BlackBerry Smartphone Simulator, visite www.blackberry.com/developers e faça download do BlackBerry® Java®
Development Environmentou do pacote de componentes BlackBerry Java Development Environment.
42
Guia de fundamentos
Simuladores do BlackBerry
BlackBerry MDS Simulator
O BlackBerry® MDS Simulator foi projetado para simular o componente BlackBerry MDS Connection Service do BlackBerry®
Enterprise Server. Quando você usa o BlackBerry Smartphone Simulator com o BlackBerry MDS Simulator, é possível testar os
aplicativos de rede, HTTP de envio e navegação projetados para uso com o BlackBerry Enterprise Server. Para obter informações
sobre o BlackBerry MDS Simulator, visite www.blackberry.com/developers e faça download do BlackBerry® Email and MDS
Services Simulator Package.
BlackBerry Email Simulator
O BlackBerry® Email Simulator foi projetado para enviar e receber mensagens entre o BlackBerry® Smartphone Simulator e um
aplicativo de mensagens, como o Microsoft® Outlook®, ou servidores POP3 e SMTP. Você não precisa de um BlackBerry®
Enterprise Server. Para obter informações sobre o BlackBerry Email Simulator, visite www.blackberry.com/developers e faça
download do BlackBerry® Email and MDS Services Simulator Package.
43
Guia de fundamentos
Disponibilizando os aplicativos
Disponibilizando os aplicativos
10
Distribuição de aplicativos por meio de uma conexão de computador
Distribuir um aplicativo a partir de um computador
Você pode usar a ferramenta Carregador de aplicativos no BlackBerry® Desktop Manager para instalar aplicativos no dispositivo
BlackBerry. A ferramenta Carregador de aplicativos oferece aos usuários uma maneira simples de fazer download de aplicativos
de seus computadores para os dispositivos BlackBerry.
Distribuir um aplicativo a partir de uma página da Web
Você pode usar o BlackBerry® Application Web Loader para publicar seu aplicativo compilado em um site da Web. Os usuários
podem utilizar o Windows® Internet Explorer® em seus computadores para acessar a página da Web e instalar o aplicativo em
seus dispositivos BlackBerry. Quando os usuários de dispositivos BlackBerry acessam a página da Web, o BlackBerry Application
Web Loader solicita que eles conectem seus dispositivos à porta USB. Assim eles podem instalar o aplicativo usando um controle
ActiveX®. O BlackBerry Application Web Loader oferece aos usuários de dispositivos BlackBerry uma maneira simples de instalar
aplicativos a partir de seus computadores sem precisar executar o BlackBerry® Desktop Manager.
Distribuir um aplicativo para testes
O BlackBerry® Java® Development Environment inclui uma ferramenta de linha de comando denominada JavaLoader que está
localizada na pasta BIN, dentro da pasta BlackBerry JDE. Use essa ferramenta para instalar e remover rapidamente os arquivos
de aplicativo compilados no dispositivo BlackBerry diretamente pela porta USB. Você não precisa de arquivos descritores ou
páginas da Web. A ferramenta JavaLoader pode ser útil quando você instala e remove um aplicativo com freqüência durante os
testes e o desenvolvimento; porém, a ferramenta JavaLoader não foi projetada para ser utilizada por usuários do dispositivo
BlackBerry.
Distribuição de aplicativos pela rede sem fio
Você pode distribuir os aplicativos pela rede sem fio para proporcionar uma melhor experiência aos usuários de dispositivos
BlackBerry® e para simplificar a distribuição de aplicativos a um grupo maior de pessoas já que você não precisa de um aplicativo
de computador. O usuário do dispositivo BlackBerry pode instalar aplicativos pela rede sem fio.
44
Guia de fundamentos
Distribuição de aplicativos pela rede sem fio
Recebimento sem fio (iniciado pelo usuário)
Você pode publicar aplicativos compilados em um site público ou privado. Os usuários de dispositivos BlackBerry® podem visitar
o site para fazer download dos aplicativos pela rede sem fio usando o navegador em seus dispositivos BlackBerry. O navegador
solicita que os usuários instalem o aplicativo e então o aplicativo é baixado pela rede sem fio e instalado no dispositivo BlackBerry.
Envio sem fio (iniciado pelo servidor)
No ambiente do BlackBerry® Enterprise Server, o administrador pode enviar aplicativos aos usuários do dispositivo BlackBerry
pela rede sem fio para instalação obrigatória. O administrador cria uma nova política e especifica que o dispositivo BlackBerry
precisa do aplicativo. O aplicativo é enviado sem que seja necessária a interação dos usuários. Essa abordagem é útil quando as
organizações precisam enviar novos aplicativos a uma grande quantidade de usuários de dispositivos BlackBerry.
45
Guia de fundamentos
Glossário
Glossário
AES
Advanced Encryption Standard (padrão de criptografia avançada)
CLDC
Connected Limited Device Configuration (configuração de dispositivo limitado conectado)
HTTP
Hypertext Transfer Protocol (protocolo de transferência de hipertexto)
HTTPS
Hypertext Transfer Protocol over Secure Sockets Layer (protocolo de transferência de hipertexto por camada de soquete
segura)
E/S
entrada/saída
IMAP
Internet Message Access Protocol
IPC
comunicação interprocessos
JDWP
Java® Debug Wire Protocol (protocolo de conexão com fio de depuração Java®)
11
JSR
Java® Specification Request (solicitação de especificação Java)
JTWI
Java® Technology for the Wireless Industry (tecnologia Java® para o setor de conexão sem fio)
JVM
Java® Virtual Machine (máquina virtual Java®)
MIDP
Mobile Information Device Profile (perfil de dispositivo móvel de informações)
NVRAM
Non-Volatile Random Acess Memory (memória não volátil de acesso aleatório)
PDAP
46
Guia de fundamentos
PDA Optional Packages for the J2ME Platform (pacotes opcionais de PDA para a plataforma J2ME)
PIM
gerenciamento de informações pessoais
PIN
número de identificação pessoal
POP
Post Office Protocol
RAPC
RIM Application Program Compiler (compilador de programa de aplicativo da RIM)
RMS
Record Management System (sistema de gerenciamento de registros)
SHA
Secure Hash Algorithm (algoritmo hash seguro)
SMS
Short Message Service (serviço de mensagens curtas)
Glossário
SMTP
Simple Mail Transfer Protocol
SRAM
static random access memory (memória estática de acesso aleatório)
SSL
Secure Sockets Layer (camada de soquete de segurança)
TCP
Transmission Control Protocol (protocolo de controle de transmissão)
TLS
Transport Layer Security (segurança da camada de transporte)
Triple DES (DES triplo)
Triple Data Encryption Standard (padrão triplo de criptografia de dados)
VPN
virtual private network (rede virtual privada)
WAP
47
Guia de fundamentos
Wireless Application Protocol (protocolo de aplicação sem fio)
XML
Extensible Markup Language (linguagem de marcação extensível)
Bluetooth é marca comercial da Bluetooth SIG. Java e Javadoc são marcas comerciais da Sun Microsystems, Inc. Microsoft,
Windows Internet Explorer, ActiveX e Windows são marcas comerciais da Microsoft Corporation. HotSync é uma marca comercial
da Palmsource, Inc. Todas as outras marcas comerciais pertencem a seus respectivos proprietários.
O smartphone BlackBerry e outros dispositivos e/ou softwares associados estão protegidos por direitos autorais, acordos
internacionais e várias patentes, incluindo uma ou mais das seguintes patentes nos EUA: 6.278.442; 6.271.605; 6.219.694;
6.075.470; 6.073.318; D445.428; D433.460; D416.256. Outras patentes estão registradas ou com registro pendente nos EUA
e em vários países. Visite o site www.rim.com/patents para obter uma lista das patentes da RIM (como definido doravante).
Esta documentação, incluindo toda a documentação incorporada por referência, como a documentação fornecida ou disponível
em www.blackberry.com/go/docs, é oferecida ou disponibilizada "NA FORMA EM QUE SE ENCONTRA" e "CONFORME A
DISPONIBILIDADE", sem condições, endossos, responsabilidades, declarações ou garantias de qualquer espécie pela Research
In Motion Limited e suas empresas afiliadas ("RIM"), e a RIM não assume nenhuma responsabilidade por erros tipográficos,
técnicos ou de outra natureza encontrados neste documento, nem por eventuais omissões. Esta documentação pode usar termos
genéricos ao descrever alguns aspectos de tecnologia da RIM com o objetivo de proteger informações confidenciais e de
propriedade da RIM, e/ou segredos comerciais da mesma. A RIM reserva-se o direito de alterar periodicamente as informações
contidas nesta documentação e não se compromete a fornecer, seja regularmente ou de qualquer outra forma, tais alterações,
atualizações, aprimoramentos ou outras inclusões à mesma.
Esta documentação pode conter referências a fontes de informação, hardware ou software, produtos ou serviços de terceiros,
incluindo componentes e conteúdo protegidos por direitos autorais e/ou sites de terceiros (coletivamente chamados de “Produtos
e Serviços de Terceiros”). A RIM não controla nem se responsabiliza por quaisquer Produtos e Serviços de Terceiros, incluindo,
sem limitações, conteúdo, precisão, conformidade com leis de direitos autorais, desempenho, compatibilidade, confiabilidade,
legalidade, decoro, links ou qualquer outro aspecto a eles relacionado. A inclusão de uma referência a Produtos e Serviços de
Terceiros nesta documentação não implica no endosso da RIM quanto a esses produtos e serviços, nem aos terceiros que os
fornecem.
SALVO NA MEDIDA EM QUE FOR ESPECIFICAMENTE PROIBIDO PELA LEGISLAÇÃO APLICÁVEL NA SUA JURISDIÇÃO, TODAS
AS CONDIÇÕES, ENDOSSOS, RESPONSABILIDADES, REPRESENTAÇÕES OU GARANTIAS DE QUALQUER ESPÉCIE,
EXPRESSAS OU IMPLÍCITAS, INCLUINDO, SEM LIMITAÇÕES, QUAISQUER CONDIÇÕES, ENDOSSOS, RESPONSABILIDADES,
REPRESENTAÇÕES OU GARANTIAS DE DURABILIDADE, ADEQUAÇÃO A UMA FINALIDADE OU USO ESPECÍFICOS,
COMERCIALIZAÇÃO, QUALIDADE DE COMERCIALIZAÇÃO, NÃO-VIOLAÇÃO, QUALIDADE SATISFATÓRIA OU
PROPRIEDADE, OU QUE RESULTEM DE UM ESTATUTO OU COSTUME, OU DE NEGOCIAÇÃO OU USO COMERCIAL, OU
RELACIONADAS À DOCUMENTAÇÃO OU AO SEU USO, OU AO DESEMPENHO OU À FALTA DE DESEMPENHO DE
QUALQUER SOFTWARE, HARDWARE, SERVIÇO OU DE QUAISQUER PRODUTOS OU SERVIÇOS DE TERCEIROS CITADOS
NESTE DOCUMENTO, FICAM AQUI EXCLUÍDAS. VOCÊ TAMBÉM PODERÁ TER OUTROS DIREITOS DEPENDENDO DO SEU
ESTADO OU PROVÍNCIA. ALGUMAS JURISDIÇÕES NÃO PERMITEM LIMITAÇÕES OU EXCLUSÕES DE GARANTIAS E
CONDIÇÕES IMPLÍCITAS. NA EXTENSÃO PERMITIDA PELA LEI, QUAISQUER GARANTIAS OU CONDIÇÕES IMPLÍCITAS
12
49
Guia de fundamentos
Aviso legal
RELACIONADAS À DOCUMENTAÇÃO NA MEDIDA EM QUE NÃO PUDEREM SER EXCLUÍDAS CONFORME ACIMA
ESTABELECIDO, MAS PUDEREM SER LIMITADAS, FICAM AQUI LIMITADAS A 90 (NOVENTA) DIAS A PARTIR DA DATA DA
AQUISIÇÃO DA DOCUMENTAÇÃO OU DO ITEM QUE SEJA OBJETO DA REIVINDICAÇÃO.
NA MÁXIMA EXTENSÃO PERMITIDA PELA LEGISLAÇÃO APLICÁVEL NA SUA JURISDIÇÃO, EM NENHUMA CIRCUNSTÂNCIA
A RIM SE RESPONSABILIZARÁ POR QUALQUER TIPO DE DANO RELACIONADO A ESTA DOCUMENTAÇÃO OU AO SEU USO,
OU AO DESEMPENHO OU FALTA DE DESEMPENHO DE QUALQUER SOFTWARE, HARDWARE, SERVIÇO OU QUAISQUER
PRODUTOS E SERVIÇOS DE TERCEIROS CITADOS NESTE DOCUMENTO, INCLUINDO, SEM LIMITAÇÕES, QUALQUER UM
DESTES DANOS: DANOS DIRETOS, RESULTANTES, EXEMPLARES, INCIDENTAIS, INDIRETOS, ESPECIAIS, PUNITIVOS OU
AGRAVADOS, DANOS POR LUCROS CESSANTES OU PERDA DE RECEITA, NÃO CUMPRIMENTO DE METAS COMERCIAIS,
INTERRUPÇÃO DOS NEGÓCIOS, PERDA DE INFORMAÇÕES COMERCIAIS, PERDA DE OPORTUNIDADES COMERCIAIS, OU
PERDA DE DADOS OU DADOS CORROMPIDOS, PROBLEMAS DE TRANSMISSÃO OU RECEBIMENTO DE DADOS, PROBLEMAS
ASSOCIADOS A APLICATIVOS USADOS JUNTO COM PRODUTOS OU SERVIÇOS DA RIM, CUSTOS DECORRENTES DE TEMPO
DE INATIVIDADE, PERDA DE USO DE PRODUTOS OU SERVIÇOS DA RIM OU DE QUALQUER PARTE DELES OU DE
QUAISQUER SERVIÇOS DE TRANSMISSÃO SEM FIO, CUSTO DE MERCADORIAS DE REPOSIÇÃO, CUSTOS DE SUPORTE,
EQUIPAMENTOS OU SERVIÇOS, CUSTO DO CAPITAL OU OUTRAS PERDAS FINANCEIRAS SEMELHANTES, SEJAM TAIS
DANOS PREVISÍVEIS OU IMPREVISÍVEIS, E MESMO QUE A RIM TENHA SIDO ALERTADA SOBRE A POSSIBILIDADE DE TAIS
DANOS.
NA MÁXIMA EXTENSÃO PERMITIDA PELA LEGISLAÇÃO APLICÁVEL NA SUA JURISDIÇÃO, A RIM NÃO TERÁ QUALQUER
OUTRO TIPO DE OBRIGAÇÃO, DEVER OU RESPONSABILIDADE, SEJA CONTRATUAL, EXTRACONTRATUAL OU DE OUTRA
FORMA RELACIONADA A VOCÊ, INCLUINDO QUALQUER RESPONSABILIDADE POR NEGLIGÊNCIA OU RESPONSABILIDADE
OBJETIVA.
AS LIMITAÇÕES, EXCLUSÕES E ISENÇÕES DE RESPONSABILIDADE AQUI ESTABELECIDAS SERÃO APLICADAS: (A)
INDEPENDENTEMENTE DA NATUREZA DA FORMA DE AÇÃO, DEMANDA OU AÇÃO REALIZADA POR VOCÊ INCLUINDO,
SEM LIMITAÇÕES, VIOLAÇÃO DE CONTRATO, NEGLIGÊNCIA, RESPONSABILIDADE EXTRACONTRATUAL OU OBJETIVA OU
QUALQUER OUTRA TEORIA LEGAL E PERMANECERÃO EM VIGOR MESMO NO CASO DE VIOLAÇÕES FUNDAMENTAIS OU
DO NÃO CUMPRIMENTO DO PRINCIPAL OBJETIVO DESTE CONTRATO OU DE QUAISQUER RECURSOS CONTIDOS NESTE
DOCUMENTO; E (B) À RIM E SUAS AFILIADAS, SEUS SUCESSORES, PROCURADORES, AGENTES, FORNECEDORES
(INCLUINDO PROVEDORES DE SERVIÇOS DE TRANSMISSÃO SEM FIO), DISTRIBUIDORES AUTORIZADOS DA RIM
(INCLUINDO TAMBÉM PROVEDORES DE SERVIÇOS DE TRANSMISSÃO SEM FIO) E SEUS RESPECTIVOS DIRETORES,
FUNCIONÁRIOS E PRESTADORES DE SERVIÇO INDEPENDENTES.
ALÉM DAS LIMITAÇÕES E EXCLUSÕES ACIMA ESTABELECIDAS, EM NENHUMA CIRCUNSTÂNCIA OS DIRETORES,
FUNCIONÁRIOS, AGENTES, DISTRIBUIDORES, FORNECEDORES, PRESTADORES DE SERVIÇO INDEPENDENTES DA RIM OU
DE QUALQUER UMA DE SUAS AFILIADAS TERÃO QUALQUER TIPO DE RESPONSABILIDADE RESULTANTE DA
DOCUMENTAÇÃO OU A ELA RELACIONADA.
Antes de assinar, instalar ou usar quaisquer Produtos e Serviços de Terceiros, é sua responsabilidade garantir que o provedor de
serviços de transmissão sem fio concorde em oferecer suporte a todos os recursos. Alguns provedores de serviços de transmissão
sem fio talvez não ofereçam funcionalidade de navegação na Internet com uma assinatura ao BlackBerry® Internet Service.
Consulte sua operadora para obter informações sobre disponibilidade, recursos, e planos de roaming e de serviço. A instalação
ou uso de Produtos e Serviços de Terceiros com os produtos e serviços da RIM podem exigir uma ou mais licenças de patente,
marca comercial ou direitos autorais ou outras licenças a fim de evitar a infração ou violação dos direitos de terceiros. É sua total
responsabilidade determinar se Produtos e Serviços de Terceiros devem ser utilizados e se é necessário obter licenças de terceiros
para tanto. Em caso afirmativo, você será o responsável pela aquisição das mesmas. Você não deverá instalar ou usar Produtos
50
Guia de fundamentos
Aviso legal
e Serviços de Terceiros até que todas as licenças necessárias tenham sido obtidas. Quaisquer Produtos e Serviços de Terceiros
fornecidos com produtos e serviços da RIM são fornecidos como uma conveniência para você e "NA FORMA EM QUE SE
ENCONTRAM", sem condições, endossos, responsabilidades, declarações ou garantias de qualquer espécie, explícitas ou
implícitas, por parte da RIM, e a RIM não assume qualquer tipo de responsabilidade em relação a eles. O uso que você faz dos
Produtos e Serviços de Terceiros será regido e estará sujeito à sua aceitação dos termos das licenças individuais e de outros
contratos aplicáveis com terceiros, a menos que sejam expressamente incluídos em uma licença ou outro contrato com a RIM.
Certos recursos descritos nesta documentação requerem uma versão mínima do BlackBerry® Enterprise Server, BlackBerry®
Desktop Software e/ou BlackBerry® Device Software.
Os termos de uso de qualquer produto ou serviço da RIM são estipulados em uma licença individual ou em outro contrato com
a RIM aplicável a eles. NENHUM TERMO DESTA DOCUMENTAÇÃO DESTINA-SE A SUBSTITUIR CONTRATOS OU GARANTIAS
EXPRESSAS POR ESCRITO FORNECIDAS PELA RIM PARA PARTES DE QUALQUER PRODUTO OU SERVIÇO DA RIM QUE NÃO
SEJA ESTA DOCUMENTAÇÃO.
Research In Motion Limited
295 Phillip Street
Waterloo, ON N2L 3W8
Canadá
Research In Motion UK Limited
Centrum House
36 Station Road
Egham, Surrey TW20 9LF
Reino Unido
Publicado no Canadá
51
Loading...
+ hidden pages
You need points to download manuals.
1 point = 1 manual.
You can buy points or you can get point for every manual you upload.