社区
Android
帖子详情
【急!!高分求思路】Java应用与其链接的C库之间的通信
kigy
2010-10-20 01:53:37
Hi, 兄弟姐们:
我这边有个Android应用,称之为A, 其链接了一个C语言写的协议库,称之为B吧,B要与远程进行通信;
如果A要调用B提供的功能,这很简单,B只要暴露几个API给A调用就可以了。
但是问题是,如果反过来,B某些时候要主动通知A去做某些事,那该怎么做呢?对Java不是很熟悉,求解啊!
万分感谢!!!
...全文
46
2
打赏
收藏
【急!!高分求思路】Java应用与其链接的C库之间的通信
Hi, 兄弟姐们: 我这边有个Android应用,称之为A, 其链接了一个C语言写的协议库,称之为B吧,B要与远程进行通信; 如果A要调用B提供的功能,这很简单,B只要暴露几个API给A调用就可以了。 但是问题是,如果反过来,B某些时候要主动通知A去做某些事,那该怎么做呢?对Java不是很熟悉,求解啊! 万分感谢!!!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
kigy
2010-10-20
打赏
举报
回复
我已经知道方法了,还是非常感谢楼上的参与。
贴上方法:
A.1.3 传递和使用Java对象
在前例中,我们将一个字串传递给固有方法。事实上,亦可将自己创建的Java对象传递给固有方法。
在我们的固有方法内部,可访问已收到的那些对象的字段及方法。
为传递对象,声明固有方法时要采用原始的Java语法。如下例所示,MyJavaClass有一个public(公共)字段,以及一个public方法。UseObjects类声明了一个固有方法,用于接收MyJavaClass类的一个对象。为调查固有方法是否能控制自己的自变量,我们设置了自变量的public字段,调用固有方法,然后打印出public字段的值。
class MyJavaClass {
public void divByTwo() { aValue /= 2; }
public int aValue;
}
public class UseObjects {
public static void main(String [] args) {
UseObjects app = new UseObjects();
MyJavaClass anObj = new MyJavaClass();
anObj.aValue = 2;
app.changeObject(anObj);
System.out.println("Java: " + anObj.aValue);
}
private native void
changeObject(MyJavaClass obj);
static {
System.loadLibrary("UseObjImpl");
}
}
编译好代码,并将.class文件传递给javah后,就可以实现固有方法。在下面这个例子中,一旦取得字段和方法ID,就会通过JNI函数访问它们。
JNIEXPORT void JNICALL
Java_UseObjects_changeObject(
JNIEnv * env, jobject jThis, jobject obj) {
jclass cls;
jfieldID fid;
jmethodID mid;
int value;
cls = env->GetObjectClass(obj);
fid = env->GetFieldID(cls,
"aValue", "I");
mid = env->GetMethodID(cls,
"divByTwo", "()V");
value = env->GetIntField(obj, fid);
printf("Native: %d\n", value);
env->SetIntField(obj, fid, 6);
env->CallVoidMethod(obj, mid);
value = env->GetIntField(obj, fid);
printf("Native: %d\n", value);
}
叶涛网站推广优化
2010-10-20
打赏
举报
回复
赶紧学jni吧
基于vue+Springboot的网上书城与其对应的后台管理系统源码+sql数据
库
+项目说明(
高分
毕设).zip
【资源说明】 基于vue+Springboot的网上书城与其对应的后台管理系统源码+sql数据
库
+项目说明(
高分
毕设).zip 网上书城前台部分 # 预览图 * 1-1 商城主页 !["图裂了"](img/bookStorePage.png) 获取书籍信息并分页显示 * 1-2 收藏夹页面 !["图裂了"](img/collect.png) 读取用户收藏夹并显示 * 1-3 欢迎页 !["图裂了"](img/firstPage.png) * 1-4 登录页 !["图裂了"](img/loginPage1.png) !["图裂了"](img/loginPage2.png) * 1-5 注册页 !["图裂了"](img/registerPage.png) 网上书城后台管理部分 # 预览图 * 1-1 书籍管理页面 !["图裂了"](img/bookManage.png) 普通管理员实现书籍增删改查 * 1-2 信息录入页面 !["图裂了"](img/messageManage.png) 录入书籍信息及书籍封面 * 1-3 用户管理页面 !["图裂了"](img/userManage.png) 超级管理员实现用户增删改查 * 1-4 角色管理 !["图裂了"](img/roleManage1.png) !["图裂了"](img/roleManage2.png) 超级管理员实现角色增删查以及管理对应角色的菜单权限 * 1-5 菜单管理 !["图裂了"](img/menuManage.png) 超级管理员实现页面菜单的增删改查 使用技术 # 前端 * Vue: 渐进式
Java
Script 框架。 * element-ui: 基于 Vue 2.0 的桌面端组件
库
。 * axios:基于promise网络请
求
库
,作用于node.js和浏览器中。 # 后端 * Springboot框架 * JWT:为了在网络
应用
环境间传递声明而执行的一种基于JSON的开放标准,一般被用来在身份提供者和服务提供者间传递被认证的用户身份信息,以便于从资源服务器获取资源。 * Lombok:一个
Java
库
,它会自动插入编辑器和构建工具中,Lombok提供了一组有用的注释,用来消除
Java
类中的大量样板代码。 * MyBatis:基于
Java
的持久层框架。 * Mybatis-plus:MyBatis (opens new window)的增强工具。 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、
通信
工程、自动化、电子信息等)的在校学生、老师或者企业员工下载使用,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可直接用于毕设、课设、作业等。 欢迎下载,沟通交流,互相学习,共同进步!
最完整的
Java
必备主流技术流程图,值得收藏!(1),2024最新
Java
面试题目解答
这份《“
java
高分
面试指南”-25分类227页1000+题50w+字解析》同样可分享给有需要的朋友,感兴趣的伙伴们可挑战一下自我,在不看答案解析的情况,测试测试自己的解题水平,这样也能达到事半功倍的效果!(好东西要大家一起看才香)一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!一个人可以走的很快,但一群人才能走的更远。
java
高分
面试指南,写给
Java
开发的小程序布局指南
2021年的金三银四一眨眼就到了,对于很多人来说是跳槽的好机会,大厂面试远没有我们想的那么困难,摆好心态,做好准备,你也可以的。另外,面试中遇到不会的问题不妨尝试讲讲自己的
思路
,因为有些问题不是考察我们的编程能力,而是逻辑思维表达能力;最后平时要进行自我分析与评价,做好职业规划,不断摸索,提高自己的编程能力和抽象思维能力。BAT面试经验实战系列:Spring全家桶+Redis等其他相关的电子书:源码+调优[外链图片转存中…(img-tCkEjJWG-1711120503901)]
22道
Java
Spring Boot高频面试题,刷
java
面试题的网站
一次偶然,从朋友那里得到一份“
java
高分
面试指南”,里面涵盖了25个分类的面试题以及详细的解析:
Java
OOP、
Java
集合/泛型、
Java
中的IO与NIO、
Java
反射、
Java
序列化、
Java
注解、多线程&并发、JVM、Mysql、Redis、Memcached、MongoDB、Spring、Spring Boot、Spring Cloud、RabbitMQ、Dubbo 、MyBatis 、ZooKeeper 、数据结构、算法、Elasticsearch 、Kafka 、微服务、Linux。
Redis单机集群,
java
高分
面试指南
面试是跳槽涨薪最直接有效的方式,马上金九银十来了,各位做好面试造飞机,工作拧螺丝的准备了吗?掌握了这些知识点,面试时在候选人中又可以夺目不少,暴击9999点。机会都是留给有准备的人,只有充足的准备,才可能让自己可以在候选人中脱颖而出。、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新**如果你觉得这些内容对你有帮助,可以添加V获取:vip1024b (备注
Java
)[外链图片转存中…(img-qu9y7Wjd-1711986494556)]
Android
80,351
社区成员
91,288
社区内容
发帖
与我相关
我的任务
Android
移动平台 Android
复制链接
扫一扫
分享
社区描述
移动平台 Android
android
android-studio
androidx
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章