深入理解JNI 邓凡平

1)使用的时候 :加载libmedia_jni.so 并接着调用JNI_Onload->register_android_media_MediaScanner动态注册JNINativeMethod数组。

2)通过JNIEnv操作object

  Java的引用类型除了少数几个外,最终在JNI层都会用jobject表述对象的数据类型,

  a)jfieldID jmethodID表示Java类的成员变量和成员函数,通过

    jfieldID GetFieldID(...)

    jmethodID GetMethodID(...)获得

    

    jclass mediaScannerClientInterface = env->FindClass("android/media/MediaScannerClient");//找到android.media.MediaScanner类在JNI层中对用的jclass实例

    mScanFileMethodID=env->GetMethodID(mediaScannerClientInterface,"scanFile","(Ljava/lang/String;JJ)V");

  b)mEnv->CallVoidMethod(mClient,mScanFileMethodID,XXX这里是scanFile的参数)

最新文章

  1. python序列,字典备忘
  2. TComboBox; 指定某一行,不给下拉,只读ReadOnly 伪装 实现
  3. VS使用的一些备忘东西
  4. 服务器CGI运行机制
  5. asp.net web.config 设置Session过期时间
  6. Jedis下的ShardedJedis(分布式)使用方法(一)
  7. oracle中的sql%rowcount,sql%found、sql%notfound、sql%rowcount和sql%isopen
  8. [Android Pro] RecyclerView实现瀑布流效果(二)
  9. NAT原理与NAT穿越
  10. static方法,属性,代码块初始化顺序和执行顺序
  11. Java面向对象的概念以及OOP思想的优点
  12. Python 2.7 学习笔记 中文处理
  13. 流媒体协议(一):HLS 协议
  14. head语法
  15. Bash 中常见的字符串操作
  16. 自动化CodeReview - ASP.NET Core依赖注入
  17. linux删除指定创建时间文件(文件夹)脚本
  18. SqlServer字符串拼接
  19. 项目IDEA启动配置
  20. OC 线程操作 - GCD使用 - 栅栏函数

热门文章

  1. MyBatis逆向工程详细教程
  2. CodingLife的CSS样式整理
  3. Android文字识别之tesseract的使用
  4. unity制作人物残影-绘制的方法
  5. C++ 隐含的this 指针
  6. 打开usb调试的方法
  7. Firebird Connection pool is full
  8. git flow强制重新初始化
  9. 初识http2.0
  10. hibernate下Session的获取方式