Desde a versão 4.4 o Android permite fazer uma coisa realmente útil: depurar seu aplicativo WebView (leia-se Cordova e afins) usando o próprio Chrome.
O YeAPF desde a versão 0.8.59 inclui o adb-debug que permite acompanhar a saida do console em tempo real. Isso ajuda muito mas tem vezes que o que realmente precisamos é um passo-a-passo para entendermos como que -de fato- o código se comporta. É ai que a depuração remota entra.
Ela não funciona de fábrica, e nem poderia, já que libera todo seu aplicativo na tela de qualquer Chrome.
Para ativar este recurso, é preciso modificar o MainActivity.java. Então o primeiro passo é acha-lo
$ cd meuAplicativoCordova meuAplicativoCordova$ find . -type f -name "MainActivity.java" ./platforms/android/app/src/main/java/br/com/inovacaosistemas/meuAplicativoCordova/MainActivity.java
Uma vez achado, precisamos modificar este arquivo.
Na seção (não sessão, isso é outra coisa) dos imports acrescente os seguintes:
import android.os.Build; import android.util.Log; import android.content.pm.ApplicationInfo; import android.webkit.WebView;
Depois modifique o código do onCreate() assim:
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT){ if(0 != (getApplicationInfo().flags = ApplicationInfo.FLAG_DEBUGGABLE)){ Log.i("MeuAplicativoCordova", "Habilitando depuração Web"); WebView.setWebContentsDebuggingEnabled(true); } }
Compile, instale e rode no seu dispositivo
meuAplicativoCordova$ cordova run android
Agora abra seu chrome e navegue no inspetor de dispositivos
chrome://inspect/#devices
Escolha seu aplicativo (pode que vc tenha vários, ou quem sabe com sorte alguém tenha esquecido ligado…rs) e depure como se fosse local.
Qual a vantagem disso tudo? Bom, por mais que webView do KitKat em diante seja Chrome, ele se comporta diferente em um dispositivo e em outro. Fora que há recursos que -mesmo emulados- se comportarão de forma muito diferente no dispositivo real (Câmera, GPS, Sensor de movimento, conectividade, etc)
Já verei de fazer um script que habilite/desabilite isso sem necessidade de tanta volta.
Por enquanto, é o que há