Inclusão no Projeto
Para utilizar a CliSiTef em aplicações Android, é necessário incluir as seguintes bibliotecas no projeto de construção da aplicação:
- clisitef-android.jar no classpath para o processo de compilação.
- Bibliotecas nativas (libclisitef.so e demais binários .so), compiladas para cada plataforma suportada, para inclusão no pacote apk.
O núcleo da CliSiTef é a biblioteca nativa libclisitef.so. A Automação a acessa através da componente Java
incluída no arquivo ‘clisitef-android.jar’ que essencialmente é composta por uma camada JNI para acesso às funções
da libclisitef.so e um módulo de gerenciamento do meio de comunicação com o pinpad (USB, Bluetooth ou interface interna)
.
Importante: caso os desenvolvedores estejam usando a IDE do Eclipse ou Android Studio, vale ressaltar que as bibliotecas dinâmicas .so devem ficar na pasta correspondente à arquitetura. Além disso, os binários possuem assinatura criptográfica que é validada em tempo de execução. Então elas não podem passar pelo processo de strip, já que isso pode alterar o binário. No Android Studio, é necessário explicitamente desativar o strip definindo a opção android.packagingOptions.doNoStrip no arquivo build.gradle:
Lembrando que após a inclusão da opção, é necessário realizar um Sync e um Rebuild no projeto.
A ausência dessa opção (ou equivalente em outra IDE)
causará erro de assinatura em tempo de execução com
uma mensagem semelhante a:
A libclisitef.so possui compilações para as seguintes plataformas: armeabi, armeabi-v7a, arm64-v8a, mips, mips64, x86 e x86_64. Os desenvolvedores devem copiar os binários de cada plataforma para a localização correspondente da IDE utilizada. No Eclipse, o .so de cada plataforma deve ser colocado no diretório ./libs/<plataforma>
. No Android Studio, o diretório correspondente normalmente se encontra em ./<projeto>
/src/main/jniLibs/<plataforma>
. Exemplos:
Eclipse: binários .so da plataforma armeabi-v7a devem ser copiados para ./libs/armeabi-v7a do projeto.
Android Studio: binários .so da plataforma armeabi devem ser copiados para
Independente da IDE, os binários .so da plataforma <plat>
devem estar presentes no diretório ./lib/<plat>
do arquivo .apk final.
Já o arquivo ‘clisitef-android.jar’, que é independente de plataforma, deve ser incluído no classpath do projeto.
Acompanha também javadoc do pacote, que pode ser incorporada à ferramenta de desenvolvimento, de forma a facilitar a indicação dos métodos e parâmetros durante seu desenvolvimento.