2017-08-16 4 views
0

Le projet sur lequel je travaille utilise v8 JavaScript Engine. Nous intégrons v8 directement dans notre bibliothèque native (libfoo-jni.so) pour avoir un contrôle total sur le moteur v8. Cependant, cela rend la taille du fichier trop grande pour certaines applications. Nous sommes donc invités à utiliser System v8. J'ai été incapable de trouver les en-têtes v8 dans NDK platforms/android-Z/arch-arm/usr/include.Comment lier avec android system v8?

Y at-il une possibilité de lien avec le système V8 qui est utilisé pour android WebView derrière la scène? Il devrait fonctionner sans enracinement et pas pour les fabricants d'appareils Android qui ont accès à la plate-forme Android sur l'appareil.

Répondre

2

Non, ce n'est pas pris en charge. Sur les anciennes versions, il est possible de le faire même s'il n'est pas officiellement supporté, mais dans les versions récentes d'Android, la plateforme refusera de charger les bibliothèques externes à l'exception de celles qui sont supportées. De plus, il n'y a aucune garantie pour l'API/ABI du moteur javascript fourni - dans les anciennes versions, la plate-forme pourrait même être construite avec v8 ou JavaScriptCore. Tout fabricant de périphérique peut utiliser une version modifiée différente.

+0

pourriez-vous s'il vous plaît fournir un lien vers "la plate-forme refusera de charger les bibliothèques externes à l'exception de ceux qui sont supportés" (NDK notes de publication ou post développeur Google) pour connaître exactement la limitation? – 4ntoine

+0

Mise à jour du post avec un lien vers les documents pertinents expliquant ce problème. – mstorsjo

+0

merci, j'ai accepté votre réponse. Toutefois, s'il y a des astuces, n'hésitez pas à partager la solution avec nous ici (même si cela fonctionne avec certaines limitations comme la version Android) – 4ntoine