当前位置:  编程技术>移动开发
本页文章导读:
    ▪PC端透过adb与设备端通信        PC端通过adb与设备端通信 adb 全称Android Debug Bridge, 是android sdk里的一个工具, 用这个工具可以直接操作管理android模拟器或者真实的andriod设备(如G1手机).它的主要功能有:   运行设备的.........
    ▪ 当唯有一个APK的时候使用robotium进行自动化测试        当只有一个APK的时候使用robotium进行自动化测试 一. 准备工具 3.  搭建测试环境 01 <?xml version="1.0" encoding="utf-8"?> 02 <manifest xmlns:android="http://schemas.android.com/apk/res/android" .........
    ▪ 在MKMapView中设立区域显示所有注释       在MKMapView中设置区域显示所有注释原问题来自于CSDN问答频道,更多见:http://ask.csdn.net/questions/2005 问题描述: 有10-15个经纬度需要同时显示在地图上,怎么设置区域这样可以在地图中看到所.........

[1]PC端透过adb与设备端通信
    来源: 互联网  发布时间: 2014-02-18
PC端通过adb与设备端通信

adb 全称Android Debug Bridge, 是android sdk里的一个工具, 用这个工具可以直接操作管理android模拟器或者真实的andriod设备(如G1手机).

它的主要功能有:

 

  • 运行设备的shell(命令行)
  • 管理模拟器或设备的端口映射
  • 计算机和设备之间上传/下载文件
  • 将本地apk软件安装至模拟器或android设备
    adb是一个 客户端-服务器端 程序, 其中客户端是你用来操作的电脑, 服务器端是android设备.

 

一 adb Client 及 adb Server

 

上图开启了两个adb client,一个adb server。

 

当开启第一个adb client 时,检测到adb server没有开启,于是开启adb server(只用一个),接着开启第二个adb  client。 

 

二 PC端 通过adb 与设备端进行通信

 

 


    
[2] 当唯有一个APK的时候使用robotium进行自动化测试
    来源: 互联网  发布时间: 2014-02-18
当只有一个APK的时候使用robotium进行自动化测试
一. 准备工具

1. 准备重签名工具:http://www.troido.de/re-sign.jar(在mac上没办法用,只能在windows上用)

2. 下载robotium.jar http://code.google.com/p/robotium/downloads/list 

3.  搭建测试环境

二. AndroidManifest.xml

01 <?xml version="1.0" encoding="utf-8"?>
02 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
03     package="com.taobao.taobao.test"
04     android:versionCode="1"
05     android:versionName="1.0" >
06  
07     <uses-sdk android:minSdkVersion="8" />
08  
09     <instrumentation
10         android:name="android.test.InstrumentationTestRunner"
11         android:targetPackage="com.taobao.taobao" />
12  
13     <application
14         android:icon="@drawable/ic_launcher"
15         android:label="@string/app_name" >
16         <uses-library android:name="android.test.runner" />
17     </application>
18  
19 </manifest>

 

三. TestGarblePackage.java

01 package com.taobao.taobao.test;
02  
03 import android.test.ActivityInstrumentationTestCase2;
04  
05 import com.jayway.android.robotium.solo.Solo;
06  
07 /**
08  * 测试混淆包
09  *
10  * @author bixiaopeng 2013-4-8 下午1:26:15
11  */
12 @SuppressWarnings("rawtypes")
13 public class TestGarblePackage extends ActivityInstrumentationTestCase2 {
14  
15     private Solo            solo;
16     private static Class<?> launchActivityClass;
17     private static String   mainActivity = "com.taobao.tao.MainActivity2"; // 启动的类名
18     static {
19         try {
20             launchActivityClass = Class.forName(mainActivity);// 通过反射来获取activity
21         } catch (ClassNotFoundException e) {
22             throw new RuntimeException(e);
23         }
24  
25     }
26  
27     @SuppressWarnings("unchecked")
28     public TestGarblePackage(){
29         super(launchActivityClass);
30     }
31  
32     @Override
33     protected void setUp() throws Exception {
34         solo = new Solo(getInstrumentation(), getActivity());
35     }
36  
37     @Override
38     protected void tearDown() throws Exception {
39         solo.finishOpenedActivities();
40     }
41  
42     public void testUpdate() throws Exception {
43         solo.clickOnMenuItem("检测更新");
44         // robotium好像没有直接提供获取toast的方法,所以只用个笨方法
45         int i = 0;
46         boolean toast = false;
47         while (i < 40) {
48             Thread.sleep(300);
49             toast = solo.searchText("您使用的版本已是最新的了哦");
50             if (toast) {
51                 break;
52             }
53             i++;
54         }
55         assertEquals(toast, true);
56     }
57 }

    
[3] 在MKMapView中设立区域显示所有注释
    来源: 互联网  发布时间: 2014-02-18
在MKMapView中设置区域显示所有注释

原问题来自于CSDN问答频道,更多见:http://ask.csdn.net/questions/2005

问题描述:

有10-15个经纬度需要同时显示在地图上,怎么设置区域这样可以在地图中看到所有的注释?

create class as below. create two class: ViewController is class of UIViewController and MapViewAnnotation is class of NSObject. I have created that two class as  below. bind mapview in XIB of ViewController and set delegate.

#import <UIKit/UIKit.h>
#import <MapKit/MapKit.h>
#import "MapViewAnnotation.h"

@interface ViewController : UIViewController<MKMapViewDelegate>{
    IBOutlet  MKMapView* mapView;
     NSMutableArray *arrayLocation;
}
@end
#import "ViewController.h"
@implementation ViewController
- (void)viewDidLoad
{
    [super viewDidLoad];

    arrayLocation = [[NSMutableArray alloc]init];
    NSMutableArray *arrAnnotations  = [[NSMutableArray alloc]init];
    NSMutableDictionary *dict = [[NSMutableDictionary alloc]init];
    [dict setValue:@"32.774125" forKey:@"latitude"];
    [dict setValue:@"-117.240658" forKey:@"longitude"];
    [dict setValue:@"Bars & Restaurants 1" forKey:@"title"];
    [arrayLocation addObject:dict];
    dict = nil;

    dict = [[NSMutableDictionary alloc]init];
    [dict setValue:@"32.784526" forKey:@"latitude"];
    [dict setValue:@"-117.240985" forKey:@"longitude"];
    [dict setValue:@"Bars & Restaurants 2" forKey:@"title"];
    [arrayLocation addObject:dict];
    dict = nil;

    dict = [[NSMutableDictionary alloc]init];
    [dict setValue:@"32.773477" forKey:@"latitude"];
    [dict setValue:@"-117.241144" forKey:@"longitude"];
    [dict setValue:@"Bars & Restaurants 3" forKey:@"title"];
    [arrayLocation addObject:dict];
    dict = nil;

    dict = [[NSMutableDictionary alloc]init];
    [dict setValue:@"32.775301" forKey:@"latitude"];
    [dict setValue:@"-117.238893" forKey:@"longitude"];
    [dict setValue:@"Bars & Restaurants 4" forKey:@"title"];
    [arrayLocation addObject:dict];
    dict = nil;

    for(int i=0;i<[arrayLocation count];i++)
    {
        CLLocationCoordinate2D location;
        location.latitude = [[[arrayLocation objectAtIndex:i] objectForKey:@"latitude"] doubleValue];
        location.longitude = [[[arrayLocation objectAtIndex:i] objectForKey:@"longitude"] doubleValue];

        MapViewAnnotation *newAnnotation = [[MapViewAnnotation alloc] initWithTitle:[[arrayLocation objectAtIndex:i] objectForKey:@"title"] Coordinate:location andIndex:i];
        [arrAnnotations addObject:newAnnotation]; 
    }
    [mapView addAnnotations:arrAnnotations];
    mapView.region = [MapViewAnnotation regionForAnnotations:arrAnnotations];
}
- (MKAnnotationView *)mapView:(MKMapView *)map viewForAnnotation:(id <MKAnnotation>)annotation 
{
    if (annotation == mapView.userLocation)
    {
        return nil;
    }
    MKPinAnnotationView *pin = (MKPinAnnotationView *) [mapView dequeueReusableAnnotationViewWithIdentifier: @"restMap"];
    if (pin == nil) 
    {
        pin = [[MKPinAnnotationView alloc] initWithAnnotation: annotation reuseIdentifier: @"restMap"];
    }
    else 
    {
        pin.annotation = annotation;
    }
    pin.pinColor = MKPinAnnotationColorRed;
    pin.animatesDrop = NO;
    pin.canShowCallout=TRUE;
    UIButton *btn=[UIButton buttonWithType:UIButtonTypeDetailDisclosure];
    MapViewAnnotation *temp = (MapViewAnnotation *)pin.annotation;
    btn.tag=temp.index;
    pin.rightCalloutAccessoryView=btn;
    [btn addTarget:self action:@selector(openDetail:) forControlEvents:UIControlEventTouchUpInside];

    return pin;
}
@end
Implementation of MapViewAnnotation class

#import <MapKit/MapKit.h>

@interface MapViewAnnotation : NSObject <MKAnnotation , MKMapViewDelegate>{
    NSString *title;
    int index;
    CLLocationCoordinate2D coordinate;

}
@property (nonatomic, copy) NSString *title;
@property (nonatomic, readwrite) int index;
@property (nonatomic, readonly) CLLocationCoordinate2D coordinate;

- (id)initWithTitle:(NSString *)ttl andCoordinate:(CLLocationCoordinate2D)c2d;
- (id)initWithTitle:(NSString *)ttl Coordinate:(CLLocationCoordinate2D)c2d andIndex:(int)intIndex;

+(MKCoordinateRegion) regionForAnnotations:(NSArray*) annotations ;
@end

#import "MapViewAnnotation.h"
@implementation MapViewAnnotation
@synthesize title, coordinate,index;

- (id)initWithTitle:(NSString *)ttl andCoordinate:(CLLocationCoordinate2D)c2d {
    self = [super init];
    title = ttl;
    coordinate = c2d;
    return self;
}
- (id)initWithTitle:(NSString *)ttl Coordinate:(CLLocationCoordinate2D)c2d andIndex:(int)intIndex
{
    self = [super init];
    title = ttl;
    coordinate = c2d;
    index = intIndex;
    return self;
}

+(MKCoordinateRegion) regionForAnnotations:(NSArray*) annotations 
{
    NSAssert(annotations!=nil, @"annotations was nil");
    NSAssert([annotations count]!=0, @"annotations was empty");

    double minLat=360.0f, maxLat=-360.0f;
    double minLon=360.0f, maxLon=-360.0f;

    for (id<MKAnnotation> vu in annotations) {
        if ( vu.coordinate.latitude  < minLat ) minLat = vu.coordinate.latitude;
        if ( vu.coordinate.latitude  > maxLat ) maxLat = vu.coordinate.latitude;
        if ( vu.coordinate.longitude < minLon ) minLon = vu.coordinate.longitude;
        if ( vu.coordinate.longitude > maxLon ) maxLon = vu.coordinate.longitude;
    }
    CLLocationCoordinate2D center = CLLocationCoordinate2DMake((minLat+maxLat)/2.0, (minLon+maxLon)/2.0);
    MKCoordinateSpan span = MKCoordinateSpanMake(maxLat-minLat, maxLon-minLon);
    MKCoordinateRegion region = MKCoordinateRegionMake (center, span);
    return region;
}
@end


 


    
最新技术文章:
▪Android提高之手游转电视游戏的模拟操控 iis7站长之家
▪Android开发之注册登录方法示例
▪Android获取手机SIM卡运营商信息的方法
▪Android实现将已发送的短信写入短信数据库的...
▪Android发送短信功能代码
▪Android根据电话号码获得联系人头像实例代码
▪Android中GPS定位的用法实例
▪Android实现退出时关闭所有Activity的方法
▪Android实现文件的分割和组装
▪Android录音应用实例教程
▪Android双击返回键退出程序的实现方法
▪Android实现侦听电池状态显示、电量及充电动...
▪Android获取当前已连接的wifi信号强度的方法
▪Android实现动态显示或隐藏密码输入框的内容
▪根据USER-AGENT判断手机类型并跳转到相应的app...
▪Android Touch事件分发过程详解
▪Android中实现为TextView添加多个可点击的文本
▪Android程序设计之AIDL实例详解
▪Android显式启动与隐式启动Activity的区别介绍
▪Android按钮单击事件的四种常用写法总结
▪Android消息处理机制Looper和Handler详解
▪Android实现Back功能代码片段总结
▪Android实用的代码片段 常用代码总结
▪Android实现弹出键盘的方法
▪Android中通过view方式获取当前Activity的屏幕截...
▪Android提高之自定义Menu(TabMenu)实现方法
▪Android提高之多方向抽屉实现方法
▪Android提高之MediaPlayer播放网络音频的实现方法...
▪Android提高之MediaPlayer播放网络视频的实现方法...
▪Android提高之手游转电视游戏的模拟操控
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3