2017-08-16 15 views
0

私が働いているプロジェクトは、v8 JavaScriptエンジンを使用しています。 v8エンジンを完全に制御できるように、私たちのネイティブライブラリ(libfoo-jni.so)にv8を埋め込みました。しかし、一部のアプリではファイルサイズが大きすぎるため、システムv8を使用するように求められます。私はNDKのplatforms/android-Z/arch-arm/usr/includeでv8ヘッダーを見つけることができませんでした。android system v8とリンクするには?

アンドロイドWebViewの後ろに使用されているシステムV8にリンクする可能性はありますか?それは根付きなしで動作し、デバイスのAndroidプラットフォームにアクセスできるAndroidデバイスメーカーでは動作しません。

答えて

2

いいえ、これはサポートされていません。

古いバージョンでは、正式にサポートされていないにもかかわらず、実行できますが、最近のAndroidバージョンでは、プラットフォームはサポートされているライブラリ以外の外部ライブラリの読み込みを拒否します。 (詳細についてはAndroid 7.0 Behavior Changesを参照してください)

さらに、バンドルされたjavascriptエンジンのAPI/ABIは保証されていません。古いバージョンでは、プラットフォームはv8またはJavaScriptCoreで構築することもできます。いずれのデバイス製造業者も異なる修正バージョンを使用している可能性があります。

+0

制限事項を正確に知るために、「サポートされているライブラリ以外の外部ライブラリの読み込みを拒否する」(NDKリリースノートまたはGoogle開発者向けブログ記事)へのリンクを提供してください。 – 4ntoine

+0

この問題を説明している関連ドキュメントへのリンクを含む投稿を更新しました。 – mstorsjo

+0

ありがとう、私はあなたの答えを受け入れました。しかし、何かのトリックがあれば、ここで私たちと解決策を共有してください。(たとえそれがアンドロイド版のようないくつかの制限で働いていても) – 4ntoine

関連する問題