首页
社区
课程
招聘
[求助]利用JNI间接调用系统native代码
发表于: 2014-7-4 16:10 8549

[求助]利用JNI间接调用系统native代码

2014-7-4 16:10
8549
调用native代码实现打开摄像头或打开wifi开关进行设备交互,看到一个帖子,启示我可以不使用系统中自带的JNI so文件做桥梁,自己编一个JNI so文件,让这个so调用系统中的非JNI的so,实现功能,这相当于事实上绕过了framework层,这样可行吗?我假设应用已经获取root权限,请大侠帮我分析一下这个思路,给点实践意见和参考,跪求!

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (7)
雪    币: 3341
活跃值: (1672)
能力值: ( LV6,RANK:93 )
在线值:
发帖
回帖
粉丝
2
linux有"dll hell"问题,linux下的软件一般都没有通用安装包,一般都是给源码自己编译。你无法知道目标机子上的libgcc,libstdc++等的版本。
--------
以上只是个人猜想,仅供参考。btw一般写jni so又能正常加载估计是依赖的so太少的原因吧
2014-7-4 16:28
0
雪    币: 15
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
我觉得是可以的啊。但是设备的话,是需要驱动支持的,那个你没法解决吧。
2014-7-6 14:41
0
雪    币: 1
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
我的设想是,自己编写的so文件不涉及设备驱动,而是调用核心库中负责与设备驱动的那个so文件,这样我就不用在自己的动态库中加载驱动了。
2014-7-6 16:36
0
雪    币: 1
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
我的动态库只负责调用系统中原有的库文件,只要知道核心库中该功能在哪个库中实现就可以了,应该不用编译源码吧?
2014-7-6 16:37
0
雪    币: 21
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
是可行的,其实你要的功能就是调用 ndk 不公开的库而已,最大的问题就是太多的兼容性问题,用动态加载会比较好。
2014-8-14 10:20
0
雪    币: 32
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
像摄像头这样的, 可以再native层通过jni反调java的接口来做一些事情
2014-8-21 21:29
0
雪    币: 30
活跃值: (37)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
反调用java代码的话,则会受到权限的限制
2014-9-11 17:36
0
游客
登录 | 注册 方可回帖
返回
//