var _gaq = _gaq || []; _gaq.push(['_setAccount', 'UA-333696-1']); _gaq.push(['_trackPageview']); _gaq.push(['_trackPageLoadTime']); (function() { var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); })();
  • 2011年12月20日

    Java反编译工具

    分类:

    几乎所有的Java反编译工具都基于引擎JAD(JAva_Decompiler),jad是一个命令行工具它可以从class文件中提取java源码,官网自2009年2月就无法访问了,目前存在的是其镜像站点

    目前免费最有名的是Java Decompiler,它有三部分:JD-Core, JD-GUI,JD-Eclipse。

    最有名的商用工具则是DJ Java Decompiler,它可以将编译过的CLASS文件编译还原成为Java原始文件并且不需要额外安装JVM(Java虚拟机)或是Java SDK的工具模组即可使用。不单如此,它也兼具有Java程序编辑工具的角色,提供一些辅助功能便于程序撰写与修改。

  • 2011年12月17日

    weinre

    分类:

    weinreWEb INspector REmote的简写,它允许你来调试移动设备上的网页,是PhoneGap项目的一部分。它重用了WebKit里的Web Inspect用户接口代码。Weinre的调试功能是使用JavaScript编写,而且必须包含在调试目标的代码中;Weinre需要一个服务器来连接到调试目标,并且将消息转发给调试器GUI。其它详见Web移动应用调试工具——Weinre每周分享之-Web Inspector RemoteWeb应用调试:现在是WeinreJSConsole,最终会是WebKit的远程调试协议

  • 2011年12月15日

    代码静态分析工具

    分类:

    FindBugs 是一个Java静态分析工具,它检查类或者 JAR 文件,将字节码与一组缺陷模式进行对比以发现可能的问题。常用的是eclipse插件,安装详见插件安装,使用见FindBugs分析代码漏洞

     

    PC-lint for C/C++Gimpel软件于1985年开发的C/C++代码静态分析工具,它能有效地发现程序语法错误、潜在的错误隐患、不合理的编程习惯等。

  • 2011年12月10日

    华为 Android 工程模式

    分类:

    拨号盘输入“*#*#2846579#*#*”,这个起作用是由于ProjectMenuAct.apk,如果系统应用程序中不存在这个则拨这个号无法进入工程模式。

    进入后有ProjectMenuAct->后台设置->LOG设置,选择开启,日志级别为Verbose则可在logcat中输出系统日志。

  • 2011年12月10日

    adb push 和 adb install 的区别

    分类:

    ..platform\system\core\adb\commandline.c中adb push的实现
    if(!strcmp(argv[0], "push")) {
    if(argc != 3) return usage();
    return do_sync_push(argv[1], argv[2], 0 /* no verify APK */);
    }

    同样的文件中的函数install_app也实现了adb install实现:
    安装apk调用do_sync_push(apk_file, apk_dest, 1 /* verify APK */)时需要验证,验证文件在有SD卡时位于"/sdcard/tmp/"目录下、无SD卡时位于"/data/local/tmp/"下 ,如果上面的安装文件成功push到了手机上,这个函数则会把验证文件push到临时文件夹中进行验证,在用手机里的pm程序安装应用程序包(即pm_command(transport, serial, argc, argv)),验证成功后再删除;如果安装文件未能成功push到手机,则删除该失败文件。

    总之,“adb push”仅拷贝apk到手机上(push到/system/app下重启会注册应用程序),而“adb install”不仅拷贝apk到手机上而且安装应用程序包到系统中。