00:00
好,同学们,我们来上课了,那么我们上之前呢,先把上一次我们所讲的内容给回顾一下,好立方。好,那上一次我们讲了哪些呢?对吧,我们来回顾一下,写个笔记,对四好,然后的话呢,在我们地方里面,就是第一环境的配套,环境的配置,环境的配置怎么配呢?好在我们这个地方里面,我们在这个地方里面它有。你把这个。你把这个呢,拷到我们任何目录下,就是注意要把它解压出来对吧,解压出来解压出来好,那我的这个地方呢,我式放这个地方,第一第一步拷贝我们的NDK到对应的目录对吧?好,那在这个地方里面的话,我的地方我是放在这里。
01:31
哪里呢,放在这目录下,注意你也可以单独放其他目录啊,这是我的放在目录,但注意这个目录里面最好不要什么还有中文有空格啊的空格,这是第一步配置,然后第二步在pass里面配置,在PA里面配置好,这个配置的话怎么配置啊,好,那也就是把我们刚才的这个拷贝放到开始下。
02:12
注意放在哪里呢?放在我们上边。好就是放在后边对不对,好我们把它给复制过来,当前我配置的是这么一个样子,好主要是什么,后面这个是不是好在第二步,那么配置好之后呢,其实同学们在这个地方里面的话呢,好第三步我们创建我们的一个。这个就是我们的一个什么这么一个。一个一个project好,就是如果是你直接在里面写的话,是下面这些配置就不用做了,就比如说我们这个地方里面这些配置不用做了,但是如果你是创建一个新的你那的配置好,那我们假如第一次做的话,你就创建一个,然后在在哪里配置啊。
03:09
同学们是在我们的这个地方里面有这个里面去配置啊,好,我们把它名字复制过来,在这个地方里面配置我们的NDK路径,对吧?好,我们把这个代码呢拿过来就是这个,当然如果你这个放在第一盘。数据库就这地方就变成D啊对应的某个目录,然后这个地方只要是有这个要加加那个转移对吧?好那么我的是在这地方,所以的话呢,就这样去配置好,第四步还要兼容老的什么NDK怎么做呀。
04:01
是在这个地方,你说这个事情呢,对不对,好把它给拿过来,那么这个时候有了过后,好,那接下来这些配置,其实环境变量配置呢,就搞定了。啊,就是环境变量,我们就就能搞定了,好接下来第二个知识点就是啊,创建我们的这个第一个小案例,对吧,这个案例呢,就是我们案例一般呢,加法掉C是比较简单,所以我们呢,第一次给大家讲的是加调C调C,而不讲C调加法,如果一上来跟它叫C调加法,是不是大家用了用到反射对不对,所以我们一一上来就讲非常小的一个案例,这个案例的话呢,就是实样的一个Java。然后调用C的一个小案例是吧,第一步选我们的内体代码,那内题五代码呢,再加把东西就是写类题五代码,然后呢,用于调用C代码,好,那么例如我们找第一次给他讲这个地方,我们在这个地方里面,注意在在这个地方这个那里面是做一个这样一个内体方法啊好。
05:33
有方法我们把它给拿过来,那么有了过后,在这个地方里面,这个代码是进来的模快,只要这个类被,只要这个类被实例化,是优先被执行的。对不对,是这样子的,然后在我们这个地方里面的话呢,它所做的作用是什么?加载动态链接库对不对,在动态链库好,那么这个链接库是不是要编译出来呀。
06:07
好,那么接下来在这个地方里面就是要去编译,注意第二就是去编译我们的编译动态链接链接库,注意编辑这六态链库,如果我们什么面没配置,它会默认什么什么也不配置,它编译的动态链接库是以当前的model。墨头名称为库名称。什么一个格式呢?它就是这样子的,Li加上model内啊,这个单词有没有选错啊。
07:12
六一是吧,谢谢,好,那么再加上一个什么点so是不是,我看一下是点SOSOS啊对好。那么也就是说在我们地方里面他是这样,那么但是这个有一个问题,就是假如有一天有个用户他把这model名改了,那这样的话是不是就不行了,它去加载,再去加这个输出处啊,所以我们要什么要最好是是吧,最好是配置我们的动态链接库的名称在哪里嘞?在哪批萨啊,在我们的工程里面的这个这面有一个。
08:05
叫build club,同学们啊,只要你去网上当一个工程下来,如果出错,当然这个代码是完整的情况下,只要是出错,你只需要在去修改就可以了。所以这个改文件的话呢,比如说你当前的版本是多少,来去修改成对应的版本。就改这些,比如这对应版本,然后导入库啊什么全部在这里做,只要是这个代码不残缺的情况下知道吧,好,那同学们在我这地方里面的话呢,我们在这里去配置啊。好把它给复制过来,来到这里面,在这里面啊配置好,那么有那个同学们在我们这个地方里面怎么配置呢?好就是这里面配置。
09:00
好,那么配置过后,你看我们我们在这个地方里面叫哈,那么这个它它叫哈,说我们叫加载动态电过的时候也叫什么。也叫哈,这没问题吧,然后在这个地方里面,当我们去生成库的时候,它会默认帮我们加地板,加上so。点so啊是加上这个东西好,那下面这个东西是什么呢?就CPU的架构类型,你看啊,大家用电脑应该最熟了,你看啊电表面我们主要用的是英特尔对不对,还有一个架构知道方向,AMD这个CPU处理器知道吗?那么不同的CPU啊,它产的架构是不一样的,所以的话呢,我们编译的C代码,它针对不同的CP去编译,明白吧,那假如有一天。你去把QQ装到叉八六这样的模拟器上,那么如果这个QQ啊,它对X86这样的CPU没有进编译,你把QQ命起来必崩,肯定会崩溃,之前呢,我就拿那个啊,那个手机微视,就是360手机微视,他做的比较牛吧,QQ也比较牛吧,微信在这样的手机上B崩,为啥嘞,他就是没有针对这样的处理器编译,知道吧,明白了吧,所以所以有时候就会出现一个问题,就是就是说你的代码很正确,没什么问题,但是运行在有的手机上,就不就是因为你没有,就是这里面没有对应的S文件,而且这种错误的话很好不好不好找啊,很不好找,当时我们就在风行开发的时候遇到这样的问题,但是安丢丢呢,他就比较他就他就做的好,就这个工具,就说他检测你没有做配。
10:58
这你运行在这样的处的上升呢,他不让你运行,他就避免你出现这种情况,知道吧,他做的还是不错,1.3就16度做的,他做的一些判断,你在运行的时候,他就帮你判断啊。
11:12
好你就运不进去对吧?好,那么配置过后,接下来在这个地方里面,配置好过后,好,那在这个地方里面就把这个库什么加载进来,第三步加载动态链接库就在这个代码里面。好,那么注意了,一定要在静态代码上面加载吗?其实不难,你只要在调这个方法之前去执行这行代码都可以,知道吧,只要去在这个调用这行代码之前去执行这个代码都可以。明白吗?同学们好,那有那个后,接下来我们就要去用这个类吧,这个类它承载的作用是干嘛的呀?和C代码什么进行什么进行交互,交互也就是调用C呗,是吧?好,那接下来我们就是一点击就触发,然后C里面就反复对应了,好那么这些有了过后呢,其实在这个地方里面有内图过后其实我们还写一个C代码,但C代码就像这些东西是没有先后顺序的啊,你比如说做这一步,这一步还是右先做哪步都没有先后顺序好,没有相号顺序好,第四接下来我们就要写我们对应的C1代,好我问大家加瓦去掉C,除了调C,能调C加加吗?可以,对,可以。
12:53
好,那同学们,那C这个代码注意了,因为我们这个方法它要去调用C,那么C中的C中是不是也要去有一个方法跟他对应呢?这个该怎么写呢?对吧?所以我们就用了一个什么头文件去生成,生成得到的结果就是我们的啊,当然我们是直接是直接选的,当然用头文件可以成这样子,那么如果选的话呢,我们C代码就是这样个样子,好把它拿过来好,那在这个地方里面的话呢,就去做这样的一个事情好,那么有那个后在我们这个地方里面的话呢,就C代码当一掉的时候,你看这里面有水还弄。
13:39
那这里面还有一个什么,返回一个时菌类型,注意它返回JS菌,因为GSG刚好跟Java这个词去对应,所以这就返回一个什么,就是这一个返回值,好那回过去呢,我们这个地方里面,好把它一打印出来,就出现我们这样一个情况,好那有了后,那在我们的这个代码里面就直接去遛它C哈,对吧?好我们把它给切换出来。
14:10
运起来,在我们的这个模拟器上啊,就运起来。一起来。啊,运起来我们在地方里面去匀一下,再家看一下,运起来过后呢,就把这个弹出来MC对吧?好,那接下来这个地方呢,就去使用了,好那在这个代码其实就是什么调用。第五步,然后呢,就是实习。执行我们的这个Java调,调用C的什么方法好,就跟这个调的方法,这个方法一调是不就是不是就调这个方法呀,对不对?好,那同学们关于第一个小案例大家明白了吗?环境配置怎么知道了吗?好,然后的话,如果是遇到什么错误的话呢,我相信大家在解决错的时候很郁闷,对吧,然后呢,要用心去解,然后解不了的话告诉我,我来帮他来解,好吧,大家好,那同学们这一块的话呢,我们就。
我来说两句