Google上架之大佬是怎么做的

好久没有分析下载量500K+的包了,今天就来分析一个,非常适合初入行的朋友们学习。

包名:com.Camera_100xZoomCameraUltraHD.Camera100xZoomCamera100x

上架时间:2024/9/26

这个包的控制流程如下:

  1. 发送HTTP请求给服务器,请求B面URL地址。
  2. 根据B面拿到的URL地址,让WebView跳转到这个地址。
  3. 在WebView的jsbridge里面,实现开窗和Adjust事件上报。

正常情况下,我们写第2步的代码,应该就一行:webView.loadUrl()

但这样写,包必挂。

我们今天分析的这个APP,如果工作量按10小时计算,其中1和3最多花2小时,剩下的8小时都花在第2步上,为啥这么麻烦呢?就是不希望Google审查的时候看到这个过程(直接获取URL并使用WebView载入)。

下面是具体的代码分析:

1. 发送HTTP请求给服务器,请求B面URL地址。

这里要科普一个知识点:EventBus的使用,它的作用是切断代码的联系,你只看到得到B面URL后post这个值到EventBus的队列,最终的执行是在EventBus调度中进行的,当执行到时,会调用onMessageEvent()方法

2. 根据B面拿到的URL地址,让WebView跳转到这个地址。

代码比较复杂,简单的梳理一下:

  1. onMessageEvent()会回调,得到B面URL的信息

2. 将信息整理一下,传入到一个ArrayList中

3. 将上面ArrayList同主界面的RecyclerViewDataAdapter绑定

4. 在onBindViewHolder方法中调用webView.loadUrl(),载入B面

3. 在WebView的jsbridge里面,实现开窗和Adjust事件上报。

这个比较简单,直接贴代码了。