`
endual
  • 浏览: 3560850 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

手把手叫你用android 调研web services

 
阅读更多

Step by Step Method to Access Webservice from Android

By Mihira Prasanna | 24 Sep 2010
How to access webservice from Android mobile application
  4.14 (6 votes )
Sponsored Links

System Requirements

The sections below describe the system and software requirements for developing Android applications using the Android SDK.

Supported Operating Systems

  • Windows XP (32-bit) or Vista (32- or 64-bit)
  • Mac OS X 10.5.8 or later (x86 only)
  • Linux (tested on Linux Ubuntu Hardy Heron)

Supported Development Environments

Eclipse IDE

  • Eclipse 3.4 (Ganymede) or 3.5 (Galileo)

Caution: There are known issues with the ADT plugin running with Eclipse 3.6. Please stay on 3.5 until further notice.

  • Eclipse JDT plugin (included in most Eclipse IDE packages)
  • If you need to install or update Eclipse, you can download it from http://www.eclipse.org/downloads/ .

    Several types of Eclipse packages are available for each platform. For developing Android applications, we recommend that you install one of these packages:

  • Eclipse IDE for Java EE Developers
  • Eclipse IDE for Java Developers
  • Eclipse for RCP/Plug-in Developers
  • Eclipse Classic (versions 3.5.1 and higher)
  • JDK 5 or JDK 6 (JRE alone is not sufficient)
  • Android Development Tools plugin (optional)
  • Not compatible with Gnu Compiler for Java (gcj)

Hardware Requirements

The Android SDK requires disk storage for all of the components that you choose to install. The table below provides a rough idea of the disk-space requirements to expect, based on the components that you plan to use.

Component type

Approximate size

Comments

SDK Tools

50 MB

Required.

Android platform (each)

150 MB

At least one platform is required.

SDK Add-on (each)

100 MB

Optional.

USB Driver for Windows

10 MB

Optional. For Windows only.

Samples (per platform)

10M

Optional.

Offline documentation

250 MB

Optional.

Note that the disk-space requirements above are in addition to those of the Eclipse IDE, JDK, or other prerequisite tools that you may need to install on your development computer.

Installing the ADT Plugin for Eclipse

  1. Start Eclipse, then select Help > Install New Software .
  2. In the Available Software dialog, click Add... .
  3. In the Add Site dialog that appears, enter a name for the remote site (for example, "Android Plugin") in the "Name" field.

In the "Location" field, enter this URL:

https://dl-ssl.google.com/android /eclipse/

Note : If you have trouble acquiring the plugin, you can try using "http" in the URL, instead of "https" (https is preferred for security reasons).

Click OK .

  1. Back in the Available Software view, you should now see "Developer Tools" added to the list. Select the checkbox next to Developer Tools, which will automatically select the nested tools Android DDMS and Android Development Tools. Click Next .
  2. In the resulting Install Details dialog, the Android DDMS and Android Development Tools features are listed. Click Next to read and accept the license agreement and install any dependencies, then click Finish .
  3. Restart Eclipse.

Configuring the ADT Plugin

Once you've successfully downloaded ADT as described above, the next step is to modify your ADT preferences in Eclipse to point to the Android SDK directory:

  1. Select Window > Preferences... to open the Preferences panel (Mac OS X: Eclipse > Preferences ).
  2. Select Android from the left panel.
  3. For the SDK Location in the main panel, click Browse... and locate your downloaded SDK directory.

Click Apply , then OK .

Creating an Android Project

The ADT plugin provides a New Project Wizard that you can use to quickly create a new Android project (or a project from existing code). To create a new project:

  1. Select File > New > Project .
  2. Select Android > Android Project , and click Next .
  3. Select the contents for the project:
    • Enter 'Android WSAccess '. This will be the name of the folder where your project is created.
    • Under Contents, select Create new project in workspace . Select your project workspace location.
    • Under Target, select an Android target to be used as the project's Build Target. The Build Target specifies which Android platform you'd like your application built against.

      Unless you know that you'll be using new APIs introduced in the latest SDK, you should select a target with the lowest platform version possible.

      Note: You can change your the Build Target for your project at any time: Right-click the project in the Package Explorer, select Properties , select Android and then check the desired Project Target.

    • Under Properties, fill in all necessary fields.
      • Enter an Application name as ' Android WSAccess' . This is the human-readable title for your application — the name that will appear on the Android device.
      • Enter a Package name as 'com.test.android '. This is the package namespace (following the same rules as for packages in the Java programming language) where all your source code will reside.
      • Select Create Activity (optional, of course, but common) and enter a name (give 'FirstAppUI ') for your main Activity class.
      • Enter a Min SDK Version . This is an integer that indicates the minimum API Level required to properly run your application. Entering this here automatically sets the minSdkVersion attribute in the <uses-sdk> of your Android Manifest file. If you're unsure of the appropriate API Level to use, copy the API Level listed for the Build Target you selected in the Target tab.
  4. Click Finish .

Tip: You can also start the New Project Wizard from the New icon in the toolbar.

Once you complete the New Project Wizard, ADT creates the following folders and files in your new project:

src/
Includes your stub Activity Java file. All other Java files for your application go here.
<Android Version> / (e.g., Android 2.2/ )

Includes the android .jar file that your application will build against. This is determined by the build target that you have chosen in the New Project Wizard.

gen/

This contains the Java files generated by ADT, such as your R.java file and interfaces created from AIDL files.

assets/
This is empty. You can use it to store raw asset files.
res/
A folder for your application resources, such as drawable files, layout files, string values, etc.
Android Manifest.xml
The Android Manifest for your project.
default.properties
This file contains project settings, such as the build target. This file is integral to the project, as such, it should be maintained in a Source Revision Control system. It should never be edited manually — to edit project properties, right-click the project folder and select "Properties".

Creating an AVD

An Android Virtual Device (AVD) is a device configuration for the emulator that allows you to model real world devices. In order to run an instance of the emulator, you must create an AVD.

To create an AVD from Eclipse:

  1. Select Window > Android SDK and AVD Manager , or click the Android SDK and AVD Manager icon in the Eclipse toolbar.
  2. In the Virtual Devices panel, you'll see a list of existing AVDs. Click New to create a new AVD.
  3. Fill in the details for the AVD.

    Give it a name, a platform target, an SD card size, and a skin (HVGA is default).

    Note: Be sure to define a target for your AVD that satisfies your application's Build Target (the AVD platform target must have an API Level equal to or greater than the API Level that your application compiles against).

  4. Click Create AVD .

Your AVD is now ready and you can either close the SDK and AVD Manager, create more AVDs, or launch an emulator with the AVD by selecting a device and clicking Start .

Code your FirstAppUI.java class like below:

package
 com.test.android
;

import
 org.ksoap2.SoapEnvelope;
import
 org.ksoap2.serialization.SoapObject;
import
 org.ksoap2.serialization.SoapSerializationEnvelope;
import
 org.ksoap2.transport.HttpTransportSE;

import
 android
.app.Activity;
import
 android
.os.Bundle;
import
 android
.widget.ArrayAdapter;
import
 android
.widget.AutoCompleteTextView;

public
 class
 FirstAppUI extends
 Activity {

	
	private
 static
 final
 String NAMESPACE = "
com.service.ServiceImpl"
;
	private
 static
 final
 String URL = 
		"
http://192.168.202.124:9000/Android
WS/wsdl/ServiceImpl.wsdl"
;	
	private
 static
 final
 String SOAP_ACTION = "
ServiceImpl"
;
	private
 static
 final
 String METHOD_NAME = "
message"
;
	
	private
 static
 final
 String[] sampleACTV = new
 String[] {
	"
android
"
, "
iphone"
, "
blackberry"

	};

	@Override
	public
 void
 onCreate(Bundle savedInstanceState) {
		super
.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		ArrayAdapter<String> arrAdapter = new
 ArrayAdapter<String>
		(this
, android
.R.layout.simple_dropdown_item_1line, sampleACTV);

		AutoCompleteTextView ACTV = (AutoCompleteTextView)findViewById
						(R.id.AutoCompleteTextView01);
		ACTV.setAdapter(arrAdapter);

		SoapObject request = new
 SoapObject(NAMESPACE, METHOD_NAME); 		
		SoapSerializationEnvelope envelope = 
			new
 SoapSerializationEnvelope(SoapEnvelope.VER11); 

		envelope.setOutputSoapObject(request);
		HttpTransportSE android
HttpTransport = new
 HttpTransportSE(URL);

		try
 {
			android
HttpTransport.call(SOAP_ACTION, envelope);
			SoapObject resultsRequestSOAP = (SoapObject) envelope.bodyIn;
			ACTV.setHint("
Received :"
 + resultsRequestSOAP.toString());
		} catch
 (Exception e) {
			e.printStackTrace();
		}
	}
}  

Insert AutoCompleteTextView to your res>layout >main.xml as:

<?
xml
 version
="
1.0"
 encoding
="
utf-8"
?
>
  
<
LinearLayout
 android
:id
="
@+id/LinearLayout01"

     android
:layout_width
="
fill_parent"
     
     android
:layout_height
="
fill_parent"
     
     xmlns:android

="
http://schemas.android
.com/apk/res/android
"
>
  

     <
AutoCompleteTextView
     
         android
:id
="
@+id/AutoCompleteTextView01"
         
         android
:layout_width
="
wrap_content"
         
         android
:layout_height
="
wrap_content"
         
         android
:hint
="
This is Hint"
         
         android
:width
="
240px"
 /
>
  

 <
/
LinearLayout
>

Insert Internet access permission to your mobile application in Android Manifest.xml file as:

<?
xml
 version
="
1.0"
 encoding
="
utf-8"
?
>

<
manifest
 xmlns:android

="
http://schemas.android
.com/apk/res/android
"

      package
="
com.test.android
"

      android
:versionCode
="
1"

      android
:versionName
="
1.0"
>

    <
application
 android
:icon
="
@drawable/icon"
 android
:label
="
@string/app_name"
>

        <
activity
 android
:name
="
.FirstAppUI"

                  android
:label
="
@string/app_name"
>

            <
intent-filter
>

                <
action
 android
:name
="
android
.intent.action.MAIN"
 /
>

                <
category
 android
:name
="
android
.intent.category.LAUNCHER"
 /
>

            <
/
intent-filter
>

        <
/
activity
>

    <
/
application
>

    <
uses-permission
 android
:name
="
android
.permission.INTERNET"
>
<
/
uses-permission
>

    <
uses-sdk
 android
:minSdkVersion
="
8"
 /
>


<
/
manifest
>
 

ServiceImpl.wsdl :

<?
xml
 version
="
1.0"
 encoding
="
UTF-8"
?
>

<
wsdl:definitions
 targetNamespace
=http://service.com
 
	xmlns:apachesoap
=http://xml.apache.org/xml-soap
 
	xmlns:impl
="
http://service.com"
 xmlns:intf
=http://service.com
 
	xmlns:wsdl
=http://schemas.xmlsoap.org/wsdl/
 
	xmlns:wsdlsoap
=http://schemas.xmlsoap.org/wsdl/soap/
 
	xmlns:xsd
="
http://www.w3.org/2001/XMLSchema"
>

<!--
WSDL created by Apache Axis version: 1.4
Built on Apr 22, 2006 (06:55:48 PDT)
-->

 <
wsdl:types
>

  <
schema
 elementFormDefault
="
qualified"
 
      targetNamespace
="
http://service.com"
 xmlns
="
http://www.w3.org/2001/XMLSchema"
>

   <
element
 name
="
message"
>

    <
complexType
/
>

   <
/
element
>

   <
element
 name
="
messageResponse"
>

    <
complexType
>

     <
sequence
>

      <
element
 name
="
messageReturn"
 type
="
xsd:string"
/
>

     <
/
sequence
>

    <
/
complexType
>

   <
/
element
>

  <
/
schema
>

 <
/
wsdl:types
>


   <
wsdl:message
 name
="
messageResponse"
>

      <
wsdl:part
 element
="
impl:messageResponse"
 name
="
parameters"
>

      <
/
wsdl:part
>

   <
/
wsdl:message
>

   <
wsdl:message
 name
="
messageRequest"
>

      <
wsdl:part
 element
="
impl:message"
 name
="
parameters"
>

      <
/
wsdl:part
>

   <
/
wsdl:message
>

   <
wsdl:portType
 name
="
ServiceImpl"
>

      <
wsdl:operation
 name
="
message"
>

         <
wsdl:input
 message
="
impl:messageRequest"
 name
="
messageRequest"
>

       <
/
wsdl:input
>

         <
wsdl:output
 message
="
impl:messageResponse"
 name
="
messageResponse"
>

       <
/
wsdl:output
>

      <
/
wsdl:operation
>

   <
/
wsdl:portType
>

   <
wsdl:binding
 name
="
ServiceImplSoapBinding"
 type
="
impl:ServiceImpl"
>

      <
wsdlsoap:binding
 style
="
document"
 
	transport
="
http://schemas.xmlsoap.org/soap/http"
/
>

      <
wsdl:operation
 name
="
message"
>

         <
wsdlsoap:operation
 soapAction
="
"
/
>

         <
wsdl:input
 name
="
messageRequest"
>

            <
wsdlsoap:body
 use
="
literal"
/
>

         <
/
wsdl:input
>

         <
wsdl:output
 name
="
messageResponse"
>

            <
wsdlsoap:body
 use
="
literal"
/
>

         <
/
wsdl:output
>

      <
/
wsdl:operation
>

   <
/
wsdl:binding
>

   <
wsdl:service
 name
="
ServiceImplService"
>

      <
wsdl:port
 binding
="
impl:ServiceImplSoapBinding"
 name
="
ServiceImpl"
>

         <
wsdlsoap:address
 location
=
		"
http://localhost:9000/Android
WS/services
/ServiceImpl"
/
>

      <
/
wsdl:port
>

   <
/
wsdl:service
>

<
/
wsdl:definitions
>

Thanks!

History

  • 24th September, 2010: Initial post

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

About the Author

Mihira Prasanna

Software Developer
Synapsys Ltd, DFCC Bank, Sri Lanka
Sri Lanka Sri Lanka

Member
Researching innovation of software technology.

Sign Up to vote for this article

Comments and Discussions

 

You must Sign In to use this message board. (secure sign-in )
FAQ  FAQ    
Profile popups     Noise level   Layout   Per page    
  Refresh First Prev Next
Question jar file location Pin member anjalikulkarni 3:44 24 Aug '11  
General send image captured from camera Pin member sharan kumar 1:18 14 Jun '11  
General WSTL location Pin member Member 7887539 2:27 5 May '11  
General Re: WSTL location Pin member luiz.srodrigues 1:05 27 Jul '11  
General Connect to SQL SERVER DB Pin member Adawi 2:55 5 Apr '11  
General Re: Connect to SQL SERVER DB Pin member Mihira Prasanna 23:57 28 Apr '11  
General Re: Connect to SQL SERVER DB Pin member Mihira Prasanna 0:26 29 Apr '11  
General Re: Connect to SQL SERVER DB Pin member Mihira Prasanna 1:41 27 Jul '11  
Question thx a lot man, you were the only one who helped me with this. However PLZ i need your help in serialization of complex type for ksoap2 Pin member chadic 9:25 16 Mar '11  
General nice article for those who already familiar with the SOAP, please expand with more details of how to test it on localhost Pin member dragondad 5:58 10 Mar '11  

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

Permalink | Advertise | Privacy | Mobile
| Web03 | 2.3.110824.1
Article Copyright 2010 by Mihira Prasanna
Everything else Copyright © CodeProject , 1999-2011
Terms of Use
Layout: fixed | fluid
分享到:
评论

相关推荐

    手把手教你做Android手机遥控车.zip

    在本项目"手把手教你做Android手机遥控车.zip"中,我们将探讨如何利用Android设备作为遥控器来控制一辆玩具车。这个项目集成了移动技术、蓝牙通信和硬件接口设计,让我们一起深入了解一下其中的关键知识点。 1. **...

    手把手教你学DSP:基于TMS320F28335

    手把手教你学DSP:基于TMS320F28335 手把手教你学DSP:基于TMS320F28335 手把手教你学DSP:基于TMS320F28335 手把手教你学DSP:基于TMS320F28335 手把手教你学DSP:基于TMS320F28335 手把手教你学DSP:基于TMS320F...

    android手把手教你开发launcher(AndroidStudio版)

    在上述教程中,使用的最小SDK版本为7,这意味着应用至少支持Android 2.1(API level 7)及以上版本。然而,随着Android系统的不断更新和升级,开发者应该注意新版本Android带来的新特性和API变化,适时地更新和适配...

    手把手教你用Android开发新浪微博客户端.pdf

    手把手教你用Android开发新浪微博客户端.学习android的好材料,帮了我不少忙,现在拿出来同大家分享

    手把手教你用Android开发新浪微博客户端》

    在《手把手教你用Android开发新浪微博客户端》这本书中,作者会逐步引导读者完成以上所有步骤,包括设置项目、获取API权限、设计UI、实现网络请求以及处理数据。书中的实例代码和详细解释将帮助初学者快速掌握...

    手把手教你学dsp2812,手把手教你学dsp2812pdf下载,C,C++

    《手把手教你学DSP2812》是一本专为初学者设计的 DSP(Digital Signal Processor)学习指南,主要围绕TI公司的TMS320F2812 DSP芯片进行讲解。这本书以其全面且易懂的特性,为读者提供了一个深入理解数字信号处理及其...

    手把手教你学28335

    手把手教你学28335PDF文档,看了这个确实和2812有了对比

    手把手教你学Android4.1教学视频

    资源名称:手把手教你学Android 4.1教学视频资源目录:【】Activity间数据传递【】Activity(上)【】Android4.0设计规范pdf【】Android基础界面控件(上)【】Android基础界面控件(下)【】Android程序分析【】...

    手把手教你学DSPPDF

    【标题】"手把手教你学DSPPDF"是一份针对数字信号处理(DSP)初学者的教程性PDF文档,旨在引领读者逐步掌握这一领域的基础知识。该文档可能包含了从理论概念到实际应用的全面讲解,适合那些希望踏入数字信号处理世界...

    手把手教你android编译

    ### 手把手教你Android编译 #### 一、Android编译概述 Android作为一个开源的操作系统,支持多种架构的编译,包括32位和64位。本文将详细介绍如何在32位和64位环境下进行Android源码的编译。 #### 二、32位系统...

    手把手教你dsp28335,高清pdf

    手把手教你学DSP28335高清pdf文件,北京航空航天大学出版社

    手把手教你学DSP28335

    手把手教你学DSP28335,PDF格式,有助于随时随地可以学习知识。

    手把手教你用C#制作RPG游戏

    《手把手教你用C#制作RPG游戏》是由罗培羽编著,海洋出版社于2014年5月出版的一本技术书籍,主要面向对游戏开发有兴趣,特别是想使用C#语言进行角色扮演游戏(RPG)开发的读者。本书通过详细的教学指导,帮助初学者...

    手把手的教你成为Android高手(视频+源码+文档)

    Android的绿机器人形象深入人心,其开发应用吸引着各类厂商与程序员的眼球,学习了4年的Android,当然也积累了不少的资料,现在整理出来提供给大家,Android众多的实战源码、学习视频与开发技巧,希望能为大家了解、...

    手把手教你学dsp

    手把手教你学dsp F2812 顾伟刚

    《手把手教你学51单片机》教材pdf

    《手把手教你学51单片机》是一本专为初学者设计的嵌入式开发入门教程,旨在帮助读者从零开始掌握51单片机的基础知识和应用技能。51单片机是嵌入式系统中最基础且广泛应用的一类微控制器,广泛应用于智能家居、工业...

    手把手教你使用Git

    手把手教你使用Git

    手把手教你用C#制作RPG游戏__罗培羽著

    《手把手教你用C#制作RPG游戏》是罗培羽撰写的一本深入浅出的IT书籍,专门针对想要学习如何使用C#编程语言开发角色扮演游戏(RPG)的读者。这本书详细介绍了从零开始构建RPG游戏的全过程,涵盖了C#的基础知识以及...

    手把手教你使用android开发sina微博客户端参考.pdf

    本文将手把手教你如何从零开始构建这样一个客户端。作者以初学者的角度出发,记录了开发过程,旨在帮助同样初涉Android开发的读者。 在开发之前,你需要确保拥有一个Android开发环境,包括Eclipse Helios(3.6.1)...

Global site tag (gtag.js) - Google Analytics