smali语法笔记以及QQ7.5.0普通红包点击分析

2024-05-04 12:32

本文主要是介绍smali语法笔记以及QQ7.5.0普通红包点击分析,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

if-eqz v4, :cond_a #如果!=null

表示如果v4为true就跳转到cond_a 否则继续执行

if-nez v4, :cond_a #如果!=null

表示如果v4不为true就跳转到cond_a 否则继续执行

if-ltz v4, :cond_a

如果小于boolean小于0 就跳转到cond_a

if-gez v4, :cond_a

如果大于等于0 就跳转到cond_a

更多

“if-eq vA, vB, :cond_**” 如果vA等于vB则跳转到:cond_**“if-ne vA, vB, :cond_**” 如果vA不等于vB则跳转到:cond_**“if-lt vA, vB, :cond_**” 如果vA小于vB则跳转到:cond_**“if-ge vA, vB, :cond_**” 如果vA大于等于vB则跳转到:cond_**“if-gt vA, vB, :cond_**” 如果vA大于vB则跳转到:cond_**“if-le vA, vB, :cond_**” 如果vA小于等于vB则跳转到:cond_**“if-eqz vA, :cond_**” 如果vA等于0则跳转到:cond_**“if-nez vA, :cond_**” 如果vA不等于0则跳转到:cond_**“if-ltz vA, :cond_**” 如果vA小于0则跳转到:cond_**“if-gez vA, :cond_**” 如果vA大于等于0则跳转到:cond_**“if-gtz vA, :cond_**” 如果vA大于0则跳转到:cond_**“if-lez vA, :cond_**” 如果vA小于等于0则跳转到:cond_**
field  定义变量.method  方法.parameter  方法参数.prologue  方法开始.line 12  此方法位于第12行invoke-super  调用父函数const/high16  v0, 0x7fo3  把0x7fo3赋值给v0invoke-direct  调用函数return-void  函数返回void.end method  函数结束new-instance  创建实例iput-object  对象赋值iget-object  调用对象invoke-static  调用静态函数

实战qq红包点击事件

.class public Luhx;
.super Ljava/lang/Object;
.source "ProGuard"# interfaces
.implements Landroid/view/View$OnClickListener;# instance fields
.field final synthetic a:Lcom/tencent/mobileqq/activity/aio/item/QQWalletMsgItemBuilder;# direct methods
.method public constructor <init>(Lcom/tencent/mobileqq/activity/aio/item/QQWalletMsgItemBuilder;)V.registers 2.prologue#.line 435iput-object p1, p0, Luhx;->a:Lcom/tencent/mobileqq/activity/aio/item/QQWalletMsgItemBuilder;invoke-direct {p0}, Ljava/lang/Object;-><init>()Vreturn-void
.end method# virtual methods
.method public onClick(Landroid/view/View;)V.registers 21.prologue#.line 441move-object/from16 v0, p0iget-object v2, v0, Luhx;->a:Lcom/tencent/mobileqq/activity/aio/item/QQWalletMsgItemBuilder;invoke-static {v2}, Lcom/tencent/mobileqq/activity/aio/item/QQWalletMsgItemBuilder;->a(Lcom/tencent/mobileqq/activity/aio/item/QQWalletMsgItemBuilder;)Zmove-result v2if-eqz v2, :cond_b #为true就跳转到cond_a   (!QQWalletMsgItemBuilder.a(this.a)) {#.line 609:cond_a:goto_areturn-void#.line 447:cond_binvoke-static {}, Ljava/lang/System;->currentTimeMillis()Jmove-result-wide v2#.line 448move-object/from16 v0, p0iget-object v4, v0, Luhx;->a:Lcom/tencent/mobileqq/activity/aio/item/QQWalletMsgItemBuilder;iget-wide v4, v4, Lcom/tencent/mobileqq/activity/aio/item/QQWalletMsgItemBuilder;->c:Jinvoke-static {v4, v5, v2, v3}, Lcom/tencent/mobileqq/activity/qwallet/utils/QWalletRedPkgUtils;->a(JJ)Zmove-result v4if-eqz v4, :cond_a #如果!=null  // if (QWalletRedPkgUtils.a(this.a.c, currentTimeMillis)) {   否则跳出去了cond_a#.line 452move-object/from16 v0, p0iget-object v4, v0, Luhx;->a:Lcom/tencent/mobileqq/activity/aio/item/QQWalletMsgItemBuilder;iput-wide v2, v4, Lcom/tencent/mobileqq/activity/aio/item/QQWalletMsgItemBuilder;->c:J#.line 454invoke-static/range {p1 .. p1}, Lcom/tencent/mobileqq/activity/aio/AIOUtils;->a(Landroid/view/View;)Ljava/lang/Object;move-result-object v2check-cast v2, Lcom/tencent/mobileqq/activity/aio/item/QQWalletMsgItemBuilder$QWalletMsgHolder;#.line 455iget-object v2, v2, Lcom/tencent/mobileqq/activity/aio/item/QQWalletMsgItemBuilder$QWalletMsgHolder;->a:Lcom/tencent/mobileqq/data/ChatMessage;move-object v14, v2check-cast v14, Lcom/tencent/mobileqq/data/MessageForQQWalletMsg;#.line 457const/4 v2, 0x0#.line 458const/16 v16, 0x0#.line 459move-object/from16 v0, p0iget-object v3, v0, Luhx;->a:Lcom/tencent/mobileqq/activity/aio/item/QQWalletMsgItemBuilder;iget-object v3, v3, Lcom/tencent/mobileqq/activity/aio/item/QQWalletMsgItemBuilder;->a:Lcom/tencent/mobileqq/activity/aio/SessionInfo;iget-object v15, v3, Lcom/tencent/mobileqq/activity/aio/SessionInfo;->a:Ljava/lang/String;#.line 460if-eqz v14, :cond_a #  if (messageForQQWalletMsg != null) { 否则又跳出去了#.line 463invoke-static {v14}, Lcom/tencent/mobileqq/activity/qwallet/utils/QWalletRedPkgUtils;->a(Lcom/tencent/mobileqq/data/MessageForQQWalletMsg;)Zmove-result v3#.line 464if-nez v3, :cond_116iget-object v4, v14, Lcom/tencent/mobileqq/data/MessageForQQWalletMsg;->mQQWalletTransferMsg:Lcom/tencent/mobileqq/data/QQWalletTransferMsg;if-eqz v4, :cond_116 # if (!a && messageForQQWalletMsg.mQQWalletTransferMsg != null) {  就会走类型是不是等于9#.line 465iget-object v2, v14, Lcom/tencent/mobileqq/data/MessageForQQWalletMsg;->mQQWalletTransferMsg:Lcom/tencent/mobileqq/data/QQWalletTransferMsg;iget-object v0, v2, Lcom/tencent/mobileqq/data/QQWalletTransferMsg;->elem:Lcom/tencent/mobileqq/data/QQWalletTransferMsgElem;move-object/from16 v17, v0#.line 467iget v2, v14, Lcom/tencent/mobileqq/data/MessageForQQWalletMsg;->messageType:Iconst/16 v3, 0x9if-ne v2, v3, :cond_de#.line 468iget-object v2, v14, Lcom/tencent/mobileqq/data/MessageForQQWalletMsg;->mQQWalletTransferMsg:Lcom/tencent/mobileqq/data/QQWalletTransferMsg;iget-object v2, v2, Lcom/tencent/mobileqq/data/QQWalletTransferMsg;->body:Lcom/tencent/mobileqq/data/QQWalletAioBodys;#.line 470if-eqz v2, :cond_b7iget v2, v2, Lcom/tencent/mobileqq/data/QQWalletAioBodys;->pfa_type:Imove/from16 v18, v2#.line 471:goto_59const/4 v2, 0x1move/from16 v0, v18if-ne v0, v2, :cond_bb#.line 472move-object/from16 v0, p0iget-object v2, v0, Luhx;->a:Lcom/tencent/mobileqq/activity/aio/item/QQWalletMsgItemBuilder;iget-object v2, v2, Lcom/tencent/mobileqq/activity/aio/item/QQWalletMsgItemBuilder;->a:Lcom/tencent/mobileqq/app/QQAppInterface;const-string v3, "P_CliOper"const-string v4, "Vip_pay_mywallet"const-string v5, ""const-string v6, "wallet"const-string v7, "autofriendpay.aio.qiukaitong.click"const/4 v8, 0x0const/4 v9, 0x0const-string v10, ""const-string v11, ""const-string v12, ""const-string v13, ""invoke-static/range {v2 .. v13}, Lcom/tencent/mobileqq/statistics/ReportController;->b(Lcom/tencent/mobileqq/app/QQAppInterface;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;IILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V#.line 476:cond_7b:goto_7binvoke-static {}, Lcom/tencent/qphone/base/util/QLog;->isColorLevel()Zmove-result v2if-eqz v2, :cond_9c#.line 477const-string v2, "QQWalletMsgItemBuilder"const/4 v3, 0x2new-instance v4, Ljava/lang/StringBuilder;invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()Vconst-string v5, "onClick pfa_type="invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;move-result-object v4move/from16 v0, v18invoke-virtual {v4, v0}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;move-result-object v4invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;move-result-object v4invoke-static {v2, v3, v4}, Lcom/tencent/qphone/base/util/QLog;->d(Ljava/lang/String;ILjava/lang/String;)V:cond_9cmove-object v6, v15move-object/from16 v5, v16move-object/from16 v10, v17#.line 566:goto_a1const/4 v3, 0x0#=================== 从领取红包那边过来的#.line 567if-eqz v10, :cond_a#.line 570iget-object v2, v10, Lcom/tencent/mobileqq/data/QQWalletTransferMsgElem;->actionsPriority:Ljava/lang/String;invoke-static {v2}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Zmove-result v2if-eqz v2, :cond_262 #判断  actionsPriority是否不为空#.line 571invoke-virtual/range {p1 .. p1}, Landroid/view/View;->getContext()Landroid/content/Context; #为空的话  QWalletRedPkgUtils.b(view.getContext(), qQWalletTransferMsgElem.linkUrl);并返回move-result-object v2iget-object v3, v10, Lcom/tencent/mobileqq/data/QQWalletTransferMsgElem;->linkUrl:Ljava/lang/String;invoke-static {v2, v3}, Lcom/tencent/mobileqq/activity/qwallet/utils/QWalletRedPkgUtils;->b(Landroid/content/Context;Ljava/lang/String;)Zgoto/16 :goto_a#.line 470:cond_b7const/4 v2, 0x0move/from16 v18, v2goto :goto_59#.line 473:cond_bbconst/4 v2, 0x2move/from16 v0, v18if-ne v0, v2, :cond_7b#.line 474move-object/from16 v0, p0iget-object v2, v0, Luhx;->a:Lcom/tencent/mobileqq/activity/aio/item/QQWalletMsgItemBuilder;iget-object v2, v2, Lcom/tencent/mobileqq/activity/aio/item/QQWalletMsgItemBuilder;->a:Lcom/tencent/mobileqq/app/QQAppInterface;const-string v3, "P_CliOper"const-string v4, "Vip_pay_mywallet"const-string v5, ""const-string v6, "wallet"const-string v7, "autofriendpay.aio.yikaitong.click"const/4 v8, 0x0const/4 v9, 0x0const-string v10, ""const-string v11, ""const-string v12, ""const-string v13, ""invoke-static/range {v2 .. v13}, Lcom/tencent/mobileqq/statistics/ReportController;->b(Lcom/tencent/mobileqq/app/QQAppInterface;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;IILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Vgoto :goto_7b#.line 481:cond_demove-object/from16 v0, p0iget-object v2, v0, Luhx;->a:Lcom/tencent/mobileqq/activity/aio/item/QQWalletMsgItemBuilder;iget-object v2, v2, Lcom/tencent/mobileqq/activity/aio/item/QQWalletMsgItemBuilder;->a:Lcom/tencent/mobileqq/app/QQAppInterface;const-string v3, "P_CliOper"const-string v4, "Vip_pay_mywallet"const-string v5, ""const-string v6, "transferaccountmsg"const-string v7, "show"const/4 v8, 0x0const/4 v9, 0x0new-instance v10, Ljava/lang/StringBuilder;invoke-direct {v10}, Ljava/lang/StringBuilder;-><init>()Vconst-string v11, ""invoke-virtual {v10, v11}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;move-result-object v10iget-object v11, v14, Lcom/tencent/mobileqq/data/MessageForQQWalletMsg;->mQQWalletTransferMsg:Lcom/tencent/mobileqq/data/QQWalletTransferMsg;iget v11, v11, Lcom/tencent/mobileqq/data/QQWalletTransferMsg;->templateId:Iinvoke-virtual {v10, v11}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;move-result-object v10invoke-virtual {v10}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;move-result-object v10const-string v11, ""const-string v12, ""const-string v13, ""invoke-static/range {v2 .. v13}, Lcom/tencent/mobileqq/statistics/ReportController;->b(Lcom/tencent/mobileqq/app/QQAppInterface;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;IILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Vmove-object v6, v15move-object/from16 v5, v16move-object/from16 v10, v17goto :goto_a1#.line 484:cond_116if-eqz v3, :cond_17eiget-object v4, v14, Lcom/tencent/mobileqq/data/MessageForQQWalletMsg;->mQQWalletTransferMsg:Lcom/tencent/mobileqq/data/QQWalletTransferMsg;#if (!a && messageForQQWalletMsg.mQQWalletTransferMsg != null) {第二条判断不是否为空 否则走第二个或者第三个elseif-eqz v4, :cond_17e #不等于空就继续??  又到了   Object obj = (this.a.a.a == 0 || this.a.a.a == 1000 || this.a.a.a == 1004 |#.line 485iget-object v2, v14, Lcom/tencent/mobileqq/data/MessageForQQWalletMsg;->mQQWalletTransferMsg:Lcom/tencent/mobileqq/data/QQWalletTransferMsg;iget-object v2, v2, Lcom/tencent/mobileqq/data/QQWalletTransferMsg;->elem:Lcom/tencent/mobileqq/data/QQWalletTransferMsgElem;#.line 490new-instance v3, Lcom/tencent/mobileqq/data/QQWalletRedPacketMsg;invoke-direct {v3}, Lcom/tencent/mobileqq/data/QQWalletRedPacketMsg;-><init>()Viput-object v3, v14, Lcom/tencent/mobileqq/data/MessageForQQWalletMsg;->mQQWalletRedPacketMsg:Lcom/tencent/mobileqq/data/QQWalletRedPacketMsg;#.line 491iget-object v3, v14, Lcom/tencent/mobileqq/data/MessageForQQWalletMsg;->mQQWalletRedPacketMsg:Lcom/tencent/mobileqq/data/QQWalletRedPacketMsg;iget-object v4, v14, Lcom/tencent/mobileqq/data/MessageForQQWalletMsg;->mQQWalletTransferMsg:Lcom/tencent/mobileqq/data/QQWalletTransferMsg;iget-object v4, v4, Lcom/tencent/mobileqq/data/QQWalletTransferMsg;->elem:Lcom/tencent/mobileqq/data/QQWalletTransferMsgElem;iput-object v4, v3, Lcom/tencent/mobileqq/data/QQWalletRedPacketMsg;->elem:Lcom/tencent/mobileqq/data/QQWalletTransferMsgElem;#.line 492const/16 v3, -0x7e9iput v3, v14, Lcom/tencent/mobileqq/data/MessageForQQWalletMsg;->msgtype:I#.line 493iget-object v3, v14, Lcom/tencent/mobileqq/data/MessageForQQWalletMsg;->mQQWalletRedPacketMsg:Lcom/tencent/mobileqq/data/QQWalletRedPacketMsg;const-string v4, ""iput-object v4, v3, Lcom/tencent/mobileqq/data/QQWalletRedPacketMsg;->authkey:Ljava/lang/String;#.line 494iget-object v3, v14, Lcom/tencent/mobileqq/data/MessageForQQWalletMsg;->mQQWalletRedPacketMsg:Lcom/tencent/mobileqq/data/QQWalletRedPacketMsg;const-string v4, ""iput-object v4, v3, Lcom/tencent/mobileqq/data/QQWalletRedPacketMsg;->redPacketId:Ljava/lang/String;#.line 495iget-object v3, v14, Lcom/tencent/mobileqq/data/MessageForQQWalletMsg;->mQQWalletRedPacketMsg:Lcom/tencent/mobileqq/data/QQWalletRedPacketMsg;const/4 v4, 0x0iput v4, v3, Lcom/tencent/mobileqq/data/QQWalletRedPacketMsg;->redtype:I#.line 496iget-object v3, v14, Lcom/tencent/mobileqq/data/MessageForQQWalletMsg;->mQQWalletRedPacketMsg:Lcom/tencent/mobileqq/data/QQWalletRedPacketMsg;const/4 v4, 0x0iput v4, v3, Lcom/tencent/mobileqq/data/QQWalletRedPacketMsg;->templateId:I#.line 497iget-object v3, v14, Lcom/tencent/mobileqq/data/MessageForQQWalletMsg;->mQQWalletRedPacketMsg:Lcom/tencent/mobileqq/data/QQWalletRedPacketMsg;const/4 v4, 0x1iput-boolean v4, v3, Lcom/tencent/mobileqq/data/QQWalletRedPacketMsg;->isOpened:Z#.line 498const/4 v3, 0x0iput-object v3, v14, Lcom/tencent/mobileqq/data/MessageForQQWalletMsg;->mQQWalletTransferMsg:Lcom/tencent/mobileqq/data/QQWalletTransferMsg;#.line 499invoke-virtual {v14}, Lcom/tencent/mobileqq/data/MessageForQQWalletMsg;->getBytes()[Bmove-result-object v3iput-object v3, v14, Lcom/tencent/mobileqq/data/MessageForQQWalletMsg;->msgData:[B#.line 500move-object/from16 v0, p0iget-object v3, v0, Luhx;->a:Lcom/tencent/mobileqq/activity/aio/item/QQWalletMsgItemBuilder;iget-object v3, v3, Lcom/tencent/mobileqq/activity/aio/item/QQWalletMsgItemBuilder;->a:Lcom/tencent/mobileqq/app/QQAppInterface;invoke-virtual {v3}, Lcom/tencent/mobileqq/app/QQAppInterface;->a()Lcom/tencent/mobileqq/app/message/QQMessageFacade;move-result-object v3move-object/from16 v0, p0iget-object v4, v0, Luhx;->a:Lcom/tencent/mobileqq/activity/aio/item/QQWalletMsgItemBuilder;iget-object v4, v4, Lcom/tencent/mobileqq/activity/aio/item/QQWalletMsgItemBuilder;->a:Lcom/tencent/mobileqq/activity/aio/SessionInfo;iget-object v4, v4, Lcom/tencent/mobileqq/activity/aio/SessionInfo;->a:Ljava/lang/String;move-object/from16 v0, p0iget-object v5, v0, Luhx;->a:Lcom/tencent/mobileqq/activity/aio/item/QQWalletMsgItemBuilder;iget-object v5, v5, Lcom/tencent/mobileqq/activity/aio/item/QQWalletMsgItemBuilder;->a:Lcom/tencent/mobileqq/activity/aio/SessionInfo;iget v5, v5, Lcom/tencent/mobileqq/activity/aio/SessionInfo;->a:Iiget-wide v6, v14, Lcom/tencent/mobileqq/data/MessageForQQWalletMsg;->uniseq:Jiget-object v8, v14, Lcom/tencent/mobileqq/data/MessageForQQWalletMsg;->msgData:[Binvoke-virtual/range {v3 .. v8}, Lcom/tencent/mobileqq/app/message/QQMessageFacade;->a(Ljava/lang/String;IJ[B)Vmove-object v6, v15move-object/from16 v5, v16move-object v10, v2goto/16 :goto_a1#.line 502:cond_17eif-eqz v3, :cond_2f8  #y真正领取红包逻辑1iget-object v3, v14, Lcom/tencent/mobileqq/data/MessageForQQWalletMsg;->mQQWalletRedPacketMsg:Lcom/tencent/mobileqq/data/QQWalletRedPacketMsg;if-eqz v3, :cond_2f8 #可能是判断是否不为空 那么这里肯定不为空#.line 504move-object/from16 v0, p0iget-object v2, v0, Luhx;->a:Lcom/tencent/mobileqq/activity/aio/item/QQWalletMsgItemBuilder;iget-object v2, v2, Lcom/tencent/mobileqq/activity/aio/item/QQWalletMsgItemBuilder;->a:Lcom/tencent/mobileqq/activity/aio/SessionInfo;iget v2, v2, Lcom/tencent/mobileqq/activity/aio/SessionInfo;->a:I
#===========if-eqz v2, :cond_1d6move-object/from16 v0, p0iget-object v2, v0, Luhx;->a:Lcom/tencent/mobileqq/activity/aio/item/QQWalletMsgItemBuilder;iget-object v2, v2, Lcom/tencent/mobileqq/activity/aio/item/QQWalletMsgItemBuilder;->a:Lcom/tencent/mobileqq/activity/aio/SessionInfo;iget v2, v2, Lcom/tencent/mobileqq/activity/aio/SessionInfo;->a:Iconst/16 v3, 0x3e8 #1000if-eq v2, v3, :cond_1d6move-object/from16 v0, p0iget-object v2, v0, Luhx;->a:Lcom/tencent/mobileqq/activity/aio/item/QQWalletMsgItemBuilder;iget-object v2, v2, Lcom/tencent/mobileqq/activity/aio/item/QQWalletMsgItemBuilder;->a:Lcom/tencent/mobileqq/activity/aio/SessionInfo;#正常领取逻辑某iget v2, v2, Lcom/tencent/mobileqq/activity/aio/SessionInfo;->a:Iconst/16 v3, 0x3ecif-eq v2, v3, :cond_1d6move-object/from16 v0, p0#passiget-object v2, v0, Luhx;->a:Lcom/tencent/mobileqq/activity/aio/item/QQWalletMsgItemBuilder;iget-object v2, v2, Lcom/tencent/mobileqq/activity/aio/item/QQWalletMsgItemBuilder;->a:Lcom/tencent/mobileqq/activity/aio/SessionInfo;iget v2, v2, Lcom/tencent/mobileqq/activity/aio/SessionInfo;->a:Iconst/16 v3, 0x3e9if-eq v2, v3, :cond_1d6move-object/from16 v0, p0#===========iget-object v2, v0, Luhx;->a:Lcom/tencent/mobileqq/activity/aio/item/QQWalletMsgItemBuilder;iget-object v2, v2, Lcom/tencent/mobileqq/activity/aio/item/QQWalletMsgItemBuilder;->a:Lcom/tencent/mobileqq/activity/aio/SessionInfo;iget v2, v2, Lcom/tencent/mobileqq/activity/aio/SessionInfo;->a:Iconst/16 v3, 0x2712if-eq v2, v3, :cond_1d6move-object/from16 v0, p0iget-object v2, v0, Luhx;->a:Lcom/tencent/mobileqq/activity/aio/item/QQWalletMsgItemBuilder;#======exitiget-object v2, v2, Lcom/tencent/mobileqq/activity/aio/item/QQWalletMsgItemBuilder;->a:Lcom/tencent/mobileqq/activity/aio/SessionInfo;iget v2, v2, Lcom/tencent/mobileqq/activity/aio/SessionInfo;->a:Iconst/16 v3, 0x2714 #1004if-eq v2, v3, :cond_1d6 #如果不等于1004就跳转cond_1d6这里等于 继续往下走move-object/from16 v0, p0iget-object v2, v0, Luhx;->a:Lcom/tencent/mobileqq/activity/aio/item/QQWalletMsgItemBuilder;#paseiget-object v2, v2, Lcom/tencent/mobileqq/activity/aio/item/QQWalletMsgItemBuilder;->a:Lcom/tencent/mobileqq/activity/aio/SessionInfo;iget v2, v2, Lcom/tencent/mobileqq/activity/aio/SessionInfo;->a:Iconst/16 v3, 0x3f0 #1008if-ne v2, v3, :cond_25f #如果v2的值不等于1008就跳转到cond_25f显然城里:cond_1d6const/4 v2, 0x1#.line 512:goto_1d7if-eqz v2, :cond_1ea  #判断是否是一件发送  刚刚默认为0?#.line 513invoke-virtual {v14}, Lcom/tencent/mobileqq/data/MessageForQQWalletMsg;->isSend()Zmove-result v2if-nez v2, :cond_1ea#.line 514move-object/from16 v0, p0iget-object v2, v0, Luhx;->a:Lcom/tencent/mobileqq/activity/aio/item/QQWalletMsgItemBuilder;iget-object v2, v2, Lcom/tencent/mobileqq/activity/aio/item/QQWalletMsgItemBuilder;->a:Lcom/tencent/mobileqq/app/QQAppInterface;invoke-virtual {v2}, Lcom/tencent/mobileqq/app/QQAppInterface;->getCurrentAccountUin()Ljava/lang/String;move-result-object v2move-object v15, v2#.line 518:cond_1ea #又到了authkey来了iget-object v2, v14, Lcom/tencent/mobileqq/data/MessageForQQWalletMsg;->mQQWalletRedPacketMsg:Lcom/tencent/mobileqq/data/QQWalletRedPacketMsg;iget-object v0, v2, Lcom/tencent/mobileqq/data/QQWalletRedPacketMsg;->elem:Lcom/tencent/mobileqq/data/QQWalletTransferMsgElem;move-object/from16 v17, v0
#开始autokey#.line 519iget-object v2, v14, Lcom/tencent/mobileqq/data/MessageForQQWalletMsg;->mQQWalletRedPacketMsg:Lcom/tencent/mobileqq/data/QQWalletRedPacketMsg;iget-object v0, v2, Lcom/tencent/mobileqq/data/QQWalletRedPacketMsg;->authkey:Ljava/lang/String;move-object/from16 v16, v0#.line 520const/16 v2, -0x7e9#-2025iput v2, v14, Lcom/tencent/mobileqq/data/MessageForQQWalletMsg;->msgtype:I#赋值msgtype=#.line 521iget-object v2, v14, Lcom/tencent/mobileqq/data/MessageForQQWalletMsg;->mQQWalletRedPacketMsg:Lcom/tencent/mobileqq/data/QQWalletRedPacketMsg;const/4 v3, 0x1 #给isOpened设置为trueiput-boolean v3, v2, Lcom/tencent/mobileqq/data/QQWalletRedPacketMsg;->isOpened:Z#.line 522invoke-virtual {v14}, Lcom/tencent/mobileqq/data/MessageForQQWalletMsg;->getBytes()[Bmove-result-object v2iput-object v2, v14, Lcom/tencent/mobileqq/data/MessageForQQWalletMsg;->msgData:[B#.line 524move-object/from16 v0, p0iget-object v2, v0, Luhx;->a:Lcom/tencent/mobileqq/activity/aio/item/QQWalletMsgItemBuilder;iget-object v2, v2, Lcom/tencent/mobileqq/activity/aio/item/QQWalletMsgItemBuilder;->a:Lcom/tencent/mobileqq/app/QQAppInterface;invoke-virtual {v2}, Lcom/tencent/mobileqq/app/QQAppInterface;->a()Lcom/tencent/mobileqq/app/message/QQMessageFacade;move-result-object v3move-object/from16 v0, p0iget-object v2, v0, Luhx;->a:Lcom/tencent/mobileqq/activity/aio/item/QQWalletMsgItemBuilder;iget-object v2, v2, Lcom/tencent/mobileqq/activity/aio/item/QQWalletMsgItemBuilder;->a:Lcom/tencent/mobileqq/activity/aio/SessionInfo;iget-object v4, v2, Lcom/tencent/mobileqq/activity/aio/SessionInfo;->a:Ljava/lang/String;move-object/from16 v0, p0iget-object v2, v0, Luhx;->a:Lcom/tencent/mobileqq/activity/aio/item/QQWalletMsgItemBuilder;iget-object v2, v2, Lcom/tencent/mobileqq/activity/aio/item/QQWalletMsgItemBuilder;->a:Lcom/tencent/mobileqq/activity/aio/SessionInfo;iget v5, v2, Lcom/tencent/mobileqq/activity/aio/SessionInfo;->a:Iiget-wide v6, v14, Lcom/tencent/mobileqq/data/MessageForQQWalletMsg;->uniseq:Jiget-object v8, v14, Lcom/tencent/mobileqq/data/MessageForQQWalletMsg;->msgData:[Binvoke-virtual/range {v3 .. v8}, Lcom/tencent/mobileqq/app/message/QQMessageFacade;->a(Ljava/lang/String;IJ[B)V
#=============没打开都执行了#.line 561move-object/from16 v0, p0iget-object v2, v0, Luhx;->a:Lcom/tencent/mobileqq/activity/aio/item/QQWalletMsgItemBuilder;iget-object v2, v2, Lcom/tencent/mobileqq/activity/aio/item/QQWalletMsgItemBuilder;->a:Lcom/tencent/mobileqq/app/QQAppInterface;const-string v3, "P_CliOper"#======================这里的代码是领取未打卡的红包会执行的逻辑const-string v4, "Vip_pay_mywallet"const-string v5, ""const-string v6, "transferaccountmsg"const-string v7, "show"const/4 v8, 0x0const/4 v9, 0x0new-instance v10, Ljava/lang/StringBuilder;invoke-direct {v10}, Ljava/lang/StringBuilder;-><init>()Vconst-string v11, ""invoke-virtual {v10, v11}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;move-result-object v10iget-object v11, v14, Lcom/tencent/mobileqq/data/MessageForQQWalletMsg;->mQQWalletRedPacketMsg:Lcom/tencent/mobileqq/data/QQWalletRedPacketMsg;iget v11, v11, Lcom/tencent/mobileqq/data/QQWalletRedPacketMsg;->templateId:Iinvoke-virtual {v10, v11}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;move-result-object v10invoke-virtual {v10}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;move-result-object v10const-string v11, ""const-string v12, ""const-string v13, ""invoke-static/range {v2 .. v13}, Lcom/tencent/mobileqq/statistics/ReportController;->b(Lcom/tencent/mobileqq/app/QQAppInterface;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;IILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Vmove-object v6, v15move-object/from16 v5, v16move-object/from16 v10, v17goto/16 :goto_a1#跳转到另外一个段代码块了#.line 504:cond_25f #直接跳转到这里来了const/4 v2, 0x0goto/16 :goto_1d7#.line 575:cond_262 #刚刚不为空那么进入了分割字符串逻辑 可惜as调试不能知道具体局部变量代码是多少。iget-object v2, v10, Lcom/tencent/mobileqq/data/QQWalletTransferMsgElem;->actionsPriority:Ljava/lang/String;const-string v4, "\\|"invoke-virtual {v2, v4}, Ljava/lang/String;->split(Ljava/lang/String;)[Ljava/lang/String;move-result-object v11#.line 576const/4 v2, 0x0move v9, v2move v2, v3:goto_26darray-length v3, v11if-ge v9, v3, :cond_a#如果v9大于v3就跳转到cond_a也就是退出了#.line 577aget-object v3, v11, v9 #显然没有大于 进入while循环invoke-static {v3}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Zmove-result v3if-eqz v3, :cond_27e #如果不为空就跳转到cond_27emove v3, v2#.line 576:goto_279add-int/lit8 v2, v9, 0x1move v9, v2move v2, v3goto :goto_26d#.line 581:cond_27e:try_start_27eaget-object v3, v11, v9invoke-static {v3}, Ljava/lang/Integer;->valueOf(Ljava/lang/String;)Ljava/lang/Integer;#    i3 = Integer.valueOf(split[i2]).intValue();move-result-object v3invoke-virtual {v3}, Ljava/lang/Integer;->intValue()I:try_end_287.catch Ljava/lang/Exception; {:try_start_27e .. :try_end_287} :catch_299move-result v2#.line 591:cond_288:goto_288const/4 v3, 0x1if-ne v2, v3, :cond_2cb# if (i3 == 1)   #如果不等于1就跳转到cond_2cb#.line 592invoke-virtual/range {p1 .. p1}, Landroid/view/View;->getContext()Landroid/content/Context;move-result-object v2iget-object v3, v10, Lcom/tencent/mobileqq/data/QQWalletTransferMsgElem;->linkUrl:Ljava/lang/String;invoke-static {v2, v3}, Lcom/tencent/mobileqq/activity/qwallet/utils/QWalletRedPkgUtils;->b(Landroid/content/Context;Ljava/lang/String;)Zmove-result v2if-nez v2, :cond_a#.line 605:cond_297const/4 v3, -0x1goto :goto_279#.line 582:catch_299move-exception v3#.line 583invoke-static {}, Lcom/tencent/qphone/base/util/QLog;->isDevelopLevel()Zmove-result v4if-eqz v4, :cond_2a3#.line 584invoke-virtual {v3}, Ljava/lang/Exception;->printStackTrace()V#.line 586:cond_2a3invoke-static {}, Lcom/tencent/qphone/base/util/QLog;->isColorLevel()Zmove-result v4if-eqz v4, :cond_288#.line 587const-string v4, "QQWalletMsgItemBuilder"const/4 v7, 0x2new-instance v8, Ljava/lang/StringBuilder;invoke-direct {v8}, Ljava/lang/StringBuilder;-><init>()Vconst-string v12, "QQWalletMsgItemBuilder failed to convert String:"invoke-virtual {v8, v12}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;move-result-object v8aget-object v12, v11, v9invoke-virtual {v8, v12}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;move-result-object v8const-string v12, " to Interger,"invoke-virtual {v8, v12}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;move-result-object v8invoke-virtual {v8}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;move-result-object v8invoke-static {v4, v7, v8, v3}, Lcom/tencent/qphone/base/util/QLog;->d(Ljava/lang/String;ILjava/lang/String;Ljava/lang/Throwable;)Vgoto :goto_288#.line 595:cond_2cbconst/4 v3, 0x2#刚才不等于1那么判断是否不等于 ==2 不等于的话继续跳转if-ne v2, v3, :cond_2dc#.line 596invoke-virtual/range {p1 .. p1}, Landroid/view/View;->getContext()Landroid/content/Context;move-result-object v2iget-object v3, v10, Lcom/tencent/mobileqq/data/QQWalletTransferMsgElem;->jumpUrl:Ljava/lang/String;invoke-static {v2, v3}, Lcom/tencent/mobileqq/activity/qwallet/utils/QWalletRedPkgUtils;->a(Landroid/content/Context;Ljava/lang/String;)Zmove-result v2if-eqz v2, :cond_297goto/16 :goto_a#.line 599:cond_2dcconst/4 v3, 0x3 #由于还是不等于又跳到我这里来了if-ne v2, v3, :cond_297 #还是不等于3就继续跳转#.line 600move-object/from16 v0, p0#等于3 执行了   if (QQWalletMsgItemBuilder.a(this.a, view.getContext(), qQWalletTransferMsgElem.nativeAndroiiget-object v2, v0, Luhx;->a:Lcom/tencent/mobileqq/activity/aio/item/QQWalletMsgItemBuilder;invoke-virtual/range {p1 .. p1}, Landroid/view/View;->getContext()Landroid/content/Context;move-result-object v3iget-object v4, v10, Lcom/tencent/mobileqq/data/QQWalletTransferMsgElem;->nativeAndroid:Ljava/lang/String;move-object/from16 v0, p0iget-object v7, v0, Luhx;->a:Lcom/tencent/mobileqq/activity/aio/item/QQWalletMsgItemBuilder;iget-object v8, v7, Lcom/tencent/mobileqq/activity/aio/item/QQWalletMsgItemBuilder;->a:Lcom/tencent/mobileqq/activity/aio/SessionInfo;move-object v7, v14invoke-static/range {v2 .. v8}, Lcom/tencent/mobileqq/activity/aio/item/QQWalletMsgItemBuilder;->a(Lcom/tencent/mobileqq/activity/aio/item/QQWalletMsgItemBuilder;Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lcom/tencent/mobileqq/data/MessageForQQWalletMsg;Lcom/tencent/mobileqq/activity/aio/SessionInfo;)Zmove-result v2if-eqz v2, :cond_297 #如果是true就返回了。goto/16 :goto_a #果然为true:cond_2f8move-object v6, v15move-object/from16 v5, v16move-object v10, v2goto/16 :goto_a1
.end method

对应的源代码

/* compiled from: ProGuard */
public class uhx implements OnClickListener {final /* synthetic */ QQWalletMsgItemBuilder a;public uhx(QQWalletMsgItemBuilder qQWalletMsgItemBuilder) {this.a = qQWalletMsgItemBuilder;}public void onClick(View view) {if (!QQWalletMsgItemBuilder.a(this.a)) {long currentTimeMillis = System.currentTimeMillis();if (QWalletRedPkgUtils.a(this.a.c, currentTimeMillis)) {this.a.c = currentTimeMillis;MessageForQQWalletMsg messageForQQWalletMsg = (MessageForQQWalletMsg) ((QWalletMsgHolder) AIOUtils.a(view)).a;String str = this.a.a.a;if (messageForQQWalletMsg != null) {String str2;String str3;QQWalletTransferMsgElem qQWalletTransferMsgElem;boolean a = QWalletRedPkgUtils.a(messageForQQWalletMsg);//如果已经领取了QQWalletTransferMsgElem qQWalletTransferMsgElem2;if (!a && messageForQQWalletMsg.mQQWalletTransferMsg != null) {qQWalletTransferMsgElem2 = messageForQQWalletMsg.mQQWalletTransferMsg.elem;if (messageForQQWalletMsg.messageType == 9) {QQWalletAioBodys qQWalletAioBodys = messageForQQWalletMsg.mQQWalletTransferMsg.body;int i = qQWalletAioBodys != null ? qQWalletAioBodys.pfa_type : 0;if (i == 1) {ReportController.b(this.a.a, "P_CliOper", "Vip_pay_mywallet", "", "wallet", "autofriendpay.aio.qiukaitong.click", 0, 0, "", "", "", "");} else if (i == 2) {ReportController.b(this.a.a, "P_CliOper", "Vip_pay_mywallet", "", "wallet", "autofriendpay.aio.yikaitong.click", 0, 0, "", "", "", "");}if (QLog.isColorLevel()) {QLog.d("QQWalletMsgItemBuilder", 2, "onClick pfa_type=" + i);}str2 = str;str3 = null;qQWalletTransferMsgElem = qQWalletTransferMsgElem2;} else {ReportController.b(this.a.a, "P_CliOper", "Vip_pay_mywallet", "", "transferaccountmsg", "show", 0, 0, "" + messageForQQWalletMsg.mQQWalletTransferMsg.templateId, "", "", "");str2 = str;str3 = null;qQWalletTransferMsgElem = qQWalletTransferMsgElem2;}} else if (a && messageForQQWalletMsg.mQQWalletTransferMsg != null) {QQWalletTransferMsgElem qQWalletTransferMsgElem3 = messageForQQWalletMsg.mQQWalletTransferMsg.elem;messageForQQWalletMsg.mQQWalletRedPacketMsg = new QQWalletRedPacketMsg();messageForQQWalletMsg.mQQWalletRedPacketMsg.elem = messageForQQWalletMsg.mQQWalletTransferMsg.elem;messageForQQWalletMsg.msgtype = -2025;messageForQQWalletMsg.mQQWalletRedPacketMsg.authkey = "";messageForQQWalletMsg.mQQWalletRedPacketMsg.redPacketId = "";messageForQQWalletMsg.mQQWalletRedPacketMsg.redtype = 0;messageForQQWalletMsg.mQQWalletRedPacketMsg.templateId = 0;messageForQQWalletMsg.mQQWalletRedPacketMsg.isOpened = true;messageForQQWalletMsg.mQQWalletTransferMsg = null;messageForQQWalletMsg.msgData = messageForQQWalletMsg.getBytes();this.a.a.a().a(this.a.a.a, this.a.a.a, messageForQQWalletMsg.uniseq, messageForQQWalletMsg.msgData);str2 = str;str3 = null;qQWalletTransferMsgElem = qQWalletTransferMsgElem3;} else if (!a || messageForQQWalletMsg.mQQWalletRedPacketMsg == null) {str2 = str;str3 = null;qQWalletTransferMsgElem = null;} else { //可疑执行代码  又是执行这里看来是知道有没有领取的啊Object obj = (this.a.a.a == 0 || this.a.a.a == 1000 || this.a.a.a == 1004 || this.a.a.a == 1001 || this.a.a.a == 10002 || this.a.a.a == 10004 || this.a.a.a == 1008) ? 1 : null;if (!(obj == null || messageForQQWalletMsg.isSend())) {str = this.a.a.getCurrentAccountUin();}//这里是真实领取红包调用的代码qQWalletTransferMsgElem2 = messageForQQWalletMsg.mQQWalletRedPacketMsg.elem;String str4 = messageForQQWalletMsg.mQQWalletRedPacketMsg.authkey;messageForQQWalletMsg.msgtype = -2025;messageForQQWalletMsg.mQQWalletRedPacketMsg.isOpened = true;messageForQQWalletMsg.msgData = messageForQQWalletMsg.getBytes();this.a.a.a().a(this.a.a.a, this.a.a.a, messageForQQWalletMsg.uniseq, messageForQQWalletMsg.msgData);ReportController.b(this.a.a, "P_CliOper", "Vip_pay_mywallet", "", "transferaccountmsg", "show", 0, 0, "" + messageForQQWalletMsg.mQQWalletRedPacketMsg.templateId, "", "", "");str2 = str;str3 = str4;qQWalletTransferMsgElem = qQWalletTransferMsgElem2;}if (qQWalletTransferMsgElem == null) {return;}if (TextUtils.isEmpty(qQWalletTransferMsgElem.actionsPriority)) {QWalletRedPkgUtils.b(view.getContext(), qQWalletTransferMsgElem.linkUrl);return;}String[] split = qQWalletTransferMsgElem.actionsPriority.split("\\|");int i2 = 0;int i3 = 0;while (i2 < split.length) {int i4;if (TextUtils.isEmpty(split[i2])) {i4 = i3;} else {try {i3 = Integer.valueOf(split[i2]).intValue();} catch (Throwable e) {if (QLog.isDevelopLevel()) {e.printStackTrace();}if (QLog.isColorLevel()) {QLog.d("QQWalletMsgItemBuilder", 2, "QQWalletMsgItemBuilder failed to convert String:" + split[i2] + " to Interger,", e);}}if (i3 == 1) {if (QWalletRedPkgUtils.b(view.getContext(), qQWalletTransferMsgElem.linkUrl)) {return;}} else if (i3 == 2) {if (QWalletRedPkgUtils.a(view.getContext(), qQWalletTransferMsgElem.jumpUrl)) {return;}} else if (i3 == 3) {//执行了这个代码 if -ne v2 v3if (QQWalletMsgItemBuilder.a(this.a, view.getContext(), qQWalletTransferMsgElem.nativeAndroid, str3, str2, messageForQQWalletMsg, this.a.a)) {return;}}i4 = -1;}i2++;i3 = i4;}}}}}

最后不得不吐槽,smali跳转的晕头转向的。没有一个api如果记不住还真的有点晕!
最后调用了这里

private boolean a(Context context, String str, String str2, String str3, MessageForQQWalletMsg messageForQQWalletMsg, SessionInfo sessionInfo) {if (context == null || TextUtils.isEmpty(str)) {return false;}String[] split = str.split("\\?");String str4 = split[0];if (TextUtils.isEmpty(str4)) {return false;}HashMap parseUrlParams;Intent intent;if (split.length > 1) {parseUrlParams = messageForQQWalletMsg.parseUrlParams(split[1]);} else {parseUrlParams = new HashMap();}String str5;String str6;if (str4.equals("pay")) {str5 = (String) parseUrlParams.get("payData");str6 = (String) parseUrlParams.get("reqCode");if (TextUtils.isEmpty(str6) || TextUtils.isEmpty(str5)) {return false;}Bundle bundle = new Bundle();bundle.putString("json", str5);bundle.putString("callbackSn", "0");intent = new Intent(context, PayBridgeActivity.class);intent.putExtras(bundle);intent.putExtra("pay_requestcode", Integer.valueOf(str6).intValue());} else if (str4.equals("red")) {String str7 = (String) parseUrlParams.get("id");if (TextUtils.isEmpty(str7)) {return false;}String str8 = messageForQQWalletMsg.mQQWalletRedPacketMsg.elem.cftImage;Bundle a = QWalletRedPkgUtils.a(this.a, sessionInfo, messageForQQWalletMsg);int i = a.getInt("groupType");String string = a.getString("name");r2 = QWalletRedPkgUtils.a(this.a, messageForQQWalletMsg, sessionInfo, i, string, str7, str2, str3, "appid#1344242394|bargainor_id#1000030201|channel#msg", "graphb", str8);if (this.f6783a != null && messageForQQWalletMsg.mQQWalletRedPacketMsg.envelopeid > 0) {try {JSONObject jSONObject = r2.getJSONObject("extra_data");r4 = this.f6783a.a(String.valueOf(messageForQQWalletMsg.mQQWalletRedPacketMsg.envelopeid), messageForQQWalletMsg.mQQWalletRedPacketMsg.envelopeName);if (QLog.isColorLevel()) {QLog.d("vipBgImage", 2, r4);}jSONObject.put("vipBgImage", r4);} catch (Exception e) {}}Bundle bundle2 = new Bundle();bundle2.putString("json", r2.toString());bundle2.putString("callbackSn", "0");if (str8 != null) {bundle2.putString("cftImageUrl", str8);}if (str7 != null && str7.length() > 4) {str7 = "****" + str7.substring(4);}bundle2.putLong("vacreport_key_seq", VACDReportUtil.a(null, "qqwallet", "graphb", "open", "groupType=" + i + "&msgType=" + messageForQQWalletMsg.messageType + "&redId=" + str7, 0, null));intent = new Intent(context, PayBridgeActivity.class);intent.putExtras(bundle2);intent.putExtra("pay_requestcode", 5);} else if (str4.equals("pfa")) {r4 = "appid#1344242394|bargainor_id#1000030201|channel#paymsg";String str9 = "payByFriendConfirm";str5 = (String) parseUrlParams.get("data");str6 = (String) parseUrlParams.get("tokenid");if (TextUtils.isEmpty(str6) || TextUtils.isEmpty(str5)) {return false;}JSONObject jSONObject2 = new JSONObject();try {jSONObject2.put("userId", this.a.getCurrentAccountUin());jSONObject2.put("viewTag", str9);jSONObject2.put("appInfo", r4);jSONObject2.put("comeForm", 2);r2 = new JSONObject();r2.put("pfa_req", str);r2.put("token_id", str6);jSONObject2.put("extra_data", r2);} catch (Exception e2) {if (QLog.isDevelopLevel()) {e2.printStackTrace();}}Bundle bundle3 = new Bundle();bundle3.putString("json", jSONObject2.toString());bundle3.putString("callbackSn", "0");intent = new Intent(context, PayBridgeActivity.class);intent.putExtras(bundle3);intent.putExtra("pay_requestcode", 5);} else {Class loadClass;try {ClassLoader classLoader = QQWalletMsgItemBuilder.class.getClassLoader();if (classLoader == null) {return false;}loadClass = classLoader.loadClass(str4);if (loadClass == null) {return false;}Intent intent2 = new Intent(context, loadClass);for (Entry entry : parseUrlParams.entrySet()) {intent2.putExtra((String) entry.getKey(), (String) entry.getValue());}intent = intent2;} catch (Throwable e3) {if (QLog.isDevelopLevel()) {e3.printStackTrace();}if (QLog.isColorLevel()) {QLog.d("QQWalletMsgItemBuilder", 2, "QQWalletMsgItemBuilder failed to find Class : " + str4, e3);}loadClass = null;}}try {context.startActivity(intent);return true;} catch (Throwable e32) {if (QLog.isDevelopLevel()) {e32.printStackTrace();}if (QLog.isColorLevel()) {QLog.d("QQWalletMsgItemBuilder", 2, "QQWalletMsgItemBuilder failed to startActivity : " + str4, e32);}return false;}}

这篇关于smali语法笔记以及QQ7.5.0普通红包点击分析的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/959198

相关文章

Redis连接失败:客户端IP不在白名单中的问题分析与解决方案

《Redis连接失败:客户端IP不在白名单中的问题分析与解决方案》在现代分布式系统中,Redis作为一种高性能的内存数据库,被广泛应用于缓存、消息队列、会话存储等场景,然而,在实际使用过程中,我们可能... 目录一、问题背景二、错误分析1. 错误信息解读2. 根本原因三、解决方案1. 将客户端IP添加到Re

Redis主从复制实现原理分析

《Redis主从复制实现原理分析》Redis主从复制通过Sync和CommandPropagate阶段实现数据同步,2.8版本后引入Psync指令,根据复制偏移量进行全量或部分同步,优化了数据传输效率... 目录Redis主DodMIK从复制实现原理实现原理Psync: 2.8版本后总结Redis主从复制实

锐捷和腾达哪个好? 两个品牌路由器对比分析

《锐捷和腾达哪个好?两个品牌路由器对比分析》在选择路由器时,Tenda和锐捷都是备受关注的品牌,各自有独特的产品特点和市场定位,选择哪个品牌的路由器更合适,实际上取决于你的具体需求和使用场景,我们从... 在选购路由器时,锐捷和腾达都是市场上备受关注的品牌,但它们的定位和特点却有所不同。锐捷更偏向企业级和专

什么是 Ubuntu LTS?Ubuntu LTS和普通版本区别对比

《什么是UbuntuLTS?UbuntuLTS和普通版本区别对比》UbuntuLTS是Ubuntu操作系统的一个特殊版本,旨在提供更长时间的支持和稳定性,与常规的Ubuntu版本相比,LTS版... 如果你正打算安装 Ubuntu 系统,可能会被「LTS 版本」和「普通版本」给搞得一头雾水吧?尤其是对于刚入

Spring中Bean有关NullPointerException异常的原因分析

《Spring中Bean有关NullPointerException异常的原因分析》在Spring中使用@Autowired注解注入的bean不能在静态上下文中访问,否则会导致NullPointerE... 目录Spring中Bean有关NullPointerException异常的原因问题描述解决方案总结

python中的与时间相关的模块应用场景分析

《python中的与时间相关的模块应用场景分析》本文介绍了Python中与时间相关的几个重要模块:`time`、`datetime`、`calendar`、`timeit`、`pytz`和`dateu... 目录1. time 模块2. datetime 模块3. calendar 模块4. timeit

python-nmap实现python利用nmap进行扫描分析

《python-nmap实现python利用nmap进行扫描分析》Nmap是一个非常用的网络/端口扫描工具,如果想将nmap集成进你的工具里,可以使用python-nmap这个python库,它提供了... 目录前言python-nmap的基本使用PortScanner扫描PortScannerAsync异

Oracle数据库执行计划的查看与分析技巧

《Oracle数据库执行计划的查看与分析技巧》在Oracle数据库中,执行计划能够帮助我们深入了解SQL语句在数据库内部的执行细节,进而优化查询性能、提升系统效率,执行计划是Oracle数据库优化器为... 目录一、什么是执行计划二、查看执行计划的方法(一)使用 EXPLAIN PLAN 命令(二)通过 S

性能分析之MySQL索引实战案例

文章目录 一、前言二、准备三、MySQL索引优化四、MySQL 索引知识回顾五、总结 一、前言 在上一讲性能工具之 JProfiler 简单登录案例分析实战中已经发现SQL没有建立索引问题,本文将一起从代码层去分析为什么没有建立索引? 开源ERP项目地址:https://gitee.com/jishenghua/JSH_ERP 二、准备 打开IDEA找到登录请求资源路径位置

【测试】输入正确用户名和密码,点击登录没有响应的可能性原因

目录 一、前端问题 1. 界面交互问题 2. 输入数据校验问题 二、网络问题 1. 网络连接中断 2. 代理设置问题 三、后端问题 1. 服务器故障 2. 数据库问题 3. 权限问题: 四、其他问题 1. 缓存问题 2. 第三方服务问题 3. 配置问题 一、前端问题 1. 界面交互问题 登录按钮的点击事件未正确绑定,导致点击后无法触发登录操作。 页面可能存在