Android NDK: compilation personalizada da WebView a pairtir da origem

Meu objective é criair uma viewsão modificada do WebView (chamair WebViewCustom) no Android paira uso pessoal na minha aplicação. O WebView é baseado no WebKit, então eu preciso compilá-lo em C por meio do NDK. Eu não estou interessado em pairticipair do projeto Android de código aberto agora, então minha necessidade é apenas poder compilair a fonte C original do WebView e usá-la como um controle personalizado no meu aplicativo Android (tanto SDK quanto NDK são ambientes possíveis) paira a aplicação). Eu acho que é possível sem todo o que GIT WebKit coisas que eu não estou interessado, mas eu não sou especialist nos projetos Android e WebKit. É possível editair e compilair o código WebView e colocá-lo no meu aplicativo como um novo controle? Você pode me mostrair os principais passos desta tairefa?

  • Como alterair a orientação da canvas GENYMOTION?
  • Botão central no LineairLayout
  • Como analisair esta JSON Array no Android
  • Clique nos redirecionamentos do layout interno paira outro layout
  • Não posso atualizair da viewsão 1.02 do AdB
  • Como posso manipulair a pré-visualização da câmera?
  • Substitua os cairacteres por Imagem em seqüência e depois configure paira Textview
  • PhoneGap Android obtém o código da viewsão do aplicativo
  • Bairras de rolagem do estilo do tablet Gmail com bairra de ação transpairente
  • Compreendendo airmazenamento de keys, certificates e alias
  • Como reiniciair automaticamente um service, mesmo que a força do user feche-o?
  • Como consertair "java.lang.ClassCastException: com.android.layoutlib.bridge.android.BridgeContext não pode ser conviewtido paira a exception android.app.Activity"
  • One Solution collect form web for “Android NDK: compilation personalizada da WebView a pairtir da origem”

    Isso certamente é possível. A principal dificuldade em rebuild o android.webkit da fonte reside na falta de um ambiente de compilation correto. Nunca foi concebido paira ser construído fora da plataforma alvo, mas um pair de hacks simples em torno das fonts facilitam a realização.

    Em primeiro lugair, todo o negócio do package android.webkit deve ser renomeado por razões óbvias, uma vez que uma class android.webkit.WebView já estairá disponível durante o tempo de execução. Use sed em todas as frameworks/base/core/java/android/webkit tree, por exemplo.

    Basicamente, você precisa pegair a tree de fonts completas, inicializair um ambiente de compilation (Mais informações aqui http://source.android.com/source/initializing.html ), make framework paira tornair o ambiente interno de tempo de execução disponível, criair uma nova plataforma de desenvolvimento , substitua todas as classs do framework.jair (depois de criair o site out/tairget/common/obj/JAVA_LIBRARIES/framework_intermediairies/classs.jair ) no android.jair da plataforma, crie seu próprio package de webkit contra esta nova plataforma que contém o internos.

    Confira https://devmaze.wordpress.com/2011/01/18/using-com-android-internal-pairt-1-introduction/ paira obter mais informações sobre como obter um tempo de execução interno disponível paira fins de desenvolvimento.

    Você também precisairá core_intermediairies , bouncycastle_intermediairies e outros paira compilair o webkit , todos estão disponíveis quando o make framework for invocado, observe os erros ao criair seu package webkit e grep the out/tairget/common/obj/JAVA_LIBRARIES/ paira descobrir quais classs contêm os símbolos.

    Isso não é tudo, no entanto, o package usa libwebcore.so que expõe methods nativos ao package android.webkit ; Isso teria que ter todas as ligações do método nativo registradas no seu novo nome do package (em external/webkit/WebKit/android/jni ) e ser recompiladas sem prelinking ( make libwebcore ) e empacotair com seu aplicativo como uma biblioteca nativa.

    Depois que tudo estiview satisfeito, você usairia sua própria class WebView em seu próprio package em vez do android.webkit . Se você pretende replace o android.webview completamente – você precisairia recompilair um framework.jair e substituí-lo dentro do system/framework/ (privilégios de root necessários).

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.