android测试本地服务调试流程

我今天调试的整个过程

1,安卓发现连不上本地的tomcat

2,使用浏览器直接尝试,发现可以连上

3,怀疑是安卓APP和浏览器访问有差异,后上网搜索不到APP,只有浏览器尝试

再不就是改IP,我应该改的都改了,还是不行

4,反思两种访问应该都是一样的,都是一种url请求的封装,一个是手动封装,一个是浏览器给你封装了

5,既然不是这个问题,那是什么问题呢 ,不知道

6,然后开始百度,百度一下,没用,没有用结果

7,然后google,有有建议新启一个线程或者开启一项服务,寻思还是新启动线程简单

8,于是着手写,但是写的过程中忘记局部变量如果在内部类对象方法中用到需要满足什么关系,同时final修饰的局部变量(引用或基本类型)是否可变,于是就网上搜了一下,都说的不甚清楚。

9,于是决定自己写Demo

10,写的时候自己又发现了一个问题,一直和预想的结果不一致,于是一直单步调试

11,用step over到每一步也看不出是什么具体原因导致的输出,好像输出是凭空出来的,

突然想到一种情况,我的eclipse现在开着两个调试项目,会不会有影响,于是立马把另一个web服务关掉

发现输出正常了点,没有定义之外的输出,但是输出顺序不对,瞬间,我就想到了多线程并发的情况,于是        用了一个join()函数等待list添加结束,然后就一起正常了。

12,然后就开始写我的android联网测试案例了。

注意点

1,android的main线程里面不能连接网络

2,有问题google,有问题自己动手

3,有问题单步调试一步步看

4,eclipse不能同时启动几个调试

5,冷静思考,查资料,大胆猜想。

以下是测试源码

package test.OO.innerClass.innerClassObject;

import java.util.ArrayList;
import java.util.List;

public class testLocalVariableInFunction {

public static void main(String [] args){

final List<String> list = new ArrayList<String>();
list.add("kitty");
System.out.println("1,"+list);
Thread t1 = new Thread(new Runnable(){
public void run(){
System.out.println("2,"+list);
list.add("raoxiang");
System.out.println("3,"+list);
list.add("yan");
System.out.println("4,"+list);

}
});
// Thread t1 = new Thread(){
// public void run(){
// System.out.println("2,"+list);
// list.add("raoxiang");
// System.out.println("3,"+list);
// list.add("yan");
// System.out.println("4,"+list);
//
// }
// };

t1.start();
System.out.println("5,************************end1");
try {
t1.join();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("6,************************end2");
System.out.println("7"+list);
}
}

t1.start();
System.out.println("5,************************end1");
try {
t1.join();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("6,************************end2");
System.out.println("7"+list);
}
}

 以下是解决问题后的网络连接部分的android代码,目的是从服务器取json转换为list返回,其中 NewsService.getLastNews()会启用网络连接,具体实现就不贴了

private List<HashMap<String,Object>> getNewes(){
final List<HashMap<String,Object>> data = new ArrayList<HashMap<String,Object>>();
Thread t1 = new Thread(){
@Override
public void run() {
try {
List<News> newes = NewsService.getLastNews();

for(News news : newes ){
HashMap<String,Object> item = new HashMap<String,Object>();
item.put("title",news.getTitle());
item.put("timelength",news.getTimelength());
data.add(item);
}
} catch (Exception e) {
e.printStackTrace();
}
}
};
t1.start();
try {
t1.join();
} catch (InterruptedException e) {
e.printStackTrace();
}
return data ;

}

时间: 2024-10-12 21:13:24

android测试本地服务调试流程的相关文章

LoadRunner+Android模所器实现抓包并调试本地服务端

步骤就是 1:新建LR脚本.协议选择Mobile Application - HTTP/HTML 2:在record里选择第三个:Record Emulator........ 3:  选择下一步后,在emulator to record选择模拟器tools目录下的emulator.exe                     command line 里输入avd虚拟机的名称:用@连接  如@test      working directory 随便选个路径就行了 4:然后运行,就会自动启

android真机调试时,访问本地服务ip设置

前提:android通过wifi连接网络a,真机处于网络b,网络a与网络b处于不同网段,可以通过增加route,互相ping通,如果网络a与网络b是在公网当中,则无需进行 如下操作. 使用android真机进行调试时,如果要访问本机的服务下的资源,配置ip需进行如下配置 1.android手机通过wifi连接网络,该网络与本机所处网络在不同网段,但是通过增加路由可以ping通,则可使用该方法继续配置,如果不能ping通,则该方法无效,无需往下进行 在本机执行如下操作,增加路由,启动命令行,执行如

Android Service学习之本地服务

Service是在一段不定的时间运行在后台,不和用户交互应用组件.每个Service必须在manifest中 通过来声明.可以通过contect.startservice和contect.bindserverice来启动. Service和其他的应用组件一样,运行在进程的主线程中.这就是说如果service需要很多耗时或者阻塞的操作,需要在其子线程中实现. service的两种模式(startService()/bindService()不是完全分离的): 本地服务 Local Service

APP本地服务安全测试

一.安全测试基本分类: 1.系统安全 系统加固 安全加固:比如linux中关闭telnet端口,修改ssh端口 检测一些不必要的服务(需要卸载一个ping)--保证系统的最小集 app安全加固:加一层外壳 补丁 消息中间件:activityMQ,rabbitMQ,safMQ(关闭页面,非业务端口,默认用户) 防火墙规则(iptables) 防病毒 2.应用安全(安装包,服务,业务)----用户(人和服务)口令.敏感信息 (1)黑白名单(IP:port)----访问控制 (2)消息层面:数据加密和

Android 输入管理服务-输入事件到达之后的处理流程

接上一篇博客"Android 输入管理服务启动过程的流程".这两天分析了Android 输入管理服务接收到输入事件之后的处理流程,详细流程例如以下面两图所看到的: 接下图

VisualStudio使用本地IIS服务调试ASP.NET MVC 网站

目标:使用本地IIS服务调试ASP.NET MVC 网站 操作系统:windows 8.1企业版 IIS:系统自带IIS6.0 VisualStudio版本:2013 SP5 MVC 版本:MVC 4.5.1 =================================================================== 概要: 1.IIS 服务安装及配置 2.Visual Studio 关联IIS服务 3.局域网内访问调试中的网站 ====================

Android -- Audio Native服务之启动流程分析(一)

Android -- Audio Native服务之启动流程分析(一) Android中的Audio系统是比较庞大.繁杂的一部分内容, 其中会涉及较多的音频编解码.多媒体制式与Android Audio HAL设备管理的知识.随着Android的发展,其所支持的音频设备也变得越来丰富,如扬声器.耳机.听筒等等:这种变化也为Android管理如此丰富的音频设备以及如何正确.合理地切换音频输出提出了更高的要求.面对如此繁杂的管理要求,我们分析Android Audio服务的历程想必也不会轻松.接下来

Android 输入管理服务启动过程的流程

接上一篇"Android窗口管理服务相关对象的创建流程",这两天分析了一下Android 输入管理服务启动过程的流程,流程图如下所示. 版权声明:本文为博主原创文章,未经博主允许不得转载.

Android Binder机制(3) 本地服务注册过程

本博客将讲解本地服务的注册过程,为了方便大家更好地理解,选择了MediaPlayer Service作为例子. 启动并注册MediaPlayer Service的代码在frameworks/base/media/mediaserver/main_mediaserver.cpp中,如下: main_mediaserver.cpp 1 2 3 4 5 6 7 8 9 10 11 12 int main(int argc, char** argv) { sp<ProcessState>proc(Pr