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月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到手机上而且安装应用程序包到系统中。

  • 2011年12月05日

    NativeDriver 简介

    分类:

    NativeDriver支持Android2.2+ SDK)和iOS平台上原生应用的自动化测试。它实现了WebDriver APIWebDriver被用作在许多平台和浏览器上测试网页应用的功能。

     

    延伸阅读:使用NativeDriver自动化测试原生移动应用TestNG + NativeDriver实现androidUI自动化测试手机UI自动化测试工具NativeDriver VS Robotium

  • 2011年12月04日

    Android 日志

    分类:

    ANR Log一般保存在/data/anr 目录下。一般在如下几种情况会产生log文件

    1. 程序异常退出 uncaused exception

    2. 程序强制关闭 Force Closed (简称FC)

    3. 程序无响应