Blackberry Java Development Environment User Manual [pt]

BlackBerry Java Development Environment
Versão: 4.7.0
Guia de fundamentos
SWDT499912-499912-1212114256-012
Conteúdo
1 Compreendendo 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
APIs Java MEe Java para BlackBerry............................................................................................................................................. 7
Suporte a APIs Java padrão................................................................................................................................................... 7
Suporte a extensões de API Java.......................................................................................................................................... 8
Soluções BlackBerry........................................................................................................................................................................ 9
BlackBerry Enterprise Solution............................................................................................................................................. 9
BlackBerry Internet Service................................................................................................................................................... 9
BlackBerry MDS...................................................................................................................................................................... 9
2 Projeto do BlackBerry Java Application................................................................................................................................... 11
Aplicativos independentes............................................................................................................................................................. 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
Aplicativos MIDlet........................................................................................................................................................................... 11
Aplicativos CLDC............................................................................................................................................................................. 12
Controle de API e assinatura de código....................................................................................................................................... 13
Modelagem de objeto..................................................................................................................................................................... 13
Multithreading................................................................................................................................................................................. 14
Prática recomendada: Usando multithreading.................................................................................................................. 14
Práticas recomendadas para escrever de forma eficiente um BlackBerry Java Application................................................. 14
Prática recomendada: Escrevendo códigos eficientes....................................................................................................... 14
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
Economizando recursos.................................................................................................................................................................. 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
APIs File Connection.............................................................................................................................................................. 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.................................................................................................................................................................................... 37
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
BlackBerry Smartphone Simulator....................................................................................................................................... 42
BlackBerry MDS Simulator.................................................................................................................................................... 43
BlackBerry Email Simulator................................................................................................................................................... 43
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
11 Glossário....................................................................................................................................................................................... 46
12 Aviso legal..................................................................................................................................................................................... 49
Guia de fundamentos

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.
API Descrição
APIs de interface do usuário Use 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/S Use estas APIS para estabelecer conexões de rede e ler ou gravar dados em um
Ouvintes de eventos Use os Ouvintes de eventos para responder a eventos iniciados pelo sistema ou
APIs de integração de aplicativos Use 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
API Descrição
Utilitários adicionais Use 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 e­mail 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
Vantagens Desvantagens

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.
Vantagens Desvantagens
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
Vantagens Desvantagens
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

Prática recomendada: Escrevendo códigos eficientes

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) .
Exemplo de código
String str = "abc"; String str = "found " + n + " items";
Escrevendo loops eficientes
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 ] ).
Exemplo de código
public synchronized StringBuffer append(Object obj) { if (obj instanceof StringBuffer) { StringBuffer sb = (StringBuffer)obj; net.rim.device.api.util.StringUtilities.append( this, sb, 0, sb ) return this; } return append(String.valueOf(obj)); }
Evitando retornar null
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ória Descrição
Flash O 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. SRAM A 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 interface Descriçã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 e­mail 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 Enterprise Server.

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 User Guide (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 Java Development 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)
Glossário
48
Guia de fundamentos

Aviso legal

Aviso legal
©2008 Research In Motion Limited. Todos os direitos reservados. BlackBerry®, RIM®, Research In Motion®, SureType®, SurePress™ e marcas comerciais, nomes e logotipos relacionados são propriedade da Research In Motion Limited e estão registrados e/ou são usados nos EUA e em vários países.
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...