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

相关文章

Tolua使用笔记(上)

目录   1.准备工作 2.运行例子 01.HelloWorld:在C#中,创建和销毁Lua虚拟机 和 简单调用。 02.ScriptsFromFile:在C#中,对一个lua文件的执行调用 03.CallLuaFunction:在C#中,对lua函数的操作 04.AccessingLuaVariables:在C#中,对lua变量的操作 05.LuaCoroutine:在Lua中,

AssetBundle学习笔记

AssetBundle是unity自定义的资源格式,通过调用引擎的资源打包接口对资源进行打包成.assetbundle格式的资源包。本文介绍了AssetBundle的生成,使用,加载,卸载以及Unity资源更新的一个基本步骤。 目录 1.定义: 2.AssetBundle的生成: 1)设置AssetBundle包的属性——通过编辑器界面 补充:分组策略 2)调用引擎接口API

UE3脚本UnrealScript UC语法点滴

持续更新 目录 类定义修饰符  1.dependson(CLASSNAME) 2.config(ININAME) 3.native 4.notplaceable 5.inherits(CLASSNAME1[,CLASSNAME2,...]) 类对象实例创建 类默认属性设置 变量 1.声明 var local 2.修饰符 config  3.array 类型变量 以及

mysql索引一(普通索引)

mysql的索引分为两大类,聚簇索引、非聚簇索引。聚簇索引是按照数据存放的物理位置为顺序的,而非聚簇索引则不同。聚簇索引能够提高多行检索的速度、非聚簇索引则对单行检索的速度很快。         在这两大类的索引类型下,还可以降索引分为4个小类型:         1,普通索引:最基本的索引,没有任何限制,是我们经常使用到的索引。         2,唯一索引:与普通索引

《offer来了》第二章学习笔记

1.集合 Java四种集合:List、Queue、Set和Map 1.1.List:可重复 有序的Collection ArrayList: 基于数组实现,增删慢,查询快,线程不安全 Vector: 基于数组实现,增删慢,查询快,线程安全 LinkedList: 基于双向链实现,增删快,查询慢,线程不安全 1.2.Queue:队列 ArrayBlockingQueue:

[职场] 公务员的利弊分析 #知识分享#经验分享#其他

公务员的利弊分析     公务员作为一种稳定的职业选择,一直备受人们的关注。然而,就像任何其他职业一样,公务员职位也有其利与弊。本文将对公务员的利弊进行分析,帮助读者更好地了解这一职业的特点。 利: 1. 稳定的职业:公务员职位通常具有较高的稳定性,一旦进入公务员队伍,往往可以享受到稳定的工作环境和薪资待遇。这对于那些追求稳定的人来说,是一个很大的优势。 2. 薪资福利优厚:公务员的薪资和

操作系统实训复习笔记(1)

目录 Linux vi/vim编辑器(简单) (1)vi/vim基本用法。 (2)vi/vim基础操作。 进程基础操作(简单) (1)fork()函数。 写文件系统函数(中等) ​编辑 (1)C语言读取文件。 (2)C语言写入文件。 1、write()函数。  读文件系统函数(简单) (1)read()函数。 作者本人的操作系统实训复习笔记 Linux

高度内卷下,企业如何通过VOC(客户之声)做好竞争分析?

VOC,即客户之声,是一种通过收集和分析客户反馈、需求和期望,来洞察市场趋势和竞争对手动态的方法。在高度内卷的市场环境下,VOC不仅能够帮助企业了解客户的真实需求,还能为企业提供宝贵的竞争情报,助力企业在竞争中占据有利地位。 那么,企业该如何通过VOC(客户之声)做好竞争分析呢?深圳天行健企业管理咨询公司解析如下: 首先,要建立完善的VOC收集机制。这包括通过线上渠道(如社交媒体、官网留言

LVGL快速入门笔记

目录 一、基础知识 1. 基础对象(lv_obj) 2. 基础对象的大小(size) 3. 基础对象的位置(position) 3.1 直接设置方式 3.2 参照父对象对齐 3.3 获取位置 4. 基础对象的盒子模型(border-box) 5. 基础对象的样式(styles) 5.1 样式的状态和部分 5.1.1 对象可以处于以下状态States的组合: 5.1.2 对象

DDS信号的发生器(验证篇)——FPGA学习笔记8

前言:第一部分详细讲解DDS核心框图,还请读者深入阅读第一部分,以便理解DDS核心思想 三刷小梅哥视频总结! 小梅哥https://www.corecourse.com/lander 一、DDS简介         DDS(Direct Digital Synthesizer)即数字合成器,是一种新型的频率合成技术,具有低成本、低功耗、高分辨率、频率转换时间短、相位连续性好等优点,对数字信