Android Studio – Como incluir bibliotecas nativas .so no projeto (How to include *.so library in Android Studio?)

android studio

Adicionando .so Libary no Android Studio:

  1. Criar a pasta “jniLibs” dentro de “src/main/”
  2. Coloque todas suas .so libraries dentro da pasta: “src/main/jniLibs”
  3. A estrutuda da pasta deve ficar da seguinte forma,
    |–app:
    |–|–src:
    |–|–|–main
    |–|–|–|–jniLibs
    |–|–|–|–|–armeabi
    |–|–|–|–|–|–.so Files
  4. No arquivo build.gradle modifique a linha de compilação de bibliotecas para ficar da seguinte maneira:
    compile fileTree(dir: ‘libs’, include: [‘.jar’,’.so’])
  5. Não precisa de nenhum codigo extra apenas clique em sync e rode sua aplicação.

Android Studio, Gradle – Adicionando kSOAP2 como dependência (Adding kSOAP dependency to Gradle project)

android studio

Mais uma para a coleção de configuração de projetos no Android Studio. A facilidade do Gradle para incluir dependências é incrível, mais tem algumas regrinhas para aprender. Quando se trata de dependências do Android todas elas já estão lá bem acessíveis e com uma interface gráfica para facilitar a inclusão no ‘build.gradle’, porem quando vamos incluir uma dependência de outro repositório devemos configurar algumas coisas. O Gradle utiliza o Maven para facilitar essa inclusão, iremos configurar a inclusão da biblioteca ksoap2-android.

1 – Vamos abrir o ‘build.gradle’ do PROJETO, ele deve estar assim: Continue reading

Android Studio – Importanto a biblioteca Simple-Xml (Importing Simple-Xml library)

JavaXMLSimple-XML é uma biblioteca de serialização e configuração XML de alto desempenho para Java. Seu objetivo é proporcionar um mapeamento XML que permite o rápido desenvolvimento em XML. Essa biblioteca favorece ao desenvolvimento de sistemas de XML com o mínimo esforço e redução de erros. Dispõe de serialização de objeto completo e desserialização, mantendo cada referência encontrada. Veja mais como ela funciona e como utilzala em seu site: http://simple.sourceforge.net/home.php

Ao importarmos a biblioteca no Android Studio da seguinte maneira:

compile ‘org.simpleframework:simple-xml:2.7.1’

Acaba gerando os seguintes ERROS ao compilar o projeto:

=====================================
Warning:Dependency xpp3:xpp3:1.1.3.3 is ignored for debug as it may be conflicting with the internal version provided by Android.
In case of problem, please repackage it with jarjar to change the class packages
Warning:Dependency xpp3:xpp3:1.1.3.3 is ignored for release as it may be conflicting with the internal version provided by Android.
In case of problem, please repackage it with jarjar to change the class packages
=====================================
Error:Execution failed for task ‘:app:preDexDebug’.
> com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process ‘command ‘/usr/lib/jvm/java/bin/java” finished with non-zero exit value 1
===================================
java.lang.NoClassDefFoundError: org.simpleframework.xml.core.Persister
=====================================

As Libraries stax-api e xpp3 entram em conflito com as classes do Android. As classes destes .jars parecem estar incluídas no Android.
Para solucionar devemos implementar as dependências da seguinte maneira: Continue reading

Android – Adeus launcher drawables, olá mipmaps!

mipmaps mipmap

No ultimo update do Android Studio para versão 1.1, o uso das pastas mipmaps se tornaram padrão.

O que mudou foi que as pastas para os lauchers drawables antes com este formato:

res/
    drawable-mdpi/ic_launcher.png (48x48 pixels)
    drawable-hdpi/ic_launcher.png (72x72)
    drawable-xhdpi/ic_launcher.png (96x96)
    drawable-xxhdpi/ic_launcher.png (144x144)
    drawable-xxxhdpi/ic_launcher.png (192x192)

Foram alteradas para mipmaps, deixando a nomenclatura drawable apenas para arquivos de PNG, JPEG, GIF ou arquivos de imagem, 9-Patch, e arquivos XML que descrevem formas Drawable ou objetos Drawable que contêm vários estados (normal, pressionados, ou focalizado). Veja o tipo de recurso Drawable.

Então ficamos com a seguinte estrutura para mipmaps: Continue reading

Android – Como usar medidas DP, SP programaticamente (Use DIP, SP metrics programmatically)

Android minimizar

As unidades de medidas estão para facilitar nossa programação para diferentes telas, para definir no XML é bem simples, basta inserir a medida e depois a unidade (android:layout_width=”100dp”), porem quando vamos fazer programaticamente, por padrão a medida aceita é dada por PX (pixel).

O objectivo é o de calcular o número de pixels de acordo com um determinado valor na unidade escolhida. A baixo transformamos o valor de 20dp na quantidade de PX equivalente.

TextView tv0 = new TextView(this);
int px = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 20, getResources().getDisplayMetrics());
tv0.setWidth(px);

Se você quiser as métricas em SP, por exemplo, você só precisa mudar o TypedValue de TypedValue.COMPLEX_UNIT_DIP para TypedValue.COMPLEX_UNIT_SP ou qualquer outra métrica que você deseja usar.

Lembre-se de utilizar corretamente as unidades (veja aqui).

Android Studio, Gradle – Adicionar dependências no projeto usando o Maven (Maven Dependencies with Android Studio / Gradle)

android studio

Mais uma para a coleção de configuração de projetos no Android Studio. A facilidade do Gradle para incluir dependências é incrível, mais tem algumas regrinhas para aprender. Quando se trata de dependências do Android todas elas já estão lá bem acessíveis e com uma interface gráfica para facilitar a inclusão no ‘build.gradle’, porem quando vamos incluir uma dependência de outro repositório devemos configurar algumas coisas. O Gradle utiliza o Maven para facilitar essa inclusão, iremos configurar a inclusão da biblioteca ksoap2-android.

1 – Vamos abrir o ‘build.gradle’ do PROJETO, ele deve estar assim: Continue reading

Android Studio, Gradle – Adicionando uma biblioteca externa ao projeto (Gradle adding external library to a project)

android studioEste é minha primeira publicação sobre o Android Studio, ao utiliza-lo tive uma dificuldade para aprender o novo modo de tratar com as dependências utilizando o Gradle.

O Android Studio trabalha com um projeto principal e dentro dele seus módulos, quem faz a associação entre os módulos é o gradle, ao criarmos um app criamos um modulo principal, para adicionar uma biblioteca ao projeto devemos importar um novo modulo e nas configurações do modulo principal definir o outro modulo como biblioteca, porem ao importarmos esse modulo ele gera uma cópia na pasta do projeto, mas o que proponho nesta publicação é utilizar o projeto externo sem gerar uma cópia no projeto principal, assim não teremos ‘n’ cópias circulando por ai.

Para explicar melhor segue uma estrutura de projeto: Continue reading

Android – Como não fechar um AlertDialog quando um botão for selecionado. (How to prevent a dialog from closing when a button is clicked)


AlertDialog

 

No Android quando criamos um AlertDialog e definimos os botões, Possitive Button ou Negative Button, por padrão ao clicar neles a caixa de dialogo automaticamente é fechada, porem nem sempre queremos esta ação, as vezes queremos validar um EditText ou algo naquele dialogo, para não realizar duas interações como fechar o dialogo e abrir um outro informando o erro, vamos precisar cancelar a ação e inclui-la no momento desejado. Veremos abaixo como cancelar o evento que fecha o AlertDialog quando um botão é selecionado. Continue reading

Android – Utilizando o item do menu showAsAction com appcompat library v7

 

Atualmente para criarmos uma actionbar como mostra na figura acima precisamos de uma api minima v11, atravéz da appcompat libary v7 podemos utilizar a action bar em versões inferiores do android. O item do menu que nos permite incluir o icone na actionbar é o showAsAction com o valor “ifRoom” (recomendado pelo Android).

Tendo como principio que nosso projeto já tenha a appcompat libary v7, para utilizar do recurso deveremos fazer realizar os seguintes passos: Continue reading