成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Android Webkit內核應用層函數調用方法

移動開發
Android Webkit內核應用層函數調用方法是本文要介紹的內容,主要是來了解并學習Android Webkit的應用,具體內容的實現來看本文詳解。

Android Webkit內核應用層函數調用方法是本文要介紹的內容,主要是來了解并學習Android Webkit的應用,具體內容的實現來看本文詳解。Android Webkit內核JNI層與Java層 函數互相調用方法

Java層調用JNI層函數:

例子:

Java層: BrowserFrame::loadurl( )

- 調用JNI別名: Nativeloadurl() ;

JNI 層:WebFrame::loadurl( ) ;

1、在JNI層定義需要用的函數WebFrame::loadurl( )

  1. static void LoadUrl(JNIEnv *env, jobject obj, jstring url) 

2、@ 將java層中該類中的函數對應JNI層中的函數,以方便調用之。

  1.   jniRegisterNativeMethods(JNIEnv* env, const char* className,  
  2. const JNINativeMethod* gMethods, int numMethods)  
  3. // className :java層的類名。  
  4. // gMethods :對應JNINativeMethod的數組。  
  5.  
  6. typedef struct {   
  7.     const char* name; //函數名(java層中聲明)  
  8.     const char* signature; // 函數參數  
  9.           void* fnPtr; // 函數指針(指向JNI層 -> WebFrame::loadurl( ) )  
  10. } JNINativeMethod; 

Eg.  將如上JNI函數使用別名:Nativeloadurl( ) (java層中聲明),存于注冊數組中。

  1. JNINativeMethod gMethods[]={  
  2. { "nativeLoadUrl", "(Ljava/lang/String;)V", (void*) LoadUrl }  
  3. ...  

2、在Java層中聲明并調用函數:nativeLoadUrl(String url)

聲明:

  1. private native void nativeLoadUrl(String url); 

調用:

  1. nativeLoadUrl(url); 

JNI層調用Java函數:

  1.     void Download::transportUrl(WebCore::FrameView* view, WebCore::String url)  
  2.     {  
  3.         WebViewCore* viewcore = WebViewCore::getWebViewCore(view);  
  4.         JNIEnv* env = JSC::Bindings::getJNIEnv();  
  5.         jstring jUrl =  env->NewString(url.characters(), url.length());  
  6. // 1. 獲得Java該類的 jclass對象  
  7.  
  8.         jclass mODP = env->FindClass("archermind/webkit/Observor/ODP");  
  9.  
  10. // 2. 通過該對象,取得相應java函數及參數到 -> jmethodID中  
  11.  
  12.         jmethodID msendDownloadRequest = env->GetStaticMethodID(  
  13. mODP, "sendDownloadRequest",                                          "(Larchermind/webkit/core/WebView;Ljava/lang/String;)V");  
  14.  
  15. // 3. 在JNI層中,通過函數調用CallStaticVoidMethod來調用java函數。  
  16.  
  17.         env->CallStaticVoidMethod(mODP, msendDownloadRequest, viewcore->getWebViewJavaObject(),jUrl);  
  18. // viewcore->getWebViewJavaObject() 為 arg1 .  
  19.  
  20. // jURL 為arg2 .  
  21.         env->DeleteLocalRef(jUrl);  
  22.     } 

小結:Android Webkit內核應用層函數調用方法的內容介紹完了,希望通過Android Webkit內容的學習能對你有所幫助,更多關于Android Webkit的內容請參考編輯推薦。

責任編輯:zhaolei 來源: CSDN博客
相關推薦

2013-09-09 16:46:38

Webkit內核

2024-01-08 09:08:53

2010-06-13 17:51:16

SET應用層協議

2011-11-21 09:55:31

2010-06-25 15:22:16

2016-11-29 15:22:47

協議應用層安全層

2010-06-13 17:46:47

2014-12-15 11:23:00

Docker Comp分布式應用容器應用

2010-06-21 17:58:06

2010-06-09 10:25:18

SET應用層協議

2012-01-13 10:13:57

軟件定義網絡SDNOpenFlow

2014-06-27 10:04:55

網絡協議ipv4IP

2011-09-09 15:51:58

Android Web應用

2024-11-27 13:01:22

應用層領域層對接層

2011-01-28 09:18:03

2010-06-09 10:28:20

2010-01-26 17:42:20

應用層交換技術

2010-06-28 15:52:17

2015-10-16 10:10:18

應用層通信協議

2013-10-30 10:20:29

數據中心網絡應用層部署
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美综合一区二区三区 | 久久婷婷av | 一级黄色裸片 | 做a视频| 亚洲人成一区二区三区性色 | 亚洲永久在线 | 欧美性视频在线播放 | 欧美黄色片在线观看 | 亚洲综合一区二区三区 | 免费的日批视频 | 久久国内精品 | 久久久精品一区 | 一区二区三区国产精品 | 久久久久国产一区二区三区 | 久久久国产一区 | 精品日韩在线 | 日韩在线免费 | 夜夜摸天天操 | 欧美日韩一二三区 | 91在线一区 | 亚洲视频免费在线观看 | 一区二区视屏 | 亚洲男女视频在线观看 | 亚洲一区二区免费 | 91精品国产一区二区三区动漫 | 亚洲一区二区高清 | 国产一区二区三区网站 | 伊人久久综合 | 欧美视频一区二区三区 | 欧美激情久久久久久 | 国产精品99999999| 精品久久久久久久 | 51ⅴ精品国产91久久久久久 | 欧美理论片在线 | 91亚洲视频在线 | 国产欧美日韩 | 日韩精品一区二区三区视频播放 | 97精品超碰一区二区三区 | 欧美亚洲国语精品一区二区 | 一级做a爰片久久毛片免费看 | 欧美激情视频一区二区三区在线播放 |