http://blog.csdn.net/Zengyangtech/archive/2010/08/12/5807517.aspx我原来研究过的一个东西

解决方案 »

  1.   

    先对代码有个总体认识;再根据类,函数,变量的命名规则猜测功能;然后能debug的代码最好debug跟踪验证自己的分析是否正确。
      

  2.   

    关于怎么全局的看代码找测试用例的我的一点方法!
    静下心来,喝口茶,仔细想了想怎么找个方法才能好好的看完2万多行代码并且抽离出一些功能点,写成测试式样!
    我目前找到一个比较容易可行的方法,想和大家一起商量讨论一下:
    1.首先找到package中的string.xml,一般都会放在/res/values/strings.xml这个位置;这个文件一般存放的都是这个package中所有可以显示的文言部分,而且里面也根据各个功能点分了很多“大项目”,“中项目”,“小项目”这些类
    2.根据每个文言,查找哪个功能点会使用
    3.根据会使用这个文言的功能点在模拟器/实机查找对应手顺;
    4.文言包括了很多异常显示,可以当作异常系来处理以上方法可以作为联系几万行代码,几十个文件的切入点;因为从逻辑上分析可以知道,只有完成了某个手顺,或者实现某个功能的时候,才会显示那个文言,我们可以通过这个显示的文言反向的推出执行了哪个功能,或者是产生了哪个异常;而且根据这些文言也可以找到相关的和别的模块的接口,因为有可能是别的模块调用本模块的这个文言进行了显示!在测试式样上,就可以摘取相关string.xml文件中相关文言的注释(已经分类的很详细),我们要做的就是进行反向分析执行了什么手顺,才会显示出这个文言,或者这个文言在什么情况下才会显示(显示的场景)!不知道这种方法可行否,要是可行,那就可以很大的加快写式样的效率!
      

  3.   

    反编译出不来源码的,只能看到一些xml的定义,不过通过xml也可以知道一些UI的大致布局,功能也能推测出一部分。如果有preferences的话也能推断出一部分功能。
      

  4.   

    纯java build出来的apk肯定可以反编译出源码