background image

.line 19    

20

    const-string v0, "http://frankiewei.net/apk/demos/main/index.html#home"        .line 20 

21

       .local  v0,  apkUrl:Ljava/lang/String;               iget-object  v2,  p0, 

Lcom/tutor/apkinstaller/ApkInstaller;->apkWeb:Landroid/webkit/WebView;    

22

       invoke-virtual  {v2,  v0},  Landroid/webkit/WebView;->loadUrl(Ljava/lang/String;)V 

.line 21    

23

    return-void    .end method   

 
ApkInstaller.java 的源代码如下: 
 

24

package com.tutor.apkinstaller;    import android.app.Activity;    

25

import android.os.Bundle;    import android.webkit.WebSettings;    

26

import android.webkit.WebView;    public class ApkInstaller extends Activity {    

27

    private WebView apkWeb;        @Override    

28

 

 

 

 public 

void 

onCreate(Bundle 

savedInstanceState) 

super.onCreate(savedInstanceState);    

29

               setContentView(R.layout.main);                     apkWeb  = 

(WebView)findViewById(R.id.apk_web);    

30

 

 

 

 

 

 

 WebSettings 

webSettings 

apkWeb.getSettings(); 

webSettings.setJavaScriptEnabled(true);    

31

             String  apkUrl  =  "http://frankiewei.net/apk/demos/main/index.html#home"; 

apkWeb.loadUrl(apkUrl);    

32

    }    }   

通过两者的对比是不是有所感悟呢

,的确有点麻烦。所以推荐大家采用方法一来得到

java 代码,用方法二来获取 xml 文件。这样就可以获取整个工程的代码了。

但有的时候方法一可能会出错,笔者就曾经遇到过这种情况,这个时候只能用方法二

了。

此外介绍另外一种方式,这个方式得到的代码还不如方法二清晰,但是还是介绍一下

吧。

方法三:

apk—>dex->ddx

ddx 文件虽然不能看到源代码,但是可以看出类的结构。有的时候用第一种方法可能不

一定能得到源代码,这个时候就用第二种方法来补救吧

...

Dedexer 项目主页(见附件): http://dedexer.sourceforge.net/

下载地址也在这个网站上。下载后的文件为

ddx1.11.jar(目前最新版本为 1.11)