合集游戏上线了,由于不同的盒子电视的遥控器差异性很大,造成我们游戏在操作体验上没法达到一致,下面是学习啦小编给大家整理的一些有关android局域网通信的方法,希望对大家有帮助!

android局域网通信的方法

用c socket去实现的话就得配置好ndk环境,这个网上教程很多,ndk 7以上的就可以直接在window下编译成so库了。因为android是基于linux系统的,所以这部分代码其实可以直接移植linux socket,只是回调部分会涉及到java的放射机制(我在这部分纠结了很久很久,最好发现是一个地方的参数写错了)。先大概了解一下jni的语法

JNI的类型

1、基本数据类型

以下是java的基本数据类型和jni中的基本数据类型的比较,及各类型的字节。

52f6efa7e8085b25a8eade054882dfdd.png

2、引用类型

Java中不同的引用类型在JNI当中也有对应的引用类型,以下树形表示:

711276c6b61b5cd8780856d841daecce.png

当在C语言中使用时,所有的JNI引用类型都被定义为jobject类型。typedef jobject jclass;

jvalue 类型

jvalue类型是一个基本数据类型和引用类型的集合,定义方式如下:

typedef union jvalue { jboolean z; jbyte b; jchar c; jshort s; jint i; jlong j; jfloat f; jdouble d; jobject l; } jvalue;

class的说明

(1).类和接口的描述符在java当中使用”.”,如:java.lang.String

而在JNI当中是用”/”,如:java/lang/String

(2).数组类型的引用类型用”[”表示。如 int[](java中的表示法) ß---à [I([ 大写的i 是JNI中的表示法,[ 的个数表示数组的维数 二维则是 [[ I )

(3)域的说明,和java比较如下表:

a8e4462c21b19844fd3eeb429f74cc8a.png

注意:引用类型的域 用L开头,并且以”;”作为结尾。数组类型和class说明的一样。

db9f0dad6747fffd9fba994ca8154221.png

(4).Method说明

JNI中的方法的声明规则:先写参数列表,再写返回类型,以下是例子。

d53b7ecca680325837219a89de3e6928.png

看了“android局域网怎么通信”的人还看了

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐