首页
课程
问答
CTF
社区
招聘
看雪峰会
发现
排行榜
知识库
工具下载
看雪20年
看雪商城
证书查询
登录
注册
首页
社区
课程
招聘
发现
问答
CTF
排行榜
知识库
工具下载
看雪峰会
看雪商城
证书查询
社区
Android安全
发新帖
0
0
[求助]动态库JNI_OnUnload函数不调用的问题
发表于: 2015-9-28 09:28
10356
[求助]动态库JNI_OnUnload函数不调用的问题
siliconlee
2015-9-28 09:28
10356
在使用NDK编写一个动态链接库的时候,测试发现。安卓系统System.loadLibrary ("TestJNI")就是载入动态库,默认调用编写的JNI_Onload().但是退出app的时候发现不会调用JNI_OnUnload() 函数。
资料上是这么解释的:
在载入C组件时会立即呼叫JNI_OnLoad()来进行组件内的初期动作;
而当VM释放该C组件时,则会呼叫JNI_OnUnload()函数来进行善后清除动作。
可是好像JNI_OnUnload函数并没有触发。
请问如何触发这个函数。
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!
收藏
・
0
免费
・
0
支持
分享
分享到微信
分享到QQ
分享到微博
赞赏记录
参与人
雪币
留言
时间
查看更多
赞赏
×
1 雪花
5 雪花
10 雪花
20 雪花
50 雪花
80 雪花
100 雪花
150 雪花
200 雪花
支付方式:
微信支付
赞赏留言:
快捷留言
感谢分享~
精品文章~
原创内容~
精彩转帖~
助人为乐~
感谢分享~
最新回复
(
3
)
OnlyEnd
雪 币:
250
活跃值:
(251)
能力值:
( LV2,RANK:10 )
在线值:
发帖
2
回帖
153
粉丝
0
关注
私信
OnlyEnd
2
楼
因为JVM一直没有退出。自然调不到JNI_OnUnload了。
System.runFinalizersOnExit() 这个函数能触发JNI_OnUnload,但是不安全,可能会清除掉一些别的线程正在处理的对象,导致死锁等
2015-9-29 11:05
0
siliconlee
雪 币:
11
活跃值:
(10)
能力值:
( LV3,RANK:30 )
在线值:
发帖
4
回帖
23
粉丝
0
关注
私信
siliconlee
3
楼
谢谢,这和我的想法不一样啊。我以前以为,程序进去就调用动态库,程序退出就退出动态库。感觉好变扭,不得不去适应啊。
2015-10-8 08:53
0
风大叔
雪 币:
21
活跃值:
(10)
能力值:
( LV2,RANK:10 )
在线值:
发帖
3
回帖
28
粉丝
0
关注
私信
风大叔
4
楼
程序已经退出了,进程都没了,内存也就自动释放了,所以不需要调用 JNI_OnUnload 了。。。
http://bleaklow.com/2006/02/18/jni_onunload_mostly_useless.html
2015-10-10 14:16
0
游客
登录
|
注册
方可回帖
回帖
表情
雪币赚取及消费
高级回复
返回
siliconlee
4
发帖
23
回帖
30
RANK
关注
私信
他的文章
[求助]Android 8上面获取手机的序列号
5104
[求助]关于Android 7.0调用系统so库的问题。
5146
[讨论]第一题 WannaLOL解答
2128
[求助]动态库JNI_OnUnload函数不调用的问题
10357
关于我们
联系我们
企业服务
看雪公众号
专注于PC、移动、智能设备安全研究及逆向工程的开发者社区
看原图
赞赏
×
雪币:
+
留言:
快捷留言
为你点赞!
返回
顶部