好久没有分析下载量500K+的包了,今天就来分析一个,非常适合初入行的朋友们学习。
包名:com.Camera_100xZoomCameraUltraHD.Camera100xZoomCamera100x
上架时间:2024/9/26
这个包的控制流程如下:
- 发送HTTP请求给服务器,请求B面URL地址。
- 根据B面拿到的URL地址,让WebView跳转到这个地址。
- 在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跳转到这个地址。
代码比较复杂,简单的梳理一下:
- onMessageEvent()会回调,得到B面URL的信息
2. 将信息整理一下,传入到一个ArrayList中
3. 将上面ArrayList同主界面的RecyclerView的DataAdapter绑定
4. 在onBindViewHolder方法中调用webView.loadUrl(),载入B面









3. 在WebView的jsbridge里面,实现开窗和Adjust事件上报。
这个比较简单,直接贴代码了。

