首页
社区
课程
招聘
[原创]apk文件添加AlertDialog对话框
发表于: 2012-6-26 17:56 23221

[原创]apk文件添加AlertDialog对话框

2012-6-26 17:56
23221

今天研究了一下apk文件添加AlertDialog对话框,搞了一天终于搞定了,发个破文分享一下
使用到的工具:ApktoolGui v2.0 Final(http://bbs.pediy.com/showthread.php?t=148006有下载)
添加对话框的软件:合金弹头v1.8

首先添加一个最简单的应用,就是弹出一个消息框,在android中可以这样实现

new AlertDialog.Builder(self)
.setTitle("普通对话框")
.setMessage("你好,Android!")
.show();
转化成smali如下图:

具体语法解释见http://bbs.pediy.com/showthread.php?t=151769中我的回帖。
将合金弹头反编译,将上述smali代码插入MainActivity.smali中的create函数的return-void语句前面,重新编译成apk文件,安装运行

运行成功,O了。

再来点复杂点的吧
下面我们来添加一个带一个确定按钮的对话框,android代码为
new AlertDialog.Builder(this)
           .setTitle("普通对话框")
           .setMessage("你好,Android!")
           .setPositiveButton("确定",
                         new DialogInterface.OnClickListener(){
                                 public void onClick(DialogInterface dialoginterface, int i){
                                     //按钮事件
                                  }
                          })
          .show();
转换成smali语言如下:

我们看到代码中多了以下几条语句

    .line 33
    const-string v2, "\u786e\u5b9a"

    new-instance v3, Lcom/kinglau/mslug/MainActivity$5;

    invoke-direct {v3, p0}, Lcom/kinglau/mslug/MainActivity$5;-><init>(Lcom/kinglau/mslug/MainActivity;)V

    invoke-virtual {v1, v2, v3}, Landroid/app/AlertDialog$Builder;->setPositiveButton(Ljava/lang/CharSequence;Landroid/content/DialogInterface$OnClickListener;)Landroid/app/AlertDialog$Builder;

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

上传的附件:
收藏
免费 6
支持
分享
最新回复 (9)
雪    币: 317
活跃值: (72)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
2
不错,赞一个。可以用来弹出注册码.
2012-6-26 20:10
0
雪    币: 335
活跃值: (263)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
还有注意注入代码时,寄存器平衡问题
2012-6-27 12:25
0
雪    币: 1556
活跃值: (310)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
4
转smali用啥工具?
2012-8-3 11:51
0
雪    币: 118
活跃值: (106)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
5
apktool
2012-8-3 12:34
0
雪    币: 307
活跃值: (65)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
6
这个寄存器平衡该怎么注意啊。。貌似看多smali代码里面 只有 用寄存器,没有 看到平衡。
2012-8-22 16:33
0
雪    币: 218
活跃值: (25)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
7
这个值得研究下。
软件重启验证不知如何解决?
2012-9-1 10:02
0
雪    币: 4
活跃值: (781)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
额 怎么将安卓代码转化成Smali代码..
2013-12-14 10:44
0
雪    币: 4
活跃值: (781)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9






唉 虽然修改成功了
但是我现在还不明白怎么将Android代码转化成Samli代码
还有有些程序没有MainActivity怎么办..
太菜了..
上传的附件:
2013-12-14 12:36
0
雪    币: 236
活跃值: (60)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
直接用apktool。
2014-11-7 11:09
0
游客
登录 | 注册 方可回帖
返回
//