elisa

This is an old revision of the document!


name=ELISA | version=0.1 | accountable=Fulano | depdency= [[ClientLib]]

ELISA

A Energy-aware LIbrary of Services for Andrioid (ELISA) é uma biblioteca multi-thread para aplicações Android, que consiste de um par de serviços Android, o LocationService e o ConnectivityService e um conjunto de Broadcast Receivers (Android) que conjuntamente registram a posição geográfica do nó (p.ex. usando GPS), e realizam o envio de mensagens da aplicação carregando a posição corrente do nó,. ELISA verifica o nível da bateria do dispositivo a cada T minutos (usando o Android AlarmManager) e de acordo com a classsificacão em um de três níveis de energia - alta, média e baixa - define as frequências da leitura de posição e do envio dos dados, de modo a minimizar o consumo de energia do dispositivo. O ConnectivityService utiliza a ClientLib para bufferizacão, envio e recebimento das mensagens para o SDDL Core.

Explicar aqui como utilizar. Quais são as principais interfaces, elementos etc. Dar um rápido exemplo de como utilizar. Se possível e aplicável fazer um breve “hello world”.

Hello.java
public class Hello {
   public static void main(String args[]) {
        // Teste
        double x = 2;
   }
}
  • getService() Returns Service
  • myMethod() Returns Service

ELISA consiste de dois Android Services, que executam em treads independentes (vide Figura)

O LocationService periodicamente verifica a posição do dispostivo (usando o Location Manager do Android), e caso esta tenha mudado, gera o broadcast NEW_LOCATION. Possui também um Broadcast Receiver, CHG_LOCATION_INTERVAL, que escuta por broadcasts do Battery Receiver e modifica o intervalo de polling da localização a depender do nível de bateria.

O Connection Service gerencia uma lista de mensagens (MsgList), que acumula mensagens a serem enviadas para o Gateway através da ClientLib. Possui um Broadcast Receiver que ouve pelos broadcasts: NEW_LOCATION, NEW_MSG e CHG_SEND_MSG_INTERVAL. Para o primeiro tipo de broadcast, insere uma nova coordenada geografica na MsgList. Ao receber o broadcast NEW_MSG - de qualquer outra componente da app mobile - adiciona a mensagem na MsgLIst para envio pela ClientLib. Quando recebe o terceiro tipo de broadcast, aumenta ou diminui o sendAllMsgInterval, a periodicidade de envio de todas as mensagens acumuladas em MsgList através da ClientLib. Ao ser notificado do recebimento de uma nova mensagem pela ClientLib, o callback onNewMsgReceived() gera um Broadcast NEW_MSG_RECVD, que deve ser captado e processado por alguma componente da mobile app.

Além disso, ELISA usa o AlarmManager do Android para periodicamente gerar o Intent (CHECK_BATTERY_LEVEL) para verificar o nível de energia, e classifica-lo em “LOW”, “MEDIUM” ou “HIGH”) pelo Battery Receiver. Já o PowerReceiver verifica se o dispositivo está conectado a uma fonte de energia ou se está sendo alimentado pela bateria.

Detalhes de implementação, por exemplo, descrevendo as principais rotinas e os seus fluxos de execução, por onde o desenvolvedor deveria olhar para modificar esse componente.

Bibtex/PDF entry dos papers sobre esse componente.

  • elisa.1408653105.txt.gz
  • Last modified: 2017/07/21 02:50
  • (external edit)