00:00
这bug的话呢,是我在教这个内容之前第一次遇到,后来我发现了,就是这个模拟,你看不同的模拟器就解决了模拟器的问题,就是它每一个处理器不一样,那也就是说的话呢,但是昨天你知道吧,昨天我在家敲一遍的时候又可以,我挺奇怪的,但是我去验证一下为什么是什么一个情,为什么会出现这种情况,那我们先给大家看看啊,同样的代码。什么代码?啊,这个是是昨天晚上敲的,我导进来了,然后我用我们自个儿的今天敲的这个。然后呢,大家看一下C代码在这里,好,然后我们把它这一部分注释,就是拷贝这分注释的,用我们刚才在课堂上现场敲的。打开打开过后,然后呢,在地方里面,我们就要去把它运行起来。运行在这个模拟器上的话呢,它是有问题,但是现在我是现在我找不到原因,它为什么这样,但昨天晚上敲的时候是没问题的,好大家看一下没变好,那我现在用这个模拟器。
01:05
大家看啊,这是我现在无法解释它,只能是到时候我去找一下。好,我给大家看一下同样代码对吧,出现这样的一个情况。好,我们再把它运行起来。一起来,同样的这个啊,同样的工程啊,算工程好我们去运营起来。好,注意现在是用这个夜神模拟器了啊,夜神按键模拟器,好,我们现在重新去点击它。好。啊,掉线,掉线后我们再去点一下,点这个脚本。啊,这个脚本的话,如果大家想要的话,可以发给大家,因为这个脚本的话,它的意思就是说啊,重新连接一下,然后你的按那个yes模型安装在哪里,你就是把这个换成你的目录就可以了,啊这些都不变啊,想要的话我到时候发给你们。好,那么我们来看一下。
02:01
啊,这里面已经我看一下连上没有一点还没有连上。再运行一下。好。啊,这个就那就是把先把这个门给干掉得了,然后呢,把叶神。但是昨天的话,我也是用这个,也也就是刚才打开的模拟测试的。然后的话呢,就会出现这种的情况,而且是而且是以前根本不会出现这种情况,好我们运运起来同学们。啊,一点击看到没有,确实变了,真的变了啊,我就很奇怪,我我这个代码没问题啊,我检查了呀,又不是敲,又不是第一次敲好多遍很熟练了,对不对,结果它就是出现问题,那就是跟你与硬件相关,但是我去找一找,为为什么我昨天晚上又可以,现在不行,但是我告诉你们为什么这样。好,那同学们,这就是我们从一个值从一个数组进去,然后呢把它改,那么什么情况下用到这样的一个情况呢,就是什么样的需求,有这样传数值要改数的一个情况呢,比如说。
03:13
我们的图片要进行处理。其实图片。他。可以在一起成一个颜色矩阵,颜色矩阵就是一个什么数组,然后传到C语言中,让C语元去处理,然后返回去,那么这个时候就用到数组,包括明天我们讲的美图秀秀,它的原理就是这样,我们把这张图片,然后呢,载体为颜色矩阵,然后传进去,C的话帮我们处理,然后返回一个颜色矩阵,然后我们重新生成图片。知道吧,就这样,那么这样这种情况就用得着,那出现这个情况的话,到时候我们我再去找一下原因啊好,那同学们接下来我们继续讲了,我们要去做一个校验密码是否正确,如果正确就返回200,不正确呢就返回400。好,就做这么一个东西,那么为什么有这样的需求呢?其实这个小小的案例啊,我会把它当成案例,也可以这样去理解,其实大家去看一些非常核心的软件。
04:13
比如说我们之前在做风行的时候,风行很核心的模块叫。就是。就是边下边播。其实安卓里面默认它是支持边下边播,什么叫边下边播呢?就这个视频啊,它下的过程中就一边下去边播了,系统的自带的me都可以,但是系统自带的me有一个特点,播完后它的内存中把它给什么删掉了,你在SD卡是不存在这种东西,但是。风行这个变下编号,它就是当你把这个视频看完之后,它是不是也在本地了。那么你下次再看就很方便,因为风屏它主打是电影,电影的话你可能。看完后你还可以再,比如说你可以提前把它下下来,那下次再再看都可以对吧,那也就是说这是一个真正的一个啊,边播边下或者边下边播。
05:11
那么还有比如说我们所讲的缓存,缓存其实就是下载,把这个视频下载本地,那这时候开启个服务在后台去下载对吧?好,那么这个时候比如说风险,它就把核心的地方都集成在C中,然后给我们就是一个so文件,给这么一个文件。这里。那这个文件呢,到时候就相当于他把给我们这个so文件是在。啊,这NDK里面就跟这样的一个O文件,我们把这文件呢放到你们English下。然后其实也可以加载了,那就通过它去加载做这样的一个事情啊,这种事情后面我们有个综合案例,就是直接用so文件去做这个事情啊,综合案例就讲到这个S5的用法,就不用C了。
06:01
因为别人编译好,因为C做C解码的是另外一个团队,知道吧,分开来,他把这个做好后,把这个SV给我,我们BD该怎么调,那这样的分开了两个团队对吧?好是这么回事,好,那么有了后我们呢,接下来做的一个小案例就是。去教练我们的。代码啊,如果正确就两杯。否则就返回400,当然我们的密码我我们默认设置一个密码叫123456对吧,我们就降一下对不对,好,那么就来到地方去选我们的代码了。首先这个方法就叫你密码复制过来。有的客户在我们地方里面呢,把它复制一下好,在这里面的话呢,就去选一下,这里面呢1V,然后呢j opg好。接石俊好。然后有了过后,在我们这个地方里面,接下来,接下来我在这个地方里面就要去做一个事情,校验密码了,好,那校验密码这个时候要用到一个函数,就是要比较我们的字符串是否相同,那么这个方法叫什么呢?
07:23
好,这用STRCMP这么一个方法,如果他们相相同,就返回个零,好,那这个时候我们假设啊,我们我们的密码服务器的密码,服务器的密码是123456,那这个是恰的话呢,就是O0原始密码等于。123456好,那么有这个密码过后,接下来这个是存进来的吧,要把它转换为对不对,转换我们下把好弄弄我们的用了用户,用户的话,那这个时候我们之前有一个方法是上可以转换成我们的。
08:16
卡着这样一个指针呢,好我们就用上了,那第一个是env,第三个是我们接。这个值对吧,这个值然后在我们这个地方里面的话呢,有了过后,有了过后就要去比较,这时候我们就用到我们比较的这个ST好CMMP对不对,是这个吧,好,也就是我们在这块里面用的S加CMP这个方法。好,那么我们这个时候把这个存进去,把flow存进去,好它会有一个返回值给给大看一下,你是in的返回值啊好,我们呢,这样int类型好扣的,那如果它是零,那我就把它返回多少啊。
09:09
衣服扣的如果反,如果是等于零,那显然就相同嘛,密码相同,那就上上乘的要求是相同就是正确呗,对吧?好,那这个时候我就铝乘我们的200,否则呢,就返回多少21寸多少啊是的,好,那返回过后,接下来我们在地方里面就可以把这个门帘去调啊,打印出来。好。在我们这个地方里面的话呢,把它给复制一下,然后有了过后我在地方里面的话呢,去。去写一下密码,假如说我故意写个错的,就是1234567是吧,多个八,然后它返回的是一个时间类型啊,然后运行起来。
10:07
好在我们这注意它返回,呃,返回的是什么in类型in类型,那我们就是in特类型好类型,In类型过后呢,顺便把这个呢打印出来。好,这个时候他应该返回的是多少啊。400对吧,好,然后呢,我们去把它拎起来啊拎起来。好一起来,然后我们去一起来这个模拟器上好给大家看一下,去点击好400对吧。400证明确实是由我们的C返回的,那假如说我们把这个去掉,因为我们这个地方里面正确密码是123456吧,好并起来。一起来。捋起来,把它给遮下。好,这个地方里面我们。
11:02
这地方里面呢,我们去点击一下,好,再看一下是正确的吧,就返馈200。对不对,同学们,这样的话我们就搞定了,也就是说到目前为止,我们Java调C通过四个小案例就是就搞定了Java调C。比如说我们之前在实际情况是怎么用的呢?我们得到一个播放地址,视频播放地址,把这个地址传给C。从一个缝,他解码过后,他要回来给我们。那么我再调一下这个方法就可以了,当然有相应的监听啊,就是提前写好Java接收的类对吧,然后再得到数据,到时显示。那么也就是说我们只要调一下它就C去做我们对应的事情了,那么整个过程这几个四个案例都是Java调C,那么接下来要做的就是C调Java啊好,那同学们这是一个小应用,检查密码是否正确好把。
我来说两句