Cómo compilar Webkit desde el código fuente de Android
pero sin el código fuente necesitas usar ndk, por ejemplo, lo estoy haciendo en xoom Custom webkit.
Aunque ndk proporciona pocas bibliotecas y ningún skia, es bueno tener mapas de bits, de modo que la velocidad de visualización será más lenta y no habrá una aceleración brusca, pero no es imposible.
Webkit requiere bibliotecas de terceros, freetype, png, jpeg, sqlite3, etc. Aunque estas bibliotecas están incluidas en el código fuente de Android, el ndk no las abre,
por lo que todas las bibliotecas de terceros, freetype, png, jpeg, sqlite3, cairo, curl, fontconfig, pixman, iconv, Se requieren etc. Compílelo en una biblioteca estática a través de ndk y luego vincúlelo a la biblioteca dinámica final.
Se eligió Iconv porque icu es demasiado grande y no se requieren varios idiomas; se eligió cairo+pixman porque skia no es muy portátil y cairo admite múltiples backends.
La compilación de bibliotecas de terceros requiere el uso de autoconfig. ndk tiene un documento que describe cómo generar una cadena de compilación cruzada y luego usar esta herramienta en
Sin embargo, Android usa una biblioteca biónica, por lo que hay muy pocas cosas que deben modificarse. Algunas bibliotecas no pueden generar programas de prueba, pero no hay ningún problema con las bibliotecas estáticas.
Utilizando la cadena de herramientas cruzada generada por ndk, junto con el sistema de compilación cmake que viene con webkit, no hay problema en generar bibliotecas dinámicas para webkit.
Por supuesto, esto es. El núcleo de webkit, algunas partes del código están relacionadas con ciertas plataformas y deben modificarse, pero siempre que esté basado en la plataforma Linux, es fácil de modificar.
Primero trasplanté webkit a Linux y luego a Android, por lo que hubo relativamente pocas modificaciones.
Pero la mayoría de las modificaciones se realizaron en WebCore/plataforma, después de seleccionar la plataforma. bibliotecas relacionadas, configúrelas y modifíquelas en consecuencia. Esto se utiliza principalmente para soportar y utilizar WebCore, por lo que cuando lo que se necesita no es el navegador completo, sino solo la visualización normal de páginas web, aún se puede escribir de una manera relativamente simple.