粉丝16获赞140
哈喽,大家好,最近这几天我都没有开播,那么最近这几天我都干嘛了?我给大家汇报一下啊,最近并没有偷懒,也没有去玩, 那最近的话正在研究什么呢?金手指,还有啊,还有一个是全铃模拟器,还有一个是那个中文的游戏标题,那我们现在看一下啊,就是说金手指,金手指相当于就是给 我们的游戏加了一个 buff, 比如说你无限生命,无限弹药啊这些啊,接下来我给大家演示一下啊, 演示的这个游戏叫做战地式,那这个游戏现在的话我们呼出他的金手指,呼出之后的话,这个金手指的话,你你怎么打都不会死的,还有阿尔登法皇啊,还有大表哥啊,这些通通都有, 接下来给大家看一下这个叫做啊全都模拟器的,全都模拟器,有接机的, fc 的啊,各种各样的游戏全部都可以直接玩了,是中文字幕的啊, 来,我们现在看一下,现在这个游戏全部都已经改成了中文的一个游戏名了, 就说如果说你们后期想要改这个游戏名的也可以联系我,我可以帮大家去改的啊,就是如果说你们之前跟我买的机器,如果是游戏名的也可以联系我们,我可以帮大家去改跟改过来,好不好? 好了,那么现在的我们可以看到我们后面现在已经演示完毕了啊,所有的金手指啊,我们现在还有那个主题, 主题后面的话我再更改,然后谢谢大家的支持,今天晚上我会分享更多的一些啊知识分享给大家啊,分享给大家,然后的话今天晚上可以来我的直播间观赏一下啊,谢谢大家,谢谢大。
各位鸵鸟的朋友大家晚上好,上次给大家推荐的一款叫 还危险的搜索软件,这个软件呢只能搜索文件名,如果要搜索文件里面的内容, 那这里这个 mvc 呢就无能为力了。今天给大家推荐的就是另外一个搜索的神器叫花友罗开神, 这个软件呢,现在我已经打开了啊,它主要有三种模式啊,有一种是叫专家模式,还有一种叫基本模式啊,比较简单, 说明那么多,还有是搜索的这个啊,锁引搜索啊,这个更简单啊,所以呢,大家可以根据自己的一个实际来进行一个查找,他查找的话呢,可以根据文件名和包含的这个文本, 这个呢,哎,查找的位置这里可以进行一个设置啊,大家可以进行一个设置,你找到哪个位置,大概放在哪个文件夹,那这里可以设置一下,或者是文件的一些大小啊,那这里有便给大家精准来进行一个查找,还有时间 啊,什么时间呢?对啊,如果你这些都不知道,那就最简单的这种模式,对吧。啊,这里进行一个搜索,那就比较简单了,下面我给大家演示一下,假如我要找一个,我一个文件是有一个勤劳两个字的 啊,我要大概就藏在我的这个一盘的一个文件奖内啊,我们现在搜索一下啊啊,你看一下他每一个文件,他第一个呢就能够出来一个勤劳啊,这边看到没有,哎 啊,为了节省一些时间,我这里只做演示啊,我把它暂停了啊,他神奇之处在哪里呢?不单是握文档可以把它搜索出来,就连其他什么呢,那个 pdf 文件他也可以进行一个搜索出来啊,有关 我包含勤劳两个关键词啊,这里边啊,右边是显示他的一个搜索的一些情况啊, 大家可以把这里点开来啊,看一下啊,他是把它进行一段一段划分的,你看这里有勤劳两个字,看到没有,所以是非常生气,这里表示这些文件都有这些关键词啊,都是这些关键词 啊,他都可以找到,但是你可以更神奇的就是连 pdf 这里面的这些他都可以把它操作出来,那意见在哪里啊?大家可以看一下啊, 这是一个 pdf 文件啊,这是一个 pdf 文件,你看这个是不是很神奇啊,所以呢,这个软件呢是非常好用,我个人认为啊啊,所以呢就推荐给大家来进行使用 啊,希望这个软件哎,对大家的工作有所帮助啊,今天就说到这里,谢谢大家。
怎么排查项目中有没有用到 logo 风景二?我们知道最近 logo 风景二有一个很大的漏洞,那我们项目呢都要进行这个版本的升级。好,那我们现在有很多项目,我们怎么排查这个项目里面有没有用到 logo 风景二? 那首先呢我们在 id 里边我们安装一个工具好文件 cid 在这个这个插件这里面,然后呢安装一个呢 merving help 啊, merv 的助手,如果没有安装,那么在这个市场里面搜索一下,然后安装一下好,安装好之后就是他 有了这个插件之后呢我们这个项目里面有没有用的 logo 附件二,那我们只要打开这个破木门件,然后破木门件这个右侧啊这个地方有一个阴带分析, 然后打开一再分析,这个时候我们只要输入一个多个封建,然后点一下这个 fat, 点一下。好,那么这个时候我们可以看到里边有很多多个封建,那比如说我们像 里边他用的了 logo 分期二二点一四这个版本,那么这个是有问题的,有漏洞的,所以这个是我们需要啊对这个版本进行升级。 再比如说我们这边的这个破费键,打开之后,我们看这个一再分析,然后我们去搜索一下,我们发现这边没有啊,那么打开这个项目看一下, 打开,然后点一代分析,然后输入六个封建,然后过滤,过滤之后我们发现呢这里边用的了六个封建二点一、四点一这个版本。好,那么这个时候就需要对这个版本进行升级,那么通过这个方式,我们可以快速的定位我们的项目中有没有用到六个封建二。
哎,游戏开始了,哈喽,大家好啊,欢迎收看由四位哥给你带来这个经典的 fc 游戏是吧?哎,今天咱们继续带来这个马里奥的改版是吧,哎,超级马里奥的改版啊。 呃,但是这个是最近那个刚改出来的啊,叫那个超级加里奥兄弟啊。好的,那个重启一下子,你看他这个 超级加撩兄弟是谁呢?是啊,就是这个主角的马里奥变成加撩了,然后录一集变成怼一击啊,哈哈,没有意思啊,咱就这个用那个加撩吧。啊啊这改版啊,是最近刚改出来的啊,那个说话他是更新了一版啊 更新了一版说是这个做了一些修复啊。呃,我记得之前我看他是十月二十几号那个改改吧改改出来的,然后那个 后来他又更新一下更新之后他是十月三十一号,哎,出来了,哎,这你看这个,哎,说实话他这个 这个板栗啊,这蘑菇怎么变成那样似的了?那出有点像那个啥玩意啊 像啥呢?像个鸭子啊,唐老鸭,然后那嘴有点像唐老鸭 然后他这个改版挺有意思啊,就是各种改名嘛,是吧,然后之后那个谁呢?库巴也不知道那个 老师了,哎后边是叫那个哎,楚老师是吧,嘿,挺有意思哎,你看这这个时时辰花啊 食人花,这个感觉他这个食人花这个大嘴唇子是吧大嘴唇子食人花这大嘴这不能叫大嘴花,你看这大嘴唇子花是吧啊, 你把听的太吓人了啊啊他这个改版啊,一共是,哎呀,一共就四个世界啊呃,四个世界,哎呦我去,这么准吗 其实呃他一共是十七个关啊十七个关卡四个世界嘛,四十一 一十六啊,还有一个是啥?还有一个其实是就是五杠五杠一,五杠一是一个隐藏的世界啊。 呃,其实他这个他这个版本啊,他那个版本简介啊,他在在头一版的时候的简介跟那个第二版的这个简介他有好大的变化。 是他没把那个因为他有更新吗?没把那个更新历史那个说明那个写进来啊还是咋回事?这我就不知道了,因为我看他那个 之前的那个版本介绍啊,之前那个就是介绍一共有十七关,然后之后那个从哪关能跳到哪关啊,有三个地方跳关的,然后这并且这个说是这个 呀,跳跳啊,你看漂亮啊,而且这个这个版本啊,就是被加入到那个就是死逼的乱啊那个 那里头了。然后这个一共有三个,好像有三个跳关的是一杠三能跳到三杠吧,然后二杠四能跳到五杠啊,然后还有个三杠一是三杠二的了能跳到那个四杠 那两个那几个我都没试啊,我就试了一下那个就是能跳到五杠的就完事,因为那些我不需要啊,我也不用跳啊,我只要看他那个隐藏的关在哪的就完事了,就这么强。然后这一次那个他版本更新。 呃,他上面介绍是只对一些那个修复啊,就是对一些那个 bug 修复啥的,我看其他之前的那些解释啊,介绍都没有了。 哎,无所谓了,反正他也不影响咱们玩啊,他爱怎么介绍怎么介绍是吧。跟他没什么关系 啊。削削一下啊,等会啊,削一下削削削。哎哎好,赶紧走啊。哎呦喂。哎,还行啊。没没见着踩花上啊, 还大嘴唇子呢。那老吓人了。没有,刚说完踩上来,真踩上了。削啊,削一下好,三三三呢 啊,三炮,这三炮三炮不是三炮啊哎。东北话三炮吗?但是东北话有的不分皮尿蛇呀是吧。啊,一样啊一样啊,走, 好,快走,跳,哎哎,走,跳一下。哎呀走,我去,差点就溜啊, 还在这溜不溜了。溜还得放炮,放六炮还。哎啊,这个跟这个一杠的不一样啊,又去呀,哎哎哎,跳跳跳,又去,哎跳哎。然后这个上面那管啊上面那管。 那个是就是进入到这个五杠一的,等一会咱先通关一遍啊, 咱先通一遍再说,而且这个这个版本你看他那个库吧,没有了。呵,那你不叫库吧了,你就跟库吧不太一样了。 那个正常美版的那个酷吧。他不是叫那个啊 browser 吗是吧,然后他这里改了叫 falser 是吧,好好, 来吧,他不不来拉倒啊,后边以后后边肯定会来的。哎呀削,哎呀呀,撩一下。 这个好像碧琪公主是没没改名的啊。碧琪公主也不知道啊。他没说他介绍里头没没说。哎呀哎啊,走了,哎,等会我看下这个。这个啥玩意 哎,树啊,我上去看看啊。啊,这是个啥这是不是那个他说跳,观点呢,在三杠二呢。跳啊,也没准啊。哎,还真是啊,你看搁这能跳到四 啊。走了,哎呦我去,上哪去了?上上地下去了 啊,走,哎呦我去,这么准啊,哎呦,他那个炮弹啊也也那个有变化,让他呲个大牙是吧, 要比原版他织的有点那啥。 来,加个速,拿上山走好走,削一下削,哎哎哎,也没碰着没碰着拉倒吧。哎呀 走羞羞羞笑一下。 好嘞笑哎嘿 我好好好呀这怎么还有坑呢哈哈没注意我也直接走过来啊又坑了, 哎让我蹲着跳蹲着跳还跳小了,跳那个火上了哎哎我去这个其实也应该小跳教哎 你冒充库吧是吧,那不行来吧四杠一叫一下,哎叫我去好悬呐。 哎呦哎叼一下笑 哎他这个云他也变了你发现没哎我上这头看好我去 哎不用啊,我从这走吧就就完了呗我都何必呢哎一招踩俩厉害厉害啊啊 来吧四个二哎他这个没水关是吧,有意思。哎呀 啊这么的要削我要撵上他哎好,削死不是削死是踩掉,削死这玩意他就又不是活的, 哎这么准啊哎啊厉害厉害了耶完了哎好嘞哎这里是啥拱这拱耶完了给棋给干掉了不要了 来四杠三哎嘿掉掉哎走掉掉啊抓。哎呦我去 哦人家刷大嘴唇子上大嘴唇子滑哦啊没事该潇潇走跳跳,哎所以说他这个改版难度四 这种啊刚送完就掉坑了不是很难啊,而且关卡也不是很多。削哎啊跳过来了我以为跳过来呢哎 这么短暂吗我不踩他其实没啥事我去这怎么嘿。哎呦我去这地方不是太好跳啊潇潇好了 来吧四杠四。我去这怎么这么大点儿啊,往回点儿交交一下哎交好嘞 好,接下来直接往前走啊,下边那个不是正道下面那个进去之后就回家了就回到头了, 我这最关键疼啊不是说回到一杠一了哎嗨 哎啊这么个情况 敲腰哎把这张直直走过来。对 呀哎呀哎呀走呀呀这只走的啊。 这回酷吧出现了吧哎啊你再不出现没没机会出现了这回哎他这个火也变样了啊笑死他吧,这剩的啊剩正好二百五十分钟。二百五十个十年单位啊不是分钟 啊。谢谢你贾里奥。是啊,你完成了任务呢。他说我他说我们给你一个惊喜啊。来我们奖励给你一个新的任务啊按毕竟就选择一个世界是吧。啊能选四关是吧啊那咱 选店啊,那个才是杠几的他那选不了。哎呀那咱得那啥吗是吧。哎呦我去 你个小破王八整死我两次了。别嘚瑟再嘚瑟一会还能给你整死啊。走,咱得去找那个五杠一嘛是吧找那个隐藏关去呀 呀呀。哎呦啊没事来啊。 哎对我要加个。加啥我要加花没有啊,这个花我不想加。我刚说完不想加就踩上了这大嘴唇子花谁能受了你大嘴唇子 就给你干小我给你吃了就来吧二杠二二杠二应该有花了吧。哎来了对,我要这个花啊我可不要那大嘴唇子花 削削哎走跳跳一下呦呀我为什么不转过来为什么不转过来削啊走哎呦这么准呢,现在属于二洲木上那些 板栗都变成那个铁盖的了,然后这个乌龟呢啥也都走的贼快嗷快那种嗷来吧二杠三削一下。哎呦我去 走了撩哎哎撩一下撩一下。哎我去这么准的哎呀哎呀 削哎要不他回来就得给我干小哎走。 妈呀掉下来了又掉了,没啥事啊。哎呀这钉是不能跳太高不能跳太大。 嗯,打开我去,哼,来吧,二三四,往那个哪跳啊?往五杠一跳。往哪跳?往坑里跳,哎啊,这是这样,哎 哎哎呀呀哎,跳跳,哎,就这啊, 按这把这个这糖葫芦串给干掉。哎,哪啊这哦,哎嘿, 好,跳一下。哎呦我去,好悬呢啊,就这来吧,五杠一啊五杠一就一管啊这管,而且这一管啊,你看这人有点飘飘悠悠啊。那个那第一版那个介绍里头也说了这个五杠一他是属于那个。 就是叫啥呢?失重的这个世界啊, 就是不是你的痛,哎呦,不对啊,哎哎哎,一定要创一下子,不然的话他这个飘的太慢了。 他是飘不过来的不是飘不过来,下落太慢了,完了,不行。哎呦我去,你看看,这跳的太难受了,你看看, 哎呀,跳跳这老高,我就按个小跳。我这个小跳你看跳多少高。完了,果然是失重的,这个 失重的世界是吧。哎呀呀,这啊跳,跳不了,那好, 这么的还不好整呢 啊跳,呦,好,要修好 上这哎,走,哎 啊跳,好好过来了,反正这个五杠一老些,这个管了,他现在都钻多少个管了,不记得了。 哎,好,那这肯定进这个了哈。不是进这个,这是速吗?上来滑速。 那这应该就是了吧。啊 我去,那我直接跳这个,你看他跳的太难受了。哎,没有啊,那就直接过了啊, 好了,这啥都没有啊,完事了啊啊这就完事了,完这个回去还能选吗?好像是选回去,他也选不了五杠 倒回来吧。行了,那这个版本就到这吧是吧,就分享到这啊,超级加里奥兄弟是吧,家里要与友谊挤是吧。 好了,最后还是感谢大伙观看,也是希望我这视频能给大伙带来更多的欢乐,咱们就下个游戏,再见好了,拜拜。
十二月九日,有开发者发现扎巴存在严重漏洞,而这个漏洞严重影响到玩家安全,这个运行过漏洞可以使他人接管操控服务器或其他玩家的电脑。 国外论坛也在昨日证实了相关消息,但现如今这个漏洞已经有了解决方法。根据 pcl 官方说法, pcl 客户端已经修复了这个漏洞,其他客户端也可以按上图纸时来修复。 至于服务端方面,广大辅主可以到 paper 官网, paper 官方表示已在十七和十八版本修复了这个漏洞,辅主只要下载最新版本即可,别忘了点赞分享让更多人知道。
今天的课程呢,就是其实是讲一个 web view 的一个架构, 好吧,这是一个 web view 的价格,因为现在来说啊,根据我们的一个体会,就是我们上课的,嗯,这个小学课堂的这个老师的一个反馈啊,就是使用 web view 的同学啊,越来越多, 问的问题也越来越多,问的问题也越来越多, 嗯,使用 vivo view 的场景也越来越多,然后呢问题也越来越多,问的问题越来越多。这个不一定说是 vivo view 的问题越来越多啊,就是说同事们对这个, 嗯,这个 vivo 的使用的场景越来越多,所以他问的问题就多,不是说 vivo 本身问题越来越多,不是这个意思,好吧,所以从现在来看的话,因为大家现在都知道我们现在手机贷款越来越宽,对吧? 速度越来越快,所以呢,用的场景越来越多。 肯定十年工作经验,我零七年就研究生毕业了,十多年了,十三年了,同事们好不好?我们不不不不,不聊这个,如果同学们聊这个职业,经职业什么规划, 或者说对职业有什么,嗯,想聊的同学们可以加我的 qq 好不好?二幺二四零四三幺六五,我们我们 可以课后聊,好吧,所以呢,这个没有问题,但是我们课堂上面我们我们不聊这些了啊,真的没时间, 所以呢,我们就我们的课程啊,就是要关注这方面的一个问题,我们到底该怎么样使用 vivo view, 这是我们的一个重点。这个东西呢,说难不难,说容易也不容易,也不是什么难不难吧,对吧?就是用好不容易, 会用不难,能够把页面加载出来不很容易,但是你要把它用好呢,好像不是这么简单,所以这个请同学们注意啊。所以呢,任何东西就是,嗯,如果你只是说简单用它,安全性问题,漏洞 问题,都不是重点, ok? 安全性问题,漏洞问题,现在都不不是不是重点,没有什么太多安全性的问题了。四点四以上,所以我们今天晚上不讨论四点四以下的手,五点零以下的手机。 对对对对,这位同学说的很对。这位胡同学,我们今天晚上重点的是讲什么 h t m l 里面的什么 j s 和什么呢? native 的一个通信架构, 你说 vivo view 把这个页面加载出来,这个好像跟我们没什么,没什么太多关系,是吧?同学们,好像很简单,我不知道同学们是不是这样子的,就是直接怎么提一个 vivo view, 对吧?来继承 一下 a b p compact 的 activity, 然后呢,这个 activity 里面有一个 web view 的一个 x m l, 接着呢,他就出手划他一下,嗯,设置一些什么东西,嗯, javascript interface enable 啊,或者是说,嗯, 还有一些什么 web view client 呀,或者是 web clone client 呀,都把它设置一下,这最后就是漏的。 u i l。 同学们,是不是这么样子用?用的是这样子用的,同学,刷个一。好吧, 同学们,是不是这样子用的?我想问一下,同学们是不是这样子用,自己调大一点, ok, 可以了吧?好像都是,对吧?我就是打一个,打开一个页面,加载一个网页 出来了,完事。这样子,如果你是纯粹的是打开一个什么来着,打开一个静态的页面是没有问题的,就是你就是真的是只是打开一个关于的页面, 即使内存泄露的问题,我们今天晚上有方法解决好不好?我们待会会聊,不着急。 anderson 同学,不着急好不好? 其实这个就是嗨不瑞的吗?就是嗨不瑞的,我们今天晚上会聊这个问题。所以呢,这种方式你说有问题吗?好像也没问题,能跑的通对吧? 有的同学说用的是叉五的 vivo, 哎,这个东西,我我我,我们待会再聊好不好?叉五的 yo 这个问题呢?嗯,我觉得这个时代好像没 没有,没有什么太多必要了。我我我,我工作当中用过叉五的 vivo view, 好吧,这个具体的我我们也不不了,讨讨论这个,你是使用系统的 vivo view 呢?还是叉五的 vivo view? 好吧。所以呢,很多同学他是这样子用的,但是这样子用他有个什么问题啊?同学们,我们的 a p p 不是要组建化吗? 对吧?我有多个不同的组件,那我每个组件可能对 web view 的需求是不一样的。对 web view 的需求不一样的话,那么他是不是说, 是不是说我每一个组件里面我想用的人都去写一个这样的 where view 的 activity, 然后再打开它呢? 这样子显然是不行的,对不对?每个人写出来的东西都不一样。我们是属于什么?我们的课程?我们的 vip, 我们这个是 vip 的试听课,对不对? 我们试听课的意,试听课是面向什么?高级和架构师,就是你的目标是向高级进发或者架构师。那我们如果是架构师的话,那你就不能够说只是为自己考虑。 okay, 你写的东西要提供给所有你的团队成员使用, 这就是架构师的意思意义嘛,不然的话你也写一个页面出来哦,自己可以跑得通,他也写一个页面出来,这个就不会没有什么东西啊,没有规 规范嘛,没有方圆嘛,对不对? 无方圆不成什么来着?这句话怎么说的我都不记得,所以这个请同学们一定注意。我们的话就是希望什么呢?封装出来一个架构,所有人你都能用我 不成规矩啊,没有规矩不成方圆,对不对?哦,我发现一下子忘了这句话,不好意思啊,就是我们希望我们的 vip vivo 像安娜老师,今天晚上我们待会会看到的就是什么呢?我们是有一个 vivio 的一个组建 这个组件提供给所有的 a p p 来使用,所有的 a p p 的组件来使用,然后呢?应用的什么东西啊?组件它不需要知道 wifi view 的开发使用,这是我们的一个重点。 ok, 这我我不是不知道,董事们明白了,我们今天晚上的一个,呃,一个目标没有,我们就是搭建一个模块,搭建一个模块呢?然后我们这个模块是提供给所有的组建使用的,然后使用者呢?还不需要知道啊?不需要知道。对,打错了, 不需要知道怎么使用 vip 好不好,他只需要按照我们的规范来做就行了。 ok, 所以我们今天晚上的目标,如果同事们待会听着课,哎,发现这个课程还挺有意思的,对吧?然后呢?还怎么样啊?还有些内容没有, 你听一遍可能不一定百分之百他能够掌握吧,如果你是需要这个,今天晚上这个录播的 anna 老师已经在这里录了,对吧?你可以加呢月亮老师的 qq 好不好?加月亮老师的 qq, 拿到今天晚上的这个视频, 同时呢,请同学们记得,就是我们这个是 vip 的一个试听课, vip 的试听课的话呢,请同学们注意。就是 就是,怎么样啊,你要听一下我们这个课程对你自己自己是不是有帮助,如果你觉得,哎,挺有帮助的,还能够学到很多东西,那我就觉得你应该能够什么长期的跟踪,或者是说加入我们的 vip 课程, 因为我们今天的这个试听课是不成体系的。 ok, 是不成体系的,如果同学们想系统的来学习的话,这 一定要加月亮老师的 qq, 月亮老师可以加你加我吗?你加他就行了。这个 qq 我已经发在这个里面了好不好?我们呢,这是我们今天晚上的课程目标,那么我们 vip 的老师里面呢,一共有八位老师,我们八位老师呢,都有十年左右的工作经验。 嗯,这个呢,有些同学拿的相片是年轻的时候的,有的有的是按你像 g d 老师,嗯,跟我的年纪差不多,按老师放的也是年轻的时候的一点一张照片好不好? 好吧,所以呢,嗯,我们每一个老师的负责的方向都不一样。在我们的课 vip 课程当中,安娜老师呢,属于个人开发者出身,所以呢,我只动一点点 a p p 像 a b 老师跟 c 位老师来自于三星跟中心。哎, c 位老师还在 在阿里工作过,所以呢,他们是专门对这个 from work 算法设计模式这一块非常了解,非常精通好不好,我们也也 大家都知道做手机出出出生的,那你不了解这个 pro mark, 怎么可能去改这个手机里面的 bug 呢?对不对? david 老师来自于腾讯,他专门做优化 jt 老师是架构好不好?我们的 king 老师呢? king 的老 king 老师呢?他们是专门是做讲这个嘉宝方面的课程,因为我们这个你要做这个 按座椅的程序员的话,如果你的家,我的语言都过不了关,那你肯定不可能成为一位优秀的这程序员的,好不好?所以我们的课程的话大约有八位老师。八位老师呢,我们有都有十年左右的工作经验,我们 希望通过八到十个月左右的时间,把我们十年的工作经验分享给同学们啊。如果同学们觉得,哎,听了课程有帮助,那你就可以考虑真的系统的来学习了,好不好?那么我们今天的这个课程的话,既然是要解决这个问题,对吧? 这两个搭建一个架构,这个架构是一个什么样的架构呢?我们首先要说清楚,刚刚有位同学提了,是不是说什么来着?是有个什么内存泄露,对不对? 我们是不是能够不说是避,完全避免,是不是能够优化,对吧? 第二,我们的 i 可靠性问题是不是能够提高, 对吧? 可靠性问题能不能够提高,你说绝对的解决这个是很难的,对吧?我们就不说那么满的话。第三,这个事情到底好不好用啊?对不对? 就是友好性问题, 友好是不是友好?所以呢,我们今天晚上就要把这个三个问题都来弄清楚,我们主要是讲通信的架构啊,每一个 webmu 的这个细节我们不会太去抠,如果我们一堂课讲不完,我们主要是讲这个什么呢?重点是通过什么 h t m l 和这个 leader 五的通信来介绍这个 wifi, wifi 的使用。 哎,这个价格啊,这个,这个一个模块好不好?那么一开始我还没这个课程没开始,现在不是都在搞 flat 什么东西吗? 这个如果你是想了解这个 flatter 的话好不好?那你呢?可以加月亮老师的 qq 和 nars 老师商量一下好不好?那安安的老师呢?其实对 flatter 还是确实没用过,我用过,我当用的用过一件,一点简单的,我不敢,我不敢去怎么说是 duck 对不对?我不好怎么去评论他?但是你想一下,整个互联网都是 h t m l 所以呢,你说 flat 能够在 ios 上面能够长久的去生存的很好吗?我也不好这么说这个事情, 好吧,这个我们就不讨论了,所以呢,反正不还。不管怎么样,言而总之,总而言之, h t m 这个东西是逃不掉的。 okay, 这个按,呃,这个我相信同学们都都都能够同意按到,老师观点对不对?随便你的。 flat 怎么样,你能淘得了 htm 的内容吗? flat 能够在小程序里面用吗? htm 会在小程序里面用。 okay, flat 能够在 pc 里面用吗?好像也用不了, 对不对?那是不是 r n? 也讲一下, r n 这个东西就不要去讨论了好不好? facebook 自己都放电了,你还在去用 r n, ok, 这个我就不想再再去讨论了,我是绝对不不不,不建议同学们去使用 r n 的,你还不如说去用什么幽灵 a p p 呢?但是 uni a p p 也有问题,你还不如说直接用那个什么来着, a v o e view 或者输入 angela 好不好? native 功能能不能够完全被跨平台替代?呵,这个,呃,跨平台这个事情其实说了十几年了,同学们好不好?嗯,请你放心,这是绝对不可能的, 短期内是绝对不可能的。实际说了多少年了,都说 html 代替 native, 但是代替的了吗? 好吧,我们待会会聊这个事情好不好?我们先,我们先明确我们的目标,四个内容,内存线路和核心问题。好不好用, 主要是通过通信来解决好不好?对,你说现在的呼呼,这个什么来着?对,混合 have 的才是趋势。你说 html 替代,同志们,没有?我最近还碰到了一个什么 uni a p p。 嗯,怎么来讲 uni a p p a uni a t p 的乱码的问题,我靠死活减活解决不了, 因为它怎么样啊?不支持 ss system。 好好好,不好意思,不好意思啊。所以呢,这个,我们,我们,我们可以后后待会再聊好不好?同学们,有什么问题?我们聊这个问题,安娜老师的经历还是有一些的,我们可以再聊一下好不好? angela, 我也用过,嗯, uni a p p 我也用过,哈哈。嗯, flat 呢?我稍微懂一点点。好吧,这个 h t m 用的比较多啊。 那么怎么解避免这个内存线路的问题呢?为什么会有这个 o m 呢?因为这个 vip view 的占用的空间很大, vip view 几十兆,你要想他要去解决什么呀?从 从这个什么来着,从九十年代到现代,一堆的网页,他要去解析同时兼容性问题 review, 你知道有各种兼容性的问题,有很多崩溃, 就像我们今天晚上安乐老师在这里做了一个崩溃,对吧?我们这里也有崩溃, 对吧? review 经常有崩溃,那么这个问题怎么解决呢?其实我们今天晚上就是用了一个什么东西,因为你内存很大,你内存很大,那我怎么样? 对,这个同学,你看 brass 同学说用一个独立的进程,对吧?因为 minix 是通过什么东西啊?分配内存,是对进程进行分配内存,对不对?我们的 web view 一共就有几十兆, 那我总共 a p p 可能就没有那么多了,还有一个什么来着?加我的虚拟机,那都很占内存的,那被这两个东西如果我们就占了一百多张内存的话,那当然呢,很容易就很容易出现内存泄露,内内存,呃,什么 o m 的问题啊? 所以我们今天晚上确实就是用了华信城的方案,华信城的方案不仅仅是我们在用,你看一下同志们微信,对吧?内存溢出,对,微信 还有什么来着?嗯,这个什么微博都是用了一堆的跨进程啊,进程多进程的方案,所以这个我们今天晚上呢,就是通过一个跨进程来解决这一个内存的问题。那么这个事情怎么做呢? 我们只首先解决这个问题,好不好?我相信同志们都知道我们今天晚上是怎么我们把这个 web view 放在一个独立的组件里面, 我们把它放在一个独立的什么东西啊?独立的 model 里面,那么怎么样呢?跨进程,我想我,我想问一下同学们知道不?能不能够回答一下怎么让他跨进程,这个事情太简单了,我们一句话就说完了, 怎么样呢?像让这个 v f 六划进程,有没有同学能够回答一下 这个事情很简单,同志们,没有同 能回答出来吗? process 属性回答的太好了,我们不是会有一个 activity 吗?我们的一个 activity, 我们就是把它放在一个什么,很简单,一行代码就解决了。 所以同学们看一下 anna 老师,这个地方,我打开一个网页,那么我们在 look at 里面我们就能够看得到。 anna 老师,这里有几个呀?有几个进程啊? 看到了没有?同志们,我这里有两个进程呢,一个是 web view a p p, 一个是 web view a p p。 冒号 remote web。 这个能够放大一点吗?我不知道怎么放大一点。这个框框看清楚的同学回个一好不好? 我们只需要在我们的这个 activity 里面去加一个安座椅的 process 就 ok 了。我们的这个东西就有多个进程了,这个事情是非常非常简单的好不好?所以这个内存线路的问题我们就是这么解决的, 但是有了内存线路的问题,嗯,内存线路的问题解决了,他还能解决其他问题吗? 好吧,这个,这个没有错的好不好,这个它系统打印出来的,主解决内存线路的问题,而内存溢出的问题还有没有其他方?还有什么优势啊? 因为这个 vivo 不是有可能崩溃吗?但另外一个问题,它其实是属于什么东西?同学们, 它提高了可靠性。你看,安了,老师,这个地方安了老师,这个地方怎么样啊? 为什么内存泄露?你内存,内存占用多了,没有成块的内存能够分配满足你的这个要求了?碎碎片的内存太多了,或者是说啊,你没有那么大块的内存了,他就泄露了,就就就分配,就输出失失败了呗, 好不好?水倒满了对不对?没有,没有东西能够分配给你了,我就内存满了,分配不了的就溢出了。 好吧,那其实这个跨境层还有一个好处,同学们看啊,你看,我这个是在一个跨境层的,一个一个呃,一个 呃,进程里面,对吧?这个是一个网页,一个本地的网页,我刚刚测试一下,我让他崩溃掉,但是你看到吗?我的 a p p。 崩溃了没有?我的 a p p 这个进程崩溃了没有?我们的应用崩溃是针对于进程的, 明白了没有?明白的同学,刷个一好不好?一个进程的崩溃并不会导致另外一个进程的崩溃,崩溃导致你本个整个 a p p 的崩溃。 f c 是针对于什么来着?针对于进程来说的, 所以我们就这一行代码解决了两个问题,减少了内存溢出的可能性,提高了 啊崩溃导致 a p p 的数据丢失的可能性。我们说说话要严谨一点啊,并不是说没绝对没有崩溃啊,没有溢出只是减少了可能性。两个进程会多占内存吗?当然的, a i d 我们待会会讲好不好,同志们不要着急。两个进程会多占内存吗?那,那当然是以进程为为单位的啦, 对用户来是崩了,是崩了,但是它不影响我的 a p p 啊,我的 a p p 的数据不会丢, ok? 就说 web view 进程的崩溃并不会导致我 a p p 进程的崩溃,所以我 a p p 的数据不会丢失, 这是不是提高了可靠性 好不好?但是有一个问题来了,我们将这个东西放到了一个独立的进程里面以后, 是不是会引发一个新的问题?就是刚刚有同学说的,怎么进行通信,对不对? 注意完,我们这个地方我们要弄清楚一下,同学们,你注意啊,如果你听着听着有些地方你听的不是搞得很明白,那你呢?可以加月亮老师的 qq 好不好?加月亮老师的 qq 要到我今天晚上的视频。 然后呢,我们这里是属于什么呢? a p p 的一个进程, 我们又溜出来了一个小 什么东西啊? web view 的一个进程,对不对? 又溜出来了一个 web view 的进程,那 web view 的进程里面有什么东西啊?首先我们是一个下面,里面其实是个什么东西,同志们一定要弄清楚的啊,这里面其实是不是一个 activity 啊? 这里面其实放着一个 web view activity, 这个 activity 是属于什么东西的啊?是原声的吧,对不对? 好,我的原声的 activity 里面有一个什么东西啊? 我就画小一点啊,其实他 应该是画画长一点的,我画小一点吧。好吧,因为我还留点空间在那里有用,实际上面我这个里面才是一个什么东西,这里面才是属于一个 html 的页面呢, 我这里面才是一个 html 的页面呢。好,那我 我们他有了好处,就是什么东西啊,减少了一内存溢出的可能性,提高了可靠性,对吧?但是他有新的问题产生了, 我的这个页面如果仅仅只是打开一下,那同学们就完了,那其实这个东西就解决了,没什么。但是实际上面我们,我们通常来说,我们这个 web htm 是不是会跟这个 什么我们的 a p p 进行通信呢?是不是又跟我们的 a p p 进行通信呢?那这个问题就大了,对不对? 问题就就来了,你先要怎么样啊?你是 h t m l, 你要先到我的 vip view 里面, vip view 是原声啊,先从 h t m l 到原声,然后再到我的什么 a p p 嘛?我的主业务都是在 a p p 里面的,我这这个 a p p 里面通常都是一个一个模块啊, 每一个模块可能它的功能都不一样,对吧? 好,那这样子,我我我这个是还好说,如果你只是说要告诉我要我的这个模块里面去打开一个,比方说打开哪个页面, 那这个很简单嘛,你只要这样调一下,我有的时候是不是还有一种情况,就是我请求你这个 native a p p 的 native 舞,对不对?原声,对,这个是原声啊,做了一些事情。哦,原声 做了一些事情,我同时还需要有一些结果回回去啊? 对,是班的,是吧? a i d l, 对,我同学还要有一些结果能带回去,对吧?这是不是我们的一个主流 流程?是不是就是这么回事?同学们,对吧?最复杂的一种情况就是说我请求你的 nate, 我做了一些事情,然后呢?你做完了以后还要通知一下我,是不是就是这么一个流程?这个流程,明白了,同学,刷个一。好吧, 好吧,我们就是要完成一件这样的事情。好,那我们这个这个什么来着?跨境层的这个东西已已经什么已经解决完了,就这么解决,那么 那个主流程,那这到底是怎么回事呢?我们一步一步来,我们先从这一个地方出发好不好?从 h t m 出发,这个里面我们需要怎么样啊?我们把它叫做第 一步,第一步、第二步、第三步、第四步,好不好?同学们注意看这个图,我们有四个动作要完成一条主流程,就是这么回事 好不好?就像这一个页面一样,我们可以给同学们看一下,像这个我只是打开一个页面,什么都不做,那这个其实只用了一和二, 如果说我要登录一下,我要请你登录用 note 我的登录,对不对?然后呢?你登录完了以后,你还要告诉我你用户的信息啊, 我要去做什么页面上面的其他的事情。拿到你的用户信息以后,比方说 token 这个 整个流程会是什么?你看显示到了这个页面上面,这就是走了一二三四。明白了,我们今天晚上主流当中同学回个一,好吧? 所以呢,我们今天晚上要把这个东西捋清楚。一二三四,这个登录我们是跑了一二三四的,但是我们打开一个 activity a, 只跑了一和二。另外还有个问题是我打开 activity a, 打开 activity b, 有,有没有什么不一样的地方呢?我们不是说有一个友好性问题吗?我们不希望同事们是怎么 打开一个 a 页面改一下代码, 打开个 b 页面又改一下代码,那这样子的话,友好吧?肯定不友好,对不对?我们希望是怎么样啊?尽可能不是有个什么来着? 开币原则吗?尽可能少改代码,我封装好了以后尽量的少改, 所以我们希望我们这个 vivo view 具有一定的扩展性好不好?如果他说要做一件另外一件事情,打开一个 dvd c, 那么汉德老师今天晚上的这个架构是完全不需要怎么样啊?不需要改一行 native 的代码了, ok, 所以我我相信同学们明白了我们的目标好不好?我们来看一下,我们从第 第一步开始我们怎么做?第一步里面我们来看一下,我们是在一个本地有一个页面,叫做一个 aidl 的页面,就像我今天晚上的这个地方一样, aidl, 我要去请求,我要去打开 act t v d a, 我要怎么做呢? 对吧?这是一个 h t m 啊,你看到吗?我这个 h t m 里面是不是对应的就是四个页面啊?四个半钮,四个按钮里面每一个点击的事件做了一件什么事情啊? 掉了一个,是不是掉了一个 g s 的一个方法函数,对吧?这个就是 g s, 这其实是属于什么呢?前端的是,呃,同学要去写的,那我这里打开 这个调用的这个方法做了一件什么事情呢?同学们,我们今天晚上的这一个,所有的这个调用通信都是基于一个什么东西啊?基于命令的, 那么这个命令是什么意思呢?就是我要你干一件什么事情,我请求你帮我做一件事情, 那么这个命令里面有什么东西呢?我们来看一下安老师的这个里面啊,我这里有个命令,对吧?我这个命令里面有个什么东西?同学们,很简单,命令里面有个名字,还有个什 什么东西?有个函数就是执行,我把参数给你,你执行完了以后呢?还有一个 corpack, 这里不是有第三步、第四步吗? 你要,你要把这个结果告诉我呀,就是这么个事情,所以同学们看到我们这个页面里面都是干了个什么事情?有一个命令的名字还带了一个参数,对不对? 这里面没有回调,你问你是 native 吗?没有回调到这个地方,听清楚的同学刷个一好不好?明白了,我们这一个 啊,今天晚上的这个重点啊,基于命令分发的,你看安娜老师这里面都用的是什么东西?命令的名字加参数,命令的名字加参数, 还有一个回调,这里面是有回调的,因为我这是不需要回调的名字参数。回调 名字参数好不好?但是我们这里面到了哪里呢?好,这个 h t m 我们已经分析完了啊,我们这里面是不是引入了一个 d j 的一个方法,一个一个 j s, 对不对?这 d j 的这个里面有什么东西啊?同学们, 哎,今后我还要把这个东西精简一下好不好?把 ios 的内容给去掉,因为这个是经历,经历什么呢?其实是兼容于这个 ios 的,这里面有两个重要的方法图,你们看到了吗? 命令参数,如果是按座椅,我会去掉什么东西啊? window, window, 这个是属于什么 htm? web view 里面的一个对象,这个窗口,窗口里面的 web view, web view 里面的 pose 的方法, 对吧?那如果是 coolbag 的话呢?我会把这个 coolbag 的这个参数带过去,你看了吗?我这个参数除了这一些参数以外,对吧?我会把这一个参数的 coolbag 的名字也告诉他, 所以我一起到了。其实你看到吗? web view 里面只有一个方法, 不论我怎么做,你即使是要带 coolbag 的,我只是把这个 coolbag 的名字带上去,我并不会在我的网页里面并不会做什么事情。同学们,我并没有用其他方, 只是参数里面多了一个 coback, 如果不需要 coback 的,他就没有加这个参数。如果要 coback 的,他会加一个参数,因为你回来的时候你要钓谁啊?我把这个参数给你嘛,我告诉你嘛。这个地方听清楚的同学,刷个一啊。 我们从 h t m 里面已经到了 g s。 这还在,还在第一步。同志们,还在第一步。听清楚的同学,这一到这个地方为止,从 h t m 到 g s。 听清楚的同学,刷个一啊。我们就一步一步往下走。 这个还这个,这个事情很简单吧,太简单不过了,对不对?他只需要带一个什么参数?命令名字好。那 同学们有没有疑问,这个 vip you 哪里来的?没有做过通信的同学可能不知道。同学们有没有这个疑问,这个 vip you 这个对象是哪里来的?这个是 vip you 里面的。那这个 vip you 里面这个 vip you 是哪里来的呢? 啊?没有同学有疑问吗?有同有疑问的同学,刷个二好不好?哪里来的? 我的天空同学回答的很对,是一个 interface, 对不对?注入的。这个嘉瑞同学也说的很对,他怎么注入的呀? 啊?同学们,在这个地方,我们这里有个 web best web view。 你看啊,我这里有个 best web view。 继承于系统的 web view 继承于 shift 统的 web view 里面里面有一个什么东西呢?有一个 interface, javascript interface, 这个是一个注解,那这个东西是怎么注入进去的呢?是在我初始化的时候,我这个 web view 里面不是一个自定义 view 吗?你看我这里面有几个,四个构造函数对不对?三个,我这里只写三个对不对?实际上面我们的自定义都有四个构造函数,对吧? 按着老师这里只写了三个,好,那每一个三四乘以六, 为什么要四个构造函数啊?有没有同学回答一下,来个面试题好不好?基础的面试题,有没有同学知道为什么要需要三个构,四个构造函数? 有没有同事回答一下?不同版本呐,好像不是不同版本不同来源,它的参数的不同来源不一样,对吧?我们 x m 里面不不是会带参数吗?你的属性值来地地方不一样吗?对不对? 好,这个是一个很简单的题目好不好,我们同学们要学会多用自定义命啊,要多用自定义命。对对对对对,这个不明真相同学说的很对, 有的来自于主题,有的来自于 x x m i, 有的来自于六,好不好?初始化的方式不一样。对,要多用自定义六好不好?安娜老师在这里提一下,我相信我知道大多数同学知道,但是有些同学可能他,有些同学可能刚刚,有些同学可能不知道啊,对吧?这个 我不是要看的,哪位同学不是这个意思 and, 老师只是在这里提一下,所以我这里都有个初始化啊。 我就是花里面干了什么事情?同志们,我加了,加了四个 wrapped in the face, weapon view, 看到了吧,所以 weapon view 以后它掉的是哪个东西? pose 的就是这个东西啊, 第一步完成了没有?我们的第一步是不是完成了?我这里是 html 到了 gs 同学们, h t m l 到了 g s g s 到了 web view, web view 的话呢? web view 是哪里的?是啊,在英,这个我相信同学们都知道啊,这个事情其实就是 这个地方来的, at javascript in the face 来的。那这个 post 是哪里来的?是 java in javascript in the face 的这个方法 okay, 所以到这个地方为止,我们已经完成了第一步。完成了第一步, 对吧?完成了第一步,我们的 h t m 呢? web you 已经跳出来的 web you 的世界了,来到了我们的跨境城的 web you 的 activity 了,已经到了原声好不好?所以这个地方,同学们,这里是一个知识点。是什么知识点呢? 同学们,没听清楚的同学加月亮老师的 qq 要到这个视频,安老师尽量的多 多讲详细一点好不好?那这个地方是属于什么呢?我在这里打个字吧,是什么? web view? html? 什么调用 原声? native 五,对不对? 注物的概念不懂。这个是系统做的好不好?这个我我们就不用去关注他了。好吧,这不用去,不用去关注他,这个反正是系统会做。这个是这一步 完成了什么? h t e m l 调用 y 调用了原声的结构啊,这是属于挂件。 ok, 这是属于跨界了。从 h t m 跨界到了什么东西啊?到了 late 五。好,那到了 late 五以后,我们怎么样啊? 我们怎么样?我们的这个事情,比方说我们现在要做登录,对吧?是系统自带的。对对对,不要去搞什么 g s 桥了,这个已经过时了,不,不需要这个什么东西啊?不需要这个 g s 桥了好不好?直接用这一行命令就够了,一行代码好不好? 那这个地方我收到了。来自。来自于什么来着?天界里面的这个什么来着? vivio htm 的里面,天界里面的一个命令要我原生去做这件事情,比方说要做登录, 那要做登录的话,这个事情我的这个 review 的这个进进程的话,通常不会去管这些事情的,我不会去管的,对不对?所以我们希望他是怎么样啊?要回到我们的主进程吧, 是不是回到我们的主竞争?所以我们就会有一个命令的一个分发器去执行这个命令。 同学们看到了啊, anna 老师这里有一个命令的分发器,这个命令的分发器里面有什么东西?是一个单例 好不好?这个单历太简单了,单历有七种解写写的方式。同志们,这是懒汉还是恶汉?还是县城安? 还是变成不安全啊?同学们自己去想好不好?我不在这里讲了好不好?好,这是一个单例,单例的话做一个什么事情啊?这个单例里面有什么东西啊?同学们 啊,这个单例里面有个什么东西啊?我就要去执行这一个命令啊,你看到吗? 我要去分发这个命令,对吧?我要去分发我这个命令。分发器是在哪里呀? 这是被谁调用啊?是被 vip view 调用对不对?被 vip view 调用的话,那我需要怎么样啊? 对不对?哦,这个单列的 ins 等式加一个 money。 那对对,我来那。对对对对,但是这个地方我没有多个进程,没多个县城,不会有多个县城,不需要好不好? 如果我有多现成的时候是需要让他去通知的,实际上面我这个地方应该不会有多现多现成的,需不需要都不没有,没关系的。琼花落尽,同学同意安乐老师观点吧,我这里不会有多进多多现成,不会有多现成的调用, 如果你有多个线程的时候要加一个那个关键词啊,好,那这个地方我去调用的话,我就需要调什么东西啊?这些事情都不是在我的这个 vivo view 的这个进程里面能够完成的,实际上面我都需要在哪里 都要跨界啊,对吧?要跨界我就需要,怎么样?这个需要跨进程,不是跨界。我刚刚安老师说错了啊,这不是不是过,不是,不是跨界,是跨进程。所以我们这里面这有有两个什么东西啊? 这里一步的时候是没有什么第二步和第三步,虽然有 aidl 的加入。 我有两个 ai d l, 一个是 web process, 到什么东西啊?到 到这个 main process 的一个一个 aidl。 aidl 是什么东西我相信同学们都知道对不对?这是 band 的通信机制,这个你经常去面试的时候经常会被问到的, 这是基于内存的一个通信机具对不对?有个 band 有个驱动。好,那这个东西是在我的这个 a p p, 这个这个什么来着? vip 的进程里面去调用,但是他应该是被谁实现?同学们,我想问一下, 这个应该是被谁实现?有没有同学回答一下, 应该是被谁来实现它,我这已经到了命令的分发器里面了,分发器里面应该是主进程来实现,对不对? 主进程?我这里有一个主进程。同学们啊,我们一步一步的来,我这里有一个主进程的一个目录,你看到吗? anna 老师的这个 mo, 这个 model 的话是这个目录的话,是严格按照这个程 层次来分的。我有一个主进程的一个目录,这个母主进程的目录里面有个什么东西?有个主进程的处理的这个什么来着?一个 service 啊, 我这个 service 里面干了个什么事情,在是就是在他什么东西啊? service? 不是有两种通信方案吗?启动方法吗?这是其中的一种,不是四大的,这是 onband, 对不对? 这是给跨境常用的,我相信同学们应该有这个基础啊。我这个时候我应该反馈一个什么东西给他, 我们办的的时候我应该返回这一个什么东西,这是什么东西?搬的给他,是不是 stop? 这个是不是?不是 band? 我要返回一个 band 给他。同学们,这个是自己可以去看的啊,好不好?我这个就是一个 band, 但是我实现了这一个接口,这个接口里面有个什么方法? ai 点我全忘了,是吧?你这个你面试的时候经常会被问到,我继承于这一个班的,实际上呢?在我的这个主进程里面就怎么样啊?我返回了一个班的,你看到吗?这里就是班的吗? 对吧?这是个班的,班的,就这个,你其实就是个驱动了,对不对?好,我返回了这个 instance 给他,我这个 instance 呢?这个 manager comman, command manager 是继承于这个半岛的,实际上呢?就这个半岛吗? 这里又是一个单例,我在主进程就只有一个,好,我这个命令的管理器。命令的管理器是干嘛的?我这里有一个 hashi map, 同学们看到了吧?有个命令的名字到命令的一个管理器,你可以注册这个命令,然后呢,我又可以执行这个命令, 命令不是有执行的方法的吗?看到了吧,我这个命令管理器实在是非常非常的简单。还有一个是什么东西啊? 我这个里面实现了这一个。实现了这个什么东西啊?同学们,这个 star 里面是实现了这个 i web to main 的一个 jig, 这个 a i d l 的这个 a i d l 里面是个 什么东西?这是要被别人调用的哎。 band, band 是要被什么客户端去调用的?他会调用这个方法,这个方法里面干嘛?拿到这个命令的实地执行一个命令 就完了,对不对?这个命令是在哪里定义的?在这里定义的单数 go back, 对吧?我执行这个命令怎么执行呢?就是看我这里面有没有这个命令,有这个命令的时候执行参数 go back, 同学们看到了吧?啊,我这个主进程的,我也想这个太简单了,你看到吗?就是返回一个 and band 好不好?这边呢,我已经讲完了,我这里面是放了一堆的命令的,所以今后这个 a p p 来使用我这一个 wifi view 的时候,只需要在我这里注册命令就够了。 它需要懂 vpu 的开发吗?完全不需要,同学们 好不好?这一步听清楚的同学刷个一好不好?完全不需要懂 mpv 的开发了,待会同学们会看到好不好? 所以呢,你说作为架构师,架构师你不封装,那你叫什么架构师呢? 好不好?这个我们再解决这个好不好用的问题,好不好?好,这是我们的服务器,服务器在哪里啊?服务器在主镜 成呢,对不对?这个就是个服务器嘛,其实命令管理器就是个服务器嘛,我就得去给一个 service 嘛,或返回一个要办的嘛? 这个命令管理器就是管理这个命令,提供注册,提供执行,对吧?帮助执行,执行其实就是命令里面执行的 好,我们到了这个分啊,这个是我们刚刚说的,在这个命令分发的时候,对不对?他来执行的时候,我们就会去拿到这一个 band, 然后去调用就完了。我们这里会 new 一个 go back, 另一个 who bug, 这个 who bug 是给谁用的?是命令回来的时候要用的,这里是不是又 又是一个 a i d l? 回来的时候你要告诉一下我,你的一个状态码,你的一个 action 的名字, 你的一个 response 是什么? ok, 所以在这个地方的话,我们是不是就通了?执行是被谁执行的?同学们,在这个地方 vip you post 执行,执行这个地方到用 a i d, 要调到了主进程的 service, 到了这个地方,对吧? 到了这个地方以后就到了,怎么执行? handle, webag, web action, 执行这个命令, 对吧?这一个流程是不是就通了?所以这个第二步我们要完成了。同学们, 第二步完成了就就通了。然后第三步是怎么做的呢?我们来看一下,那我们现在就要讲了, 对吧?哦,这个里面这个初始化要不要安娜老师讲一下,有没有同学需要这个命令分发剂?你拿到这一个东西的时候,你去拿这一个接口,不是你要去执行了再拿吧,这肯定有一个,有一个初始化的动作嘛,对不对? 这个地方要不要按着老师讲?要按着老师讲的刷一下,刷个一好不好?不按着老师我就不讲了,这个其实因为你这一个接口的什么来着? 接口的怎么样啊?我,这一个,你说我,你要去调用远端,调用远端的时候是不是怎么样啊?你不可能说你直行的时候才去拿到这个远端的这个 i band 吗? band 吗?你肯定要怎么样啊?一启动的时候就把这个 band 拿到吧, 同学们,对吧?我在,我这个 web view 是放在哪里的?是放在一个 fragment 里面的,我这个 fragment 怎么样啊?我一启动的时候你看到吗? on 这个 view created, 我就会去初始画这个 a i d l 了,如果这个 a i d l 等于公,我这个地方是要怎么样?我去连接这个远端应该是一个 什么东西?是一个翼步的动作,同志们看到了吗?是个翼步的动作,他可能可能会靠时间啊,这个具体的话我也不知道多长,我没测试过,我会去连接这个 member assess, 连接 process 的话,我会起一个计数器,对不对?好,我去 band 这个 service, 我这个东西,这个是什么来着?一步操作吗?我会等待在这个地方, 我一直会等待在这个地方。好,我去连接它的时候,我加了一个 service, the connection, service connection, 等它连接成功了以后,我就会在什么地方拿到这个 bander, 就把它当 做一个什么东西用啊,就把它当做一个借口了。同学们应该看到这里 我否卖了一下这个代码,看到吗?我就不会把它强制转换成一个什么东西, 看到没有?强制转换成这个 band, 强制转换成这个 i web to main, 这个 a i d l 的代码生成了以后,会在这一个目录里面有,同学们可以看里面的代码, 来,这个里面,这个就是代码 and 老师在这里什么 把它 format 了一下,所以我们就能够把这一个班的当 做这一个接口来用了。这个接口是谁?就是这一个,我希望同学们这个这个 bander 的这个代码。看懂了啊, 据说我会把这一个 service abandon 返回回来的,当做一个强制转换成一个什么东西这个接口,因为我的这一个什么东西啊,我的这个命令管理器就是继承了这个东西的嘛, 你这个东西是记着什么干嘛的?实现了这一个吗?那我当然可以把你强制转换了,你是办的,但你同时又是实现了这一个接口, 对吧?这个关系听清楚的同学刷个一好不好?这个 band 是用来干嘛的?是提供服务的对不对?我要做通信用的, 但是他同时又实现了这一个接口,所以我拿到这个 panda 的时候,实际上面我也拿到了这个接口, 看到了吧?我希望同学们要怎么样啊?多看原码 好不好?多汉元嘛,你不要说 i bend, i'm bend aid ai adio, 你不来看,你不知道这个 band 其实实际上面写实现了这一个东西, 你以为是这个班的就是这个接口,不是的,对吧? web 是客户端, service 在主进程。对,这个郭金刚同学很厉害啊, 你是两个进程之间的通讯本本有什么效率的影响?这个 jl 同学不用担心好不好,完全不用担心,我希望这个同学们这个什么 aidl 跟班的之间的关系已经理解清楚的同学刷给你好不好?这个其实不属于我们这堂课的内容, 只是 anna 老师呢,这里是一个比较好的例子好不好? anna 老师,这里是一个比较好的例子。我们学东西要怎么样?串起来学, ok? 你不要说 a i d l a i d i 就完了。 a i d l 跟 band 是什么关系呢? 你看到吗?是通过 band 实现这个 ai d l 的接口, band 只是一个什么代价?一个载体。 对,所以这个没有关系的,不会有什么。然然男同学说的很对啊,这个 aid 啊, android 时刻在做进行搬运的通信,不会有什么效率的问题好不好?我们还达不到那个层面上面, 我们还达不到那个。呃,那个场面上面说,哦,我们要担心那个什么零点多少,微秒多多少,那秒好不好?那这个我们我们不用去关心这个好不好,我相信同志们也不会看这个这一点时间,他即使比你进程类的东西可能要稍微多一点点,也多不了多少。 好吧,好,这个地方我们已经知道了这个东西是怎么样了,我们在这个 fragment 不考虑这点性能了好不好?性能是要考虑这个地方的性能,我们觉得不用不用去担心了好不好,这个没关系了,所以我是实际下面, 我在这一个 fragment, 我们这个一个什么东西啊?在个 web view 里面,实际上面是一个 activity, activity 里面呢,是放了一个 fragment 的,安老师是这么做的。这个 fragment 里面才放了一个什么 web view 好不好?所以有的人说,因为安娜老师, 嗯,是这么认为的,就是他,有的人可能说,哎,我这个地方,我希望,我希望能够封装一下他, 我这个可能是这个按钮不一样,可能这个地方也不一样,我这个地方可能还放点其他东西,所以呢,我就把这个 web view 呢是放在一个 fragmented 里面,如果你要封装这个 tvt 的话,我提供这种能什么灵活性给你, 你可以去改,你就直接使用我的什么来着 fragment 的就好了,如果你说你不需要,那你就直接使用我的这个 activity, 如果你说你的 action bug 要改一下,那可以,没问题,你直接使用我的 flagman 的灵活性更高,对吧? 这个,这个地方听清楚的吧,所以我们这里你看到吗?有看到有一个 activity, 又看到有个 fragment, 它就是这么回事,其实没做什么事情。 activity 没做什么事情吗?没有,就是套了一个 fragment。 好吧,就是套了一个 fragment view 会更好。我演 view 好不好,但是呢,嗯,看怎么说吧,你用 fragment 的,我觉得也挺灵活的,这个地方你也可以用。哦,这个,这个也是 web view, 我这里面也是封装在一个 web view 里面的好不好。 加月亮老师的 qq 好不好?加月亮老师的 qq, 要资料的同学,你要视频 要什么?其他所有的。嗯,资料的同学,你都加月亮老师的 qq, ok, 好,我们这个地方就相当于在我的这一个, 对不对?我相当在这个 fragment 里面,怎么样啊?已经初始画好它了嘛,对吧?我在这个 view 创建的时候, view 创建完了以后我就去出创出。就是就是出去画它,然后我就去加载这一个。 不是 vivo。 为什么会内存泄露?内存泄露并不是由谁,是由你整个 a p p 导致的,不是由某一个人导致的,泄露的时候只是压死骆驼的 最后那一根稻草而已,好不好?当然也不一定是稻草,如果你说,你说你要怎么样?你要分配一个一百兆的内存,那你说是不是根稻草呢?我觉得也不是根稻草好不好? 就是,反正就是你的这个发生 o o m 的时候,就是说我分配不了这一块内存给你了,并不是说就没有内存了,对不对?你说你要加载一个一千兆的图片,那肯定就崩了吗?我没有这么大的内存给你吗? 好不好?所以这个 o m 并不是由于某一个人领取的,不是说由于你这个页面,是由于你整个 a p p p 里面用的内存太多了,或者说没有释放,或者说占用的内存单太太多了导致的好不好? 泄露只是内存溢出的一种一个原因而已好不好?内存溢出不是内存泄露。对对对,这是两回事情。 就说画个画个图,要画个图吗?就是我只有这么大的内存,你这里占了一块,这里占了一块。当然有些内存本来是可以回收的, 结果呢?你没有被回收,那这个东西就是泄露了。那如果有,你有很多地方的内存都泄露了 好,等别人要内存的时候,你泄露的东西太多了,就导致别人溢出了 好不好,不用解释这个了啊,好好好,但是有些同学不懂,所以我在这里解解释了一下好不好。溢出跟泄露是两回 回事情,泄露是溢出的一种一个诱因,可以这么说,好不好是其中的因素之一。还有这个这个这个事实是真的,这个有些同学可能这个基 jbm 的这个基础。要要要要要要去要去复习一下了。好吧, 内存线路只是内存溢出的一种一个诱因而已啊,好, 好,到了这个地方以后啊,我们还没有讲那个优化的事情呢,对不对?好,我们,所以我们这个事情就怎么样啊,我们出手画也出手画好了, 你看到吗?我们初始画也初始画好了,如果我初始画的过程当中失败了,拎个头 desk, 领个头 dance, 领个头 dance 的时候怎么样啊?我会再重连 我我会尝试去重连。这个是属于什么东西呢?这属于 ai d l 通信的一个基础,同学们,如果是说这个东西里面 这个东西没有没不是很懂的话,你可以加月亮老师的 qq 要到这一个什么东西呢?专门我们要利用。老师啊,这是谁?纳斯老师专门讲了这个 band 的这个通讯。好吧,这个呢?同学们专门的专门去找他们要这个相关的课程就可以了。 对对对,这个这个男男同学说的说的我这个好好,不要这么说,说的好,好吓人的真的。好吧, 是调用了班的应应。同学是调用了班的 service 调用了调用了,这里调用了班的 service 调的调用了班的 service 的同学。哎呦,不要说的这么恐怖了,我都,我都有点怕了。好吧,这个丘比特同卡比特同学, 这里是 band service, band service, 以后你有可能 band 不成功,或者是 band 的过程当中。呃, band 完了以后它有可能会断掉,对的,对吧? q q 啊?三四三三四二七七二九 三四三三七二四三四三三三三四三三四三四三三四二七七二九三 四三三四二七七二九。好吧,这是月亮老师的 qq。 好,这个这个我们已经讲完了,这个你看这个很简单吧,真的,你看这个是命令管理命令分发吗?分发,你首先要连一下吗?把这个连接建立好吗?这个就是管理连接的,然后呢?执行,执行做了一件什么事情, 直行直接就调了一下,然后就传了一个扩版给给他,这就太简单了,对不对?所以这个地方你看这个我们也讲完了,命令讲完了,这个地方是属于优化的内容,我们不讲了,这个是优化的一个 service, 这个其实就没什么。这个我这个是在我们的 vip 课程当中会去讲这个优化的内容,我们今天实在是没有, 没有这个,没有时间去讲这个优化的。好吧,我,我没有把这个内容删掉啊,那这一个是什么呢? settings, settings, 这个我们把它放在一个独立的地方,这个里面的每一个属性是什么意思 啊?回来是什么意?这个这个什么来着?这个回调能回来大图吗?是什么意思啊?我没看懂。英语同学课后再问我。好吧 好吧。好,这个是,这个是属于什么? satans 这个 utility 题词我们就不这个,就是一些工具类。还有 web view 里面有两个什么东西很重要的, web view 包括了几个部分呢?同学们, web view 有四个组件, web view, web settings、 web view client, web grown client, 还有个加我 script interface, 好吧,所以呢,安娜老师都分别把它放在一个独立的目目录里面,当然这个内容其实同学们都在网上找的到,这个东西就太简单了,有一些嗯,要注意的地方呢,也是很细节的东西,同学们碰到问题去找也很容易, 所以这个 when preview 的这个 motor 基本上就这样。但是现在来说有一个什么东西呢? 这是最终最终的封装好不好?然后呢,我们来看一下我们是怎么回调的好不好?我们现在不是说有个登录吗?对不对?登录的这个命令是怎么实现 线呢?我们要讲到怎么用呢?我们的整个流程是通了,对不对?我们这个地方,你看我们这里收到了这个请求,收到了这个请求的话,我们会把这个三个参数都给这个命令, 但是我们现在还没有讲命令呢,对不对?命令是怎么做的呢?我们现在从从这个什么漂洋过海,从这个 vip view 到了这个原声,原声又到了主进程,漂洋过海已经到了主进程了,对吧? 好,到了主进程的话要去执行命令呢,小同学,对吧?那执行命令的话怎么执行呢? 所以这个里面就涉及到一个使用的问题了,使用是怎么呢?我说了,我们这里面今天晚上只有一个组件,叫做 a p p 的一个组 键,对吧?我们就去最简单的嘛。 a p p 的这个组件里面要怎么样啊?我提供了什么?四种服务对吧?我提供了四种服务,你看到吗? show tools 的登录打开 activity a, 打开 activity b。 好,四个服务是多少个命令?有没有同学回答一下?有没有同学能够回答一下? anna 老师,我这个四个命令。四个服务有多是几个命令 啊?四个,三个,一个 啊,三个的。大部分同学还是都是回答的是对的啊,是,是三个命令啊,是三个命令。我们来看一下我汉的老师是怎么用的, 所以我在我的 a p p 启动的时候就要去初始化这三个命令了, 一个是登录的命令,一个是陆游的命令,一个是什么? toust 的命令。这个东西简单吗?再简单不过了,你看我这个是个 toust 的命令, 我这个里有个名字对不对? showtos 的,那我这个名字需要怎么样的同学们?跟 h t m 里面要对应起来的啊?啊,我们打开看一下啊, 我这个里面修 toss 的是不是要对应起来啊?对吧?修 toss 里面我会来传来一个参数,叫做 message, message 里面在干嘛?我这里面有个 toss 的吗? toss 的好,我会初始化了一下 出去换谁一下出去换干嘛?注册到命令管理器里面去啊?我们刚刚不是看了吗,这个命令管理器里面就是个哈士 map 对吧? ash map, 我去 new 了一个什么东西? touch the command 出来有个名字,然后有个执行,对吧?这个 command 就是这么样子的吗?两个东西吗?两个含方法吗?执行的时候干了干嘛? 就透视了一下呗。 我,我需要毁掉吗?不需要毁掉,透视一下就完了。 所以如果我的 a p p 的这个模块需要增加一个命令,增加一种功能, 只需要加一个什么东西,加一个命令就完了。他需要知道这个 web you 的使用吗?同学们需要知道 web you 的使用吗?这样是不是很方便? 如果我今天今后说我的这个一个一个什么来着?我的一个新的模块要增加一个其他的命令,我只需要溜一个命令出来就行了,注册进去。好吧,觉得很方便的。同学,这个地方应该有点掌声啊。 好,这个是最简单的没有回调的命令。那我们来看一下,如果需要回调,我们该怎么办呢? 我们需要毁掉的时候该怎么办呢? 我们需要给回调的时候该怎么办呢? 啊?我回一下,立,呃, tiger 老师,不好意思啊,我需要回调的时候我该怎么办呢?我们来看一下其他的命令好不好?我这里不是有个登录的命令吗?对不对? g 不是技术上面的。是是是,是什么?是,是 table 老师啊, table 老师找我,是 table 老 老师找我。好吧,哎,我把这个关掉吧。好吧,分微信 tv 老师在找我,你们听过 tv 老师的课吧? 好吧,好。这个,这个是怎么样啊?我这里是登录的命令,对不对?我要初始换一下他,我这个命令是干嘛?同学们 看啊,我这个命令里面这个大麻将有点不一样了,我这个命令里面做了什么事情呢? 我这个命令里面是有个名字, a p p login, 是跟这个这个地方是要对应的起来的。 a p p login。 好吧, a p p looking。 然后呢?我会有个执行的方法。执行的方法?我这里面是什么?我是面向什么东西啊?主 组建化编程的,所以我会去,怎么?我会去注册一个登录的通知啊,请求一个登录的服务,问他有没有登录,如果没有登录的时候,我注册一个登录的一个 listener, 请求登录 同时把这个方两个参数记录下来,参数跟 copic 保存下来,看到吗?我这里有参数和 copic。 我这个 listen 呢,你们干嘛呢?我等待着别人登录呢, 登录完了以后,我把这个名字跟参数带过去就完了,就像 anna 老师这里一样,我登录嘛,对吧?我登录,我打个断点在这里。 哎,我打错打错,这个连错连错进程了。我这个应该是连主进程了,连到那个进程。 好吧,我们再来,再来执行一次,再来执行一次。 好吧,我们打在这个这个地方 来了吧,对吧?我登录完了,登录完了,我就干嘛?我就是把参数带过去啊,对吧? 把参数带过去啊,所以我这个地方就怎么样啊,就把这个参数告诉了 gtm。 是不是我这个第三步,第四步的这个流程都来了呀?哦,第三步对吧?是通过 gobag 回去的。哦,还有一步,第四步,我们来讲一下第四步, raise out, call back 是怎么实现的?是一个 ai d l 啊。 when raise out, 对吧?好, when raise out 是一个 i call back。 这一个 看到了吧?是在我们这个命令调度器执行他的时候溜过去的, 看到了吧?溜过来的好,他回掉的时候我会去,怎么样啊?回掉的时 我会去调这一个什么东西?我会去拿到这个 web view, 我拿到这个 response, 对不对?我拿到这个 web view, 我会去焊的这个 whole bag。 这个 web view 里面 handle 和 bug 是干嘛?以 money 为的家务 script。 这是第四步,同志们, native 从主进程到了我这个什么 we have view 的这个进程, we have view 的这个进程会因 money 为它加我这个 rap 的里面。这个里面通信有两种方式,对吧?这个通信有两种方式。 我们今天晚上讨论的是什么?五点五,四,五点一以上的,我们不讨论四 四点一,四点什么来着?这个呢? native 调用 javas web web u g s 有两种方法,一种是漏的 u i l, 一种是 in value 的 javascript, 这种效率更高,我们只针对于四点四以上。 四点四以下已经是 n 年前的手机了,我们不讨论了 好不好?我们不讨论这个东西了。所以呢,请同学们,如果你是 native, 我要去调用这个什么第四步, 这是我们在这里的第四步的时候,你要去调用 native, 无需要调用 web view 里面的这个 g s 方法。要执行一段 g s 的话,那请你用这个以 manual 的加法 script, ok, 我不知道怎么翻译 这个东西比较好一点,还需要回调吗?这个是不需要回调了,对不对?这个 g g s 里面是一个什么东西?就是 javascript 这个方法加上这个什么东西,你看到吗?有个 response, 这个里面是哪里呢?是在我们的 g s 里面, gs 里面有 google bug, 对吧?有 google bug, 对啊,就是触发这个 g s 脚本了好不好?这个地方整个流程第四步我们就已经处理完了。 第四步我们就处理完了。 man process 是什么意思? 这个东西是一个这个呀,我们是一个 service, 等待那里是怎么样?等待别人来连我呀,我要返回一个按 band 给那哈呀,这个东西是属于什么?实现了这一个 i web to main 的这个 ai d l 的悟空先生,听清楚了,刷个回,回应一下安娜老师好不好? 第三步再扫一下是什么意思啊? 好不好? 所以呢?这样子的话,我们就四个动作都已经来了。如果同学们没有做过这一种通信的,那你听了安娜老师的课,你应该都知道了。好,这个我们还只解决。解决了什么东西啊? 你不这个 g s 怎么写?同学们去问这个前端好不好,你用不用这个东西都没关系啦,你可以直接写在这个 h t m 里面都行的,对不对?好不好? 好不好,这个你写不写到这个这个里面都没关系的,你直接放在这个里面也可以的。这个 g s 怎么写的?同学们自己去学一下好不好? 这个,这个就不,我们就在这里就不讨论了。还有一个什么东西啊?同学们,我们不是讲了两条命令吗?还有一条命令是属于什么东西? 还有一条命令是什么东西?我们这里有个 a router 的命令,你看到吗? a router 的命令干了吗?这个命令里面做什么事情也是命令的一个名字, 命令的名字,我拿了一个方法,我有个什么 around navigation 的一个参数,所以安娜老师这里的设计是这样子的,我们尽量的用了面对组建化的一个编程, 对吧? native 调 web, 没有跨进程的。 native 调主进程调 web view 是跨进程的, 但是 web view activity 去调 web 啊,是没有跨进程的,这还怎么跨进程呢?那总要要附属在一个什么来着?呃,附属在一个主进呃 native 的进程里面嘛? 这个什么来着?这个你这个名字我都不会念啊。这个 anna 老师这个语文水平很很很低。这个刚刚这位同学问 nike 五调 web 六没有跨进程吧,我希望同学们清楚了啊, 这种选我这里有一二三四步,这里到这里是不会画进程的,只有第三步第二步才会画进程。 okay, 好,你看 anna 老师这里取这个名字的时候是怎么是方法?一个命令的名字加上一个参数,所以它有个什么好处啊?如果我今后 是其他类型的 or router, 面向组建化编程的,我是不是只需要带一个不一样的一个参数就够了?如果都是同一种类型的话,我需要加一个什么?需要加一个命令吗? 是不是不需要?同学们,我打开 activity a 用的是一个 mini, 我打开 activity b 用的也 也是这个命令。我即使再要打开 activity c, 我不需要改任何单, 我不需要改一行贷吗?所以这个友好就是这么解决的。你定义的命令可以通过什么 让服役端像跳转?我们记大多数是跳转嘛,都是你基于组建化编程的时候,像这个 rotor 的时候 基本上都差不太多,你可以写一个更通用一点的参数,对吧?然后在这个命令里面,基本上如果是你去做跳转的话,就不需要改银行代码, 不需要改一行代码,你你就让他什么来着,根据这个 water 来跳就行了,把这个参数站在里面, 那我们就下课了,同志们,拜拜。