java cap 反编译_Android 反编译之修改Smali 文件输出日志

承接上篇Android反编译之修改Smali文件,本篇主要分析如何在 Smali文件中输出日志,帮助我们理解App 业务处理逻辑。

1.我们先写这样一个简单的demo

a42e6e7dc3da?nomobile

smaliLogDemoApp.gif

App 登陆界面,对用户名和密码做简单的逻辑验证,同时有一个FloatingActionBar,点击之后显示Snackbar。

我们现在要做的,在登陆验证的方法里,添加日志输出,分别输出登陆成功,登陆失败。在FloatingActionBar 的响应事件中,添加日志输出。

2.反编译SmaliLogDemo

demo 比较简单,我这里直接给出反编译之后的 Smali 文件。

.class public Lcom/imesong/smalilogdemo/MainActivity;

.super Landroid/support/v7/app/AppCompatActivity;

.source "MainActivity.java"

# instance fields

.field private login:Landroid/widget/Button;

.field private nameEdit:Landroid/support/v7/widget/AppCompatEditText;

.field private passwdEdit:Landroid/support/v7/widget/AppCompatEditText;

# direct methods

.method public constructor ()V

.locals 0

.prologue

.line 16

invoke-direct {p0}, Landroid/support/v7/app/AppCompatActivity;->()V

return-void

.end method

.method static synthetic access$000(Lcom/imesong/smalilogdemo/MainActivity;)Landroid/support/v7/widget/AppCompatEditText;

.locals 1

.param p0, "x0" # Lcom/imesong/smalilogdemo/MainActivity;

.prologue

.line 16

iget-object v0, p0, Lcom/imesong/smalilogdemo/MainActivity;->nameEdit:Landroid/support/v7/widget/AppCompatEditText;

return-object v0

.end method

.method static synthetic access$100(Lcom/imesong/smalilogdemo/MainActivity;)Landroid/support/v7/widget/AppCompatEditText;

.locals 1

.param p0, "x0" # Lcom/imesong/smalilogdemo/MainActivity;

.prologue

.line 16

iget-object v0, p0, Lcom/imesong/smalilogdemo/MainActivity;->passwdEdit:Landroid/support/v7/widget/AppCompatEditText;

return-object v0

.end method

.method static synthetic access$200(Lcom/imesong/smalilogdemo/MainActivity;Ljava/lang/String;Ljava/lang/String;)Z

.locals 1

.param p0, "x0" # Lcom/imesong/smalilogdemo/MainActivity;

.param p1, "x1" # Ljava/lang/String;

.param p2, "x2" # Ljava/lang/String;

.prologue

.line 16

invoke-direct {p0, p1, p2}, Lcom/imesong/smalilogdemo/MainActivity;->isLogingInfoValid(Ljava/lang/String;Ljava/lang/String;)Z

move-result v0

return v0

.end method

.method private isLogingInfoValid(Ljava/lang/String;Ljava/lang/String;)Z

.locals 4

.param p1, "name" # Ljava/lang/String;

.param p2, "passwd" # Ljava/lang/String;

.prologue

const/4 v3, 0x0

.line 59

const/4 v0, 0x0

.line 60

.local v0, "isValid":Z

invoke-static {p1}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z

move-result v1

if-nez v1, :cond_0

invoke-static {p2}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z

move-result v1

if-eqz v1, :cond_1

.line 61

:cond_0

const/4 v0, 0x0

.line 62

const-string v1, "\u7528\u6237\u540d\u3001\u5bc6\u7801\u4e0d\u80fd\u4e3a\u7a7a"

invoke-static {p0, v1, v3}, Landroid/widget/Toast;->makeText(Landroid/content/Context;Ljava/lang/CharSequence;I)Landroid/widget/Toast;

move-result-object v1

invoke-virtual {v1}, Landroid/widget/Toast;->sh

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值