默认android浏览器的浏览器插件

默认android浏览器的浏览器插件,第1张

概述我想开发一个默认的Android浏览器插件,它将指定谷歌搜索结果中的网站类别.Android浏览器不明确显示插件架构.我想知道如何做到这一点以及任何与之相关的参考资料.谢谢,解决方法:我最近尝试制作一个Android插件并在SO上找到了很多问题,但没有太多详细的答案,所以我想我会在这里分

我想开发一个默认的Android浏览器插件,它将指定谷歌搜索结果中的网站类别. AndroID浏览器不明确显示插件架构.我想知道如何做到这一点以及任何与之相关的参考资料.

谢谢,

解决方法:

我最近尝试制作一个AndroID插件并在SO上找到了很多问题,但没有太多详细的答案,所以我想我会在这里分享我的研究,即使这个问题已经很老了.我不确定插件是否真的是你想要在这里做的,因为你可以使用谷歌的JsON / ATOM自定义搜索API并解析它,但尽管如此,我还提供了有关如何在AndroID上运行插件的详细信息.我希望它对其他人有用.

如果你看这里:PluginManager.java你会看到以下几行:

// Only plugin matches one of the signatures in the List can be loaded// insIDe the WebVIEw processprivate static final String SIGNATURE_1 = "308204c5..."

这里使用的签名是Adobe Flash插件的签名(现在已经被Adobe删除了.)

在这里你会看到:

if (SystemPropertIEs.getBoolean("ro.secure", false)) {            boolean signatureMatch = false;            for (Signature signature : signatures) {                for (int i = 0; i < SIGNATURES.length; i++) {                    if (SIGNATURES[i].equals(signature)) {                        signatureMatch = true;                        break;                    }                }            }            if (!signatureMatch) {                return false;            }        }

这意味着如果ro.secure = 0则它不会检查签名 – 否则它只允许使用flash插件.
ro.secure是一个构建属性,如果您拥有设备的root权限,或者您有一个开发构建(输入adb shell getprop ro.secure以查找您拥有的内容),则可以设置该属性.您可以研究如何在必要时进行更改.我使用的是高通Snapdragon MDP8960,它是开发板,已经有ro.secure = 0.要让您的插件包含在AndroID中,您必须与负责人交谈 – 不确定目前这是多么可行.

现在编写一个插件 – 你可以在androID sourcetree中找到一个名为SamplebrowserPlugin的例子(确保你有一个64位的linux机器,如果你想构建它 – 从源树根类型make make SamplebrowserPlugin.你可能需要设置首先使用午餐构建配置,你可以在androID源码树网站上找到说明)

我实际上从android source on github获取了我需要的源代码并且创建了源代码的NDK构建,因为我比修改androID构建脚本更熟悉如何做到这一点.它也比下载整个安卓树快得多 – 你可以通过查看AndroID.mk中包含的内容来查看下载内容(见下文).

基本上,我从设备中提取了我需要的共享对象库,以确保我的插件兼容.它们位于我的设备上的/ system / lib中:(例如,从您希望存储它们的目录中键入adb pull /system/libnativehelper.so等)
得到以下内容:

libnativehelper.solibandroID.solibutils.solibcutils.solibEGL.solibGLESv2.solibskia.so

将它们放在SO_liB_PATH指向AndroID.mk的位置(参见下文并根据需要更改路径).
然后在安装NDK sdk之后,您应该能够使用以下构建脚本 – 不需要64位机器 – (您可以安装winbash,使用cygwin或linux虚拟机,例如Oracle VM VirtualBox:

(将这些文件放在C:/ Path / browserPlugin / jni /中,并确保ndk-build命令在您的路径上)
(如果你在linux上从ndk-build.cmd中删除.cmd)

build.sh:

#!/bin/bashecho -e "Mode\t\t: DeBUG"OPTIM=deBUG### ---------------- Generic Build Command ---------------- # run NDK buildndk-build.cmd \    -d \    -B \    NDK_DEBUG=1 \    NDK_PROJECT_PATH=C:/Path/browserPlugin/jni \    NDK_APPliCATION_MK=C:/Path/browserPlugin/jni/Application.mk \    NDK_MODulE_PATH=C:/Path/browserPlugin/jni \    NDK_APP_OUT=C:/Path/browserPlugin/jnI/Out/ \    APP_BUILD_SCRIPT=C:/Path/browserPlugin/jni/AndroID.mk \    APP_OPTIM=$OPTIMcp C:/Path/browserPlugin/jnI/Out/local/armeabi/libsampleplugin.so C:/Path/browserPlugin/libs/armeabi/.echo "copIEd libsampleplugin.so into PROJECT_ROOT/libs dir"

AndroID.mk:

LOCAL_PATH:= $(call my-dir)include $(CLEAR_VARS)LOCAL_SRC_fileS := \    main.cpp \    Pluginobject.cpp \    RenderingThread.cpp \    animation/AnimationPlugin.cpp \    animation/AnimationThread.cpp \    audio/AudioPlugin.cpp \    background/Backgroundplugin.cpp \    form/FormPlugin.cpp \    navigation/NavigationPlugin.cpp \    paint/PaintPlugin.cpp \    vIDeo/VIDeoPlugin.cpp \    jni-brIDge.cpp \WEBCORE_PATH := C:/Path/AndroIDbrowserPlugin/webkit/Source/WebCoreLOCAL_C_INCLUDES += \    $(JNI_H_INCLUDE) \    $(LOCAL_PATH) \    $(LOCAL_PATH)/animation \    $(LOCAL_PATH)/audio \    $(LOCAL_PATH)/background \    $(LOCAL_PATH)/form \    $(LOCAL_PATH)/navigation \    $(LOCAL_PATH)/paint \    $(LOCAL_PATH)/vIDeo \    $(WEBCORE_PATH)/brIDge \    $(WEBCORE_PATH)/plugins \    C:/Path/AndroIDbrowserPlugin/webkit/Source/WebKit/androID/JavaVM \    C:/Path/AndroIDbrowserPlugin/webkit/Source/WebKit/androID/plugins \    C:/Path/AndroIDbrowserPlugin/platform_external_skia/include/core \    C:/Path/AndroIDbrowserPlugin/frameworks_native/include \    C:/Path/AndroIDbrowserPlugin/frameworks_native/libs \    C:/Path/AndroIDbrowserPlugin/frameworks_native/opengl/libs \    C:/Path/AndroIDbrowserPlugin/platform_system_core/include \    C:/Path/AndroIDbrowserPlugin/frameworks_native/opengl/include \    C:/Users/user/androID-ndk-r8c/platforms/androID-14/arch-arm/usr/include \    C:/Path/AndroIDbrowserPlugin/browserPlugin/jni/libs/armeabi \    C:/Path/AndroIDbrowserPlugin/platform_bionic \    C:/Path/AndroIDbrowserPlugin/platform_bionic/libc/private \    C:/Path/AndroIDbrowserPlugin/platform_harDWare_libharDWare/includeSO_liB_PATH := C:/Path/AndroIDbrowserPlugin/libs_qualcomm_MDP8960LOCAL_LDliBS := \    -L$(SO_liB_PATH)/ -lnativehelper -landroID -lutils -lcutils -lEGL -lGLESv2 -lskia LOCAL_CFLAGS += -fvisibility=hIDdenLOCAL_CFLAGS += -DHAVE_PTHREADS -DANDROIDLOCAL_MODulE:= libsamplepluginLOCAL_MODulE_Tags := optionalinclude $(BUILD_SHARED_liBRARY)

Application.mk:

# =============================================================================## Main build file defining the project modules and their global variables.## =============================================================================# Don't remove this - mandatoryAPP_PROJECT_PATH := $(call my-dir)# The only STL implementation currently working with exceptionsAPP_STL := gnustl_static# Don't optimize for better deBUGgingAPP_OPTIM := deBUG

您可能还需要一些头文件(例如JNIHelp.h),您可以放置​​它们,例如在你正在做ndk构建browserPlugin / jni /的根目录中.

希望bash build.sh应该构建你的libsampleplugin.so,构建脚本将其复制到app目录中.你可以,例如将项目导入eclipse并构建应用程序.将其安装在设备上,然后例如使用WAMP服务器来托管以下文件:

index.HTML的:

<!DOCTYPE HTML><HTML>    <head>        <Title>Test Plugin</Title>    </head>    <body>        <object type="application/x-testbrowserplugin" height=50 wIDth=250 ID="testPlugin">            <param name="DrawingModel" value="Bitmap" />            <param name="PluginType" value="Form" />        </object>    </body></HTML>

从主机运行ipconfig以获取IP地址,例如192.168.x.x
然后将您的设备浏览器指向例如http://192.168.x.x/瞧你应该看一个表单插件.

我无法使动画插件正常工作,并且表单插件无法完全正常工作,但至少插件已被识别并加载正常.

现在,您可以使用示例插件浏览器作为指南或其他Internet资源编写webkit NPAPI插件来执行您喜欢的 *** 作.

总结

以上是内存溢出为你收集整理的默认android浏览器的浏览器插件全部内容,希望文章能够帮你解决默认android浏览器的浏览器插件所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1097059.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存