00:00
接下来我们来继续讲了,我们要讲一个就是当软件卸载过后,做一个问卷调查。当然大家去装一些比较大型的软件的时候,比如说一些比较有名的软件是吧,比如说360啊,你把它卸了过后,这个们呢,他做一个问卷调查,就是他们调查的原理是什么,就是他他想办法第一间去到软件卸载了,然后呢就把浏览器调起来。去请求一个网页。啊,那么呢,它是这么一个原理啊,那么那么的话呢,这个时候它的原理是什么呢?其实就是用到C语言对吧,C语言,那么这个时候我们C语言有一个函数叫负函数,这负函数有什么特点呢?它会分叉除以。它这个分支函数可以创建一个什么新进程个子进程,并且新创建出来的。
01:02
这个紫禁城拥有创建那个附近城的数据空间,也就是说他有了父亲那个空间里面,这样的话呢,他就可以去得到我们某个软件下的这个目录是否还存在。好,那么呢,就是它运行起来就去就是什么去开一个紫禁城出来啊,然后呢,并且不影响对吧,他的资源啊,资源站等没有影响。那么它呢,这个时候它会返回,返回三个值。如果这个值,也就是这个进程ID大于零,那么就是负进程,如果等于零,就是在子进程中,如果出现错,那就返回一个负值。好,那么要注意一点,就是要导入这个啊,导入这个好一会的话呢,我们就要去用它,好,那同学们在我们这个地方里面呢,这就是它的一个啊,用到这个分差函数好,那分差函数用了过后,我们就相当于在子进程里面做一个什么样的事情呢?好就是不断去判断。
02:16
不断判断这个目录就是对成对的目录,对应的包下是否呢。这个还存在,当我们把一个软件卸载我后,对着对着目录下对应的这个包名是不存在的。啊,就是一就是有这么一个特点,就是当某一个软件被卸载过后呢,我们对对着下,然后目录就是一个配一个包名下这个不存在了,不存在过后,这时候我们就可以什么。可以把它认为是被卸载了,我就我们就用C语言,C语言把浏览器给叫起来啊,做这样的一个事情好,那有了客户我们就做这样的一个事情好,那么在C元中如何判断应用手机卸载呢?
03:02
就是注意了,其实我们就判断这个目录。是否存在,如果它返回那好,那这个应用对应的包名文件夹里不存在,说明应用呢,也没什么卸载了,注意啊,这就是这么一个啊,就是靠它去判断是否存在。好,那么也就是说在C中如何去把浏览器给调起来呢?啊,就是这个代码如果在啊控制台我们也可以,比如说我们的地方里面可以去把它给调用我们这个ADB摄像机,好,然后我们的地方里面呢,我们开启一个服务这个up。然后在地方里面,我们把这个拿过来好,我电脑呢,有一个叫我电脑这里面。这个他们cat里面我被我开起来了,这个这里面呢,有一个。嗯。
04:01
这里面有一个叫。SKY,好,我可以先打开给大家看一看。就是这么一个文本对吧,一个文本,然后就不让他去访问。好,那么我们把它右键夹打开。不是。好,那么把这个呢改一下。改一下就是192.168.10.168,这是我的。然后下载8080啊啊下载这个这样子好,我们去把它给复制一下来,看一下,在地方里面呢,我们去把它粘贴过来。啊,粘贴过来后,我们来看看在地方里面是否可以把它吊起来啊一点。好,大家看一下,你会发现我们把这个吊起来了,看到没有吊起来了吧的这个命令,那也就是我们在C语言中啊,也让他去做这件事情,那怎么大家想诶怎么把它吊起来呢。
05:10
其实就是一个什么模拟一个什么。动逻辑模拟一个意图,你看没有就是。这是一个动作。是吧,啊对,你看他就相当于做了一个动作,Action,就是你的date做途径对吧,它就可以把它吊起来,看到没有。好。那么有了客户,接下来呢,我们就做这样的事情了。好,那我们就在这个锅炉压力这个地方去做这个事情,我打开的这个,我打开的这个是。是我们的这个am这样的一个处理器,那么把这个呢,代码给注释掉。因为这个的话,在这个处理器上有问题啊,我就把它入掉了,然后我们就直接这里写一个方法,就卸载软件一个监听好,大家看一下我们怕a it,然后native好,然后这个地方里面呢,我们就是没有返回值好,On inte好,那这个方法我做什么呢?大家看好在我们这个地方里面的话呢。
06:16
在我们这个方里面的话,这里面。的话,它根它其实有根据版本啊根据。他有这个在这里面。好,我们直接在这里面。就说如果是在4.2。啊,4.2之前,那这时候呢,用这个命令,如果在4.2之后用这个命令,注意它多了一些参数,所以我们这个时候要要传一个我们的包名进去,因为我们这个地方你看啊,它是这个这个我们把它动态传过来,对吧,动态传过来。然后通过了过后呢,还有我们的版本对吧。好,也就是我们要把这个值。
07:00
这个这个版本也要传进去啊,传进去好的同学们,那这时我们就传两个参数,一个是是距型对吧,新类型就是我们的派内蒙和报名,还有一个呢,就是我们的新的类型,就白马浩啊这个字。好,On的一个on style的一个listen前提提对吧,监听好,那么在这个地方里面的话呢,接下来我就要把那个什么创建一下啊好。这个把那个创建出来。好,删除后他跑到这里来是吧,没关系,我们把它给这个。剪切跑到这个锅炉这里。好,然后来到我们这地方,那有的课,同学们,我们的地方里面呢,就要去写我们的这个方法。
08:05
好,那这个它会知道我们生成这个中间我们不用管它啊好然后在这里面的话呢,这些干掉,这个干掉可以要它,好那接下来这地方你看它有报名是吧,好这些这个是这个参数,可以把它给这样写。好,那接下来我们就要去调用我们的。方法,它会返回一个code,我们的for fork啊for好,那这个fork的话注意了,在地方里面要注意要导入我们的一个什么。导入我们的一个投文件,注意这个投文件一样导入。好,谢谢大陆。好,那导入扩大看一下,这里面我们就可以点进去了,就是它对不对,好,那么它呢,会返回三个值。返回。
09:08
听选在这个地方里面的话呢,我跑到它下面这一条,好,这地方里面,它会返回三个字,返回三个字大于零,就是附进程的IDID等于零。等于零就是紫禁城进程和ID,如果是负数,负数就是什么,就错了,好那么接下来我们就要去判断了啊,如果这等于零,负的等于零,好,这是我们期待的,对吧,我们在这里面就要判断,判断我们的这个软件是否被。
10:10
是否被卸载对吧?好,那么在这个地方里面有了过后呢,我要判断其他,其他的话,其实我们就是打个录制出来啊,在对方里面的话呢,我们就扣的如果是大于零。啊,大于零,那就是负进程,负进程。那么else的话就是我们的出错,好,那么我们的地方里面是把日志呢,也可以打印出来啊,把日志打印出来我们怎么做啊,是之前我们做过啊,好在这个地方里面我们看一下。这个打日字对吧,好把这个放到我们这里来。
11:06
好,那么还有在这个地方里面配置过后,还有我们的在C代码中。嗯。把这个呢拷过来。啊。这部分对不对。好,考过来。好,然后我们呢,把它给放到放到两锅炉这里放最上边,好,我们去打字,用这个去打,暂时先。好,我们可以去把它给粘出来,好,那么我们在地方里面的话呢,就是软件,这就是运行在就是我们的一个修订版修订。好等于多少的摆放低,也就分行,我们把这个扣的啊扣的加上。
12:07
好,那这个呢,来看一下发好,然后呢,这个呢L对吧,我们打印出来好,那么在我们这个地方里面,接下来我们就去写这个判断它不是被卸载的代码了,好那这个时候我们做一个外循环,那么这个我们在地方里面定一个flag啊,如果一是一是为Q吧。一四为two吧,同学们好,一四为two对吧?好,那么在这个里面注意了,我们在这个地方里面我们要休眠,Sleep休眠,注意这个时候一的话是一秒,这个时候密是一秒啊,这方里面一秒钟。
13:01
然后有了过后,我们这个时候去休眠的过程中,我们去打开,就刚才用的这个方法。判断是否卸载,然后把它拿过来。好,那这个时候注意了,如果这个门一旦注意在这个地方里面,我们就要把这个什么。把它给替换在这个地方里面。是不是要要是一个掐指针呐,看到没有,那么要是转换呢,转换的代码还有印象吗。首先把这个JS转换成我们的恰。对不对,好,那之前我们在地方里面那个还记得这个C调。谁叫Java对吧,用到过。好,这个方法就就是啊,还不是这加不掉C里面对吧。
14:00
好。在这里。就是这个是不是好,我们把它给切一点过来。它擦掉好,那么把它放在前边。好,有了课后在这块里面,同学们,我们呢就把它给写下了。好,就是恰恰的一个指针内幕,好,然后呢,去掉这个方法DV,然后把转过来这个把它给什么写一下,好先过后把这个们呢给替换掉。啊,OK对吧。然后有的在我们这个地方里面的话呢,好,如果这个为浪,那是就卸载了,就把这个卸载过后,我们地方里面,我就把这个flag为多少。
15:05
视为就如果为负,它就不循环了,好这个时候呢,我们就是做一个什么事情呢,就是让它等于多少,就是停止循环对吧,停止循环对吧。好,那同学们在我们这个地方里面的话呢,接下来有了过后如文章就做的事情,好,那还有多的事情就是。就是要去卸载,就是要弹出来了,对吧,弹出来弹出后我们的代码的话呢。怎么写对吧,那么我们把它拿过来,如果是。小于就这么做,如果大于这么做,我们去把它给小于的,大于的拿过来。那么我们在地方里面,我就要判断了,在我们这个地方里面。在这个地方里面存的是一个什么基因,我们就可以判断,诶是吧,然后这个如果它是小于17对吧,那么我们就执行这个代码。
16:16
好,然后在4.2之后,L就是这个,也就是我们在地方里面呢,就这样的一个事情,这是一种,如果是之前4.2之前就是17对吧,这你4.2之后就这样的事情,那么这个我们实现的。也是这样。啊,就是U的是大于,就是大于对吧?嗯,反过来好,那同学们在我们这个地方里面的话呢,小于它就这样好,那么之后就在这里。好,那么这个时候有了过后呢,好给大家看一下,在这个地方里面,他就用这个去执行,和我们这个执行其实是一样的。看到没有,那我们就会把这个吊起来。
17:02
我们等一下飞车。啊,加起来对吧,我们把它退出啊退出,然后在我们这个地方里面呢,现在它打开的是什么呀。现在打开的是我们的这个啊,这个一个是百度对吧,那我们这样,我们把它给切换过来,嗯。好把它复制一下,然后应该就是这个地址,好把它给拿过来。所以都打开我们服务器的这个地址啊,地址好,那么我们接下来做的事情呢,就是运行起来看一看啊,咱们运起来它不能一循环,不能去取这个包,如果为浪就卸了卸被卸过后他就去启动,否则的话不为浪就。就继续循环对吧,一秒钟去检查一下,他检查的就检查我们的这个。检查什么目录呢,他就检查这么一个目录,Date下date下date下的一个啊抗点就是我们这个程序的包叫什么。
18:09
就是什么啊,比如说包是这个。他去检查这个东西知道吧,好检查这个东西。那如果他被卸了,是就这个目录都不存在了,不存在我就谈过浏览器,那提前准备好的。浏览器,然后联网去访问这个链接,就做一个问卷调查,我知我就知道,诶我软件为什么不好是吧,让别人去更正好了,接下来这个地方里面的话呢,我们就要去做这个事情了。好,我们这个方法去调吧,这方法去调用好一进来去调用,就让他把那个子进程开启出来吧,对不对?好,那这个时候呢,就是下这一侧下这一侧下加上我们变成我们的苞米对吧?好,然后接下来呢,就是我们的一个。
19:00
程序了。那个这是我们的SDK,我们的我们的版本。就在这个版本的话,我们看一下怎么存进来。啊,就是这个啊,就是我们当前的一个版本in特类型的值啊,啊拿过来好,那这个时候呢,把它给导一下方,好,那么我们这个一存进的是把它存进去了,到这个方法,这个方法的话呢,就到CG里面这种事情,你看直接可以点C了,那这个地方你就可以做这样的事情,好我们看一看行不行。然后注意在我们这个地方里面呢,像这个方法啊,在我们的V这个am这样的处理器的运行,它有问题啊,所以我们把这个先注入掉。运起来。一起来,同学们。好,我们来把它拎起来,来写一写。
20:03
然后我们的服务器是开启了对吧?好,那我们去把它拎起来,那么像这个功能的话呢。这个功能的话呢,这个有些大的软件用得着对吧,好你看啊,我卸了,如果能吊起来的话,那咱们就。挺爽的对吧,好把它给卸载好。好,然后没有被吊起来,没有被吊起来的话看看。在这个地方里面没被吊起来,Feel。做一个。我们再去运行起来看一下啊,为啥就没被吊起来。啊。
21:01
好,然后在地方里面呢。你要仔细的看,就打印出来了,对不对,这就行了啊。这个地方里面呢。不论行。好,我们看看再再试一试啊,不行呢,我们就。一下。好,这个不行,我看一下在对方里面,昨天我就试验就成功了。嗯。我看看我在这里面呢,已经传这个data data了,好我们看一下之前之前写好的代码下va端这样去调这个方法这类行这没问题,给它报date date是吧,相加。
22:03
我们这个地方你们呢,对对。没问题对吧,好,然后调这个方法,这个方法里面再看一下。比对一下。这个方法里面F等于零,然后。卸载我们这样我把这部分呢拿过来,难道是我选错了吗。好把它复制一下。好,然后来到地方里面把这部分。嗯。地址是吗?哦,你说这个地址是吧,这个也可以知道吧,应该是与地。与这个地址没关系,没关系,这个地址就说你去调浏览器,其实你就创一个地址进去,你随便充地址都没有完没有影响知道吧。
23:04
他是比不过。不是地址的问题,我看一下啊,我看看看,我先把它运起来看看行不行,不行的话我们再去看。啊。昨天我的事就是昨天我说试验成功了,好多次就成功了,好我们看一下同学们啊。好,我们一起来。捋起来过后哈,我们去再把它卸了。没卸成功,我们这样难道是在妹子里面不断去做一个负循环影响他吗?好,我们看我把这个星辰的战写注释掉16它啊。会不会太有影响?然后进这里来将去执行它分叉出来等于零。
24:10
好。起来。好,我现在把它给卸了。嘿。不行。在这个地方里面,我看看我我做一个调整,看行不行啊,把它复制在这个地方里面。然后呢?等一下。好,然后把它运起来,再不行的话,我就直接把这个苞米写死了,好运起来。没起来。
25:11
你起来。谁运行不起来了,重新启动一下。好,我们去开启这个模拟器。好,那么这个的话呢,稍等一下。嗯。
26:07
就是说虽然这个地址是这个,但是它是可以唱的啊,它是可以把它这个就启动浏览器是可以的并起来。然后我们把它给卸载掉。好,那这样他不行的话我就死,那我这样我其实显死的话,我就也就是这个代码也是没用的,然后把我显的打开。选这个打开我看一下,然后呢,我把这个包啊在这里面,把这个包先杠下date,然后在这个地方里面呢,包名我直接把这个地方来拷贝。
27:11
好,然后在这个地方里面把它粘贴好,那大家看好,我去运行起来,就是再看一下行不行啊。好一起来,那比如说这个不起作用,对吧,就不用它了,就纯电参数不要了。但是这个是要的,对吧,这个是要的,好先运起来。你起来了,好,我们去。涂一下。啊也不行,不行的话,我就这样,我就不区分了。两个都掉。我担心的是这个地方,好,你去捋起来。
28:06
然后我们看一下。好,然后呢,给大家看一下,我们运起来,然后把它给卸载掉。站起来了对吧。好掉下,但是看到没有掉下来了,好我们看一下掉下来的话,那也就是说我们哪个命令起作用的对吧?好我们把这个做掉,我看留这个还行不行,就是有时候你还得做适配对吧,就有时候不同的里面可能就是以后啊,咱们程序员可能很多事情要去调这个细节,代码选出来之,你要不同的平台兼容。好,我们退出。退出过后大家好。啊,浏览器打开了,那我先把它退出来啊,好,那看好我现在。
29:03
把他。这样子。好就弹出来了,那就是说这个命令起作用,那就是我在地方里面的话,来看一下直接就可以了,好的同学们,那么就是。这个命令,好,那我们又又打开它。那打开它,因为这个命令起作用了嘛,对不对,好我们看看这样重新来看行不行啊,就一点点的就把它给修正,就是我们把我们把它动态就动态是吧。好,那这个里面我们再去运行一下。先把它退出。退出。好,我们把这个运起来,好,那我们再去把它给推出。好,这个时候大家好。我看。不可以是吧,是确实这个们。
30:01
生命的所有。是不是相当于这个地方有问题了。好,那么我们这个地方里面,我们这样,我们呢,把这个我们。刚才不是我们把它这样,我把它给复制一下来到上面,在这里传呢,我这样传。好,这床过后,然后呢,我们还用它看试一试。哎,那就。我这个打开这个是吧,是这样子吧,好,我们来看一看,我们能把它做成动态的,动态好一点的运行。来看一下。一起来。好。你起来了,好,马红姐。
31:02
我们现在呢,等一下。好,那也就是在传的过程中值已经变了,对吧,值变了,那也就是说这个地方传的过程值变了,那解决问题的原因,那解决问题那就直接写。直接写好,把它给拿过来好,这个时候呢,在这个面直接写。好,我们去再运行好最后一次啊。好。以后假如说你就按指定调查某个软件是不是直接写就可以了,对不对,因为这个包啊,一般是公司规定下来的话,不会轻易改啊。好,那么去把它运用起来,同学们这种地方里面把它给。一拖。好,然后呢,去把它给卸了下。
32:01
好就弹出来了,对不对,好,那同学们这个是浏浏览器卸载过后呢,就可以弹出来,其实它最终就是用C代码去模拟一个什么。意图,然后呢,把我们浏览器调起来,然后链接指定的地址,做这样的一个事情啊,做这样的事情,那么它其实在这个地方里面注意了,也可以做这样的事情,对吧,好一点就把我们的浏览器开启了。对不对,它其实就是在C中执行可能不一样,对吧?好去做这样的一个事情,好那同学们这个功能就是我们的一个C语言的应用的一个场景,但是现在软件我觉得用的就少了,就是说软件卸载过后还专门去调查这样的软件呢,好像。不像以前就前一年多两年用的特别多,因为这样的话给人感觉就是这个这个软件是不是有病毒对不对,是感觉太流氓了,卸载的话还得有这个问卷调查对不对?好当然作为一个程序员,如果要实现这功能,我们是有办法的,对吧?好,那同学们,这就是我们这个知识。
我来说两句