android开发环境搭建,第1张

Android开发环境搭建分为五个步骤来完成Android开发环境的部署。

第一步:安装JDK

要下载Oracle公司的JDK可以百度“JDK”进入Oracle公司的JDK下载页面(当前下载页面地址为http://wwworaclecom/technetwork/java/javase/downloads/indexhtml),选择自己电脑系统的对应版本即可。

第二步:配置Windows上JDK的变量环境

知道了一个应用程序的安装目录位置,我们也可以通过命令行工具打开,如QQ的位置为:C:\Program Files (x86)\Tencent\QQ\QQProtect\Bin,QQ的应用程序名为为QQProtectexe,那么我们打开命令行工具,然后进入到“C:\Program Files (x86)\Tencent\QQ\QQProtect\Bin”目录,再输入“QQProtect”,即可运行qq。

JAVA_HOME

先设置这个系统变量名称,变量值为JDK在你电脑上的安装路径:C:\Program Files\Java\jdk180_20。创建好后则可以利用%JAVA_HOME%作为JDK安装目录的统一引用路径。

Path

PATH属性已存在,可直接编辑,在原来变量后追加:;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin 。

CLASSPATH 

设置系统变量名为:CLASSPATH  变量值为:;%JAVA_HOME%\lib\dtjar;%JAVA_HOME%\lib\toolsjar 。

注意变量值字符串前面有一个""表示当前目录,设置CLASSPATH 的目的,在于告诉Java执行环境,在哪些目录下可以找到您所要执行的Java程序所需要的类或者包。

 

第三步: 下载安装Eclipse

Eclipse为Java应用程序及Android开发的IDE(集成开发环境)。Eclipse不需要安装,下载后把解压包解压后,剪切eclipse文件夹到你想安装的地方,打开时设置你的工作目录即可。

Eclipse的版本有多个,这里选择下载Eclipse IDE for Java EE Developers这个版本。

第四步:下载安装Android SDK

Android SDK提供了开发Android应用程序所需的API库和构建、测试和调试Android应用程序所需的开发工具。

打开http://developerandroidcom/sdk/indexhtml,我们发现google提供了集成了Eclipse的Android Developer Tools,因为我们这次是已经下载了Eclipse,所以我们选择单独下载Android SDK

下载后双击安装,指定Android SDK的安装目录,为了方便使用Android SDK包含的开发工具,我们在系统环境变量中的Path设置Android SDK的安装目录下的tools目录。

第五步:为Eclipse安装ADT插件

下面是在线安装ADT的方法:

启动Eclipse,点击 Help菜单 -> Install New Software… ,点击弹出对话框中的Add… 按钮。

然后在弹出的对话框中的Location中输入:http://dl-sslgooglecom/android/eclipse/,Name可以输入ADT,点击“OK”按钮。

在弹出的对话框选择要安装的工具,然后下一步就可以了。

 

 Eclipse+Axis2构建WebService实战总结

  什么是webservice

  企业提供特定的服务service,其他用户通过internet即web访问这些服务。换句话说,WebService是两个计算机之间通讯(交谈)的技术,网络中一台计算机想要调用另一台计算机的方法时,此时可以需要WebService。很火的SOA、云计算在技术层面上都是WebService

  用程序员的观点就是:企业提供实现某功能的函数,其他用过通过在线访问这些函数。

  webservice两个重要文件:aar:服务包文件,提供服务,wsdl:web服务接口定义语言文件,供客户端使用。

  webservice关键技术

  1、XML:可扩展的标记语言(XML)是Web service平台中表示数据的基本格式。除了易于建立和易于分析外,XML主要的优点在于它既是平台无关的,又是厂商无关的。

  2、SOAP:SOAP是web service的标准通信协议,SOAP为simple object access protocoll的缩写,简单对象访问协议它是一种标准化的传输消息的XML消息格式。即XML文件的消息格式,由这个协议来决定。SOAP简单的理解,就是这样的一个开放协议SOAP=RPC+HTTP+XML:采用HTTP作为底层通讯协议;RPC作为一致性的调用途径,xml作为数据传送的格式。

  3、Axis2:Axis2是实现Web Service的一种技术框架,是新一代的SOAP引擎,即通过这个架构很方便地实现webservice即在服务端通过这个技术支持,很方便地发布webservice服务,使开发只关注具体的商业实现,而由这个框架直接发布,节省了开发者的时间。在客户端同样只关注调用。为了使用这个框架,在3个地方需要部署Axis2的库:web服务器tomcat上、eclipse服务端开发axis2库、eclipse客户端开发ksoap2库。

  4、WSDL:WSDL的全称是web service Description Language,是一种基于XML格式的关于web服务的描述语言。其主要目的在于web service的提供者将自己的web服务的所有相关内容,如所提供的服务的传输方式,服务方法接口,接口参数,服务路径等,生成相应的完全文档,发布给使用者。使用者可以通过这个WSDL文档,创建相应的SOAP请求消息,通过HTTP传递给webservice提供者;web服务在完成服务请求后,将SOAP返回消息传回请求者,服务请求者再根据WSDL文档将SOAP返回消息解析成自己能够理解的内容。

  5、UDDI:UDDI 是一种目录服务,企业可以使用它对 Web services 进行注册和搜索。UDDI,英文为 "Universal Description, Discovery and Integration",可译为“通用描述、发现与集成服务”。UDDI是一种创建注册表服务的规范,以便大家将自己的web service进行注册发布供使用者查找然而当服务提供者想将自己的web service向全世界公布,以便外部找到其服务时,那么服务提供者可以将自己的web service注册到相应的UDDI商用注册网站,目前全球有IBM等4家UDDI商用注册网站。因为WSDL文件中已经给定了web service的地址URI,外部可以直接通过WSDL提供的URI进行相应的web service调用。所以UDDI并不是一个必需的web service组件,服务方完全可以不进行UDDI的注册。

  webservice服务端的实现

  1、tomcat服务器部署:部署Axis2到tomcat:将Axis2war解压到tomcat的webapps目录下即可,如果有数据库连接,需把数据库连接jar包添加到tomcat的lib目录下,如:oracle的ojdbc14jar,和mysql的 mysql-connector-java-3111-binjar。部署成功后,启动tomcat,可通过http://localhost:8080/axis2/访问,查看是否部署成功。webservice的axis服务存档aar发布文件就发布到tomcat\webapps\axis2\WEB-INF\services这个目录下

  2、安装axis2插件到eclipse:解压插件,直接拷贝到eclipse的插件目录plugins,两个插件为:orgapacheaxis2eclipsecodegenplugin_160jar、orgapacheaxis2eclipseserviceplugin_160jar。打开Eclipse,选择File/New/Other菜单项,看到如下界面表明安装成功:

  安装这两个插件的目的是:方便生成Axis2的服务包(aar文件)和生成Axis2客户端

  3、打包生成axis2服务包:

  选择服务程序类文件所在的目录,不包括包,选中Include,表示在生成的服务包中只包括类文件,不包括其他文件。

  选择跳过WSDL文件,WSDL文件会在部署这个服务到Tomcat后,有Axis2自动生成,通过http://localhost:8080/axis2/services/newWswsdl可以查看文件内容。

  注意:WSDL是web服务定义语言,通过XML的方式对该服务类进行描述,客户端访问服务时要用到这个文件,可以生成这个文件给客户端,也可以上面的在线获取这个文件。

  点击“next”,进入添加服务需要的库文件界面:

  需要的库文件直接部署到tomcat中,此处不需要添加,进入下一界面:

  选择自动生成servicexml文件。点击进入下一界面:

  输入服务名和类名,点击load即可找出该服务程序的全部方法。

  输入发布路径,和文件名。生成newWsaar服务包文件。

  部署完成后,输入http://localhost:8080/axis2/services/listServices,即可看到已部署的全部服务。

  eclipse中webservice不能发布的原因:

  1、界面问题,把发布界面最大化或拖拽,是界面刷新,就可以看到输入界面了。

  2、发布界面最后一步,load时,没有任何反映,是这个类的代码有问题,例如有加载动态库的代码,动态库找不到,则会没有反映。

  3、代码没改变的情况下好像只能生成一次,想在生成的话,需要改代码,或需要重启eclipse

  webservie服务端:java调用C++动态库的实现

  1、在eclipse中编写一个java类文件,应用中的其他类可以调用这个类中的函数:

  [cpp] view plaincopyprint

  01package util;

  02

  03public class InvokeDll

  04{

  05 //测试函数

  06 public native int testFunc(int a, int b);

  07

  08 //获取最近一次错误代码

  09 public native int lastErr();

  10}

  package util;

  

  public class InvokeDll

  {

  //测试函数

  public native int testFunc(int a, int b);

  

  //获取最近一次错误代码

  public native int lastErr();

  }

  注意:函数要用native修饰符

  2、用javah命令生成C++可调用的h文件

  a、上述java类编译生成类文件InvokeDllclass

  b、set classpath="D:\teatInvokeDll\bin",类文件生成在D:\testInvokeDll\bin\util\InvokeDllclass

  c、命令行进入D:\teatInvokeDll\bin

  d、javah utilInvokeDll

  你会发现当前目录下多了一个util_InvokeDllh文件,文件内容如下:

  [cpp] view plaincopyprint

  01/ DO NOT EDIT THIS FILE - it is machine generated /

  02#include <jnih>

  03/ Header for class util_InvokeDll /

  04

  05#ifndef _Included_util_InvokeDll

  06#define _Included_util_InvokeDll

  07#ifdef __cplusplus

  08extern "C" {

  09#endif

  10/

  11 Class: util_InvokeDll

  12 Method: testFunc

  13 Signature: (II)I

  14 /

  15JNIEXPORT jint JNICALL Java_util_InvokeDll_testFunc

  16 (JNIEnv , jobject, jint, jint);

  17

  18/

  19 Class: util_InvokeDll

  20 Method: lastErr

  21 Signature: ()I

  22 /

  23JNIEXPORT jint JNICALL Java_util_InvokeDll_lastErr

  24 (JNIEnv , jobject);

  25

  26#ifdef __cplusplus

  27}

  28#endif

  29#endif

  / DO NOT EDIT THIS FILE - it is machine generated /

  #include <jnih>

  / Header for class util_InvokeDll /

  

  #ifndef _Included_util_InvokeDll

  #define _Included_util_InvokeDll

  #ifdef __cplusplus

  extern "C" {

  #endif

  /

   Class: util_InvokeDll

   Method: testFunc

   Signature: (II)I

  /

  JNIEXPORT jint JNICALL Java_util_InvokeDll_testFunc

  (JNIEnv , jobject, jint, jint);

  

  /

   Class: util_InvokeDll

   Method: lastErr

   Signature: ()I

  /

  JNIEXPORT jint JNICALL Java_util_InvokeDll_lastErr

  (JNIEnv , jobject);

  

  #ifdef __cplusplus

  }

  #endif

  #endif

  3、在VC中生成dll如java2dlldll

  a、新建一个空的dll工程,名叫java2dll。

  b、把util_InvokeDllh头文件复制到工程目录下,并添加到header files文件夹里。

  c、在source files文件目录中添加一个java2dllcpp,文件内容是头文件里的方法的实现:

  [cpp] view plaincopyprint

  01#include <stdioh>

  02#include "util_InvokeDllh"

  03

  04JNIEXPORT jint JNICALL Java_util_InvokeDll_testFunc(JNIEnv , jobject, jint a, jint b)

  05{

  06 int i=0;

  07 /HMODULE hModule = ::LoadLibrary("testdll");

  08

  09 PFUN newfun = (PFUN)::GetProcAddress(hModule,"testFn");

  10 i = newfun(a,b);

  11 ::FreeLibrary(hModule);

  12 /

  13 i=a+b;

  14 return i;

  15}

  16

  17JNIEXPORT jint JNICALL Java_util_InvokeDll_lastErr(JNIEnv , jobject)

  18{

  19 int i=0;

  20 return i;

  21}

  #include <stdioh>

  #include "util_InvokeDllh"

  

  JNIEXPORT jint JNICALL Java_util_InvokeDll_testFunc(JNIEnv , jobject, jint a, jint b)

  {

  int i=0;

  /HMODULE hModule = ::LoadLibrary("testdll");

  

  PFUN newfun = (PFUN)::GetProcAddress(hModule,"testFn");

  i = newfun(a,b);

  ::FreeLibrary(hModule);

  /

  i=a+b;

  return i;

  }

  

  JNIEXPORT jint JNICALL Java_util_InvokeDll_lastErr(JNIEnv , jobject)

  {

  int i=0;

  return i;

  }d、点击“运行”->“编译”,这时你会看到很多数据类型没被声明的错误,那是因为util_InvokeDllh使用了很多JAVA_HOME/include/jnih文件自定义的数据类型,而jnih又引

  用了JAVA_HOME/include/win32/jni_mdh,这时你需要把jnih和jni_mdh引入到工程里面来,左击工程名“工程属性”->“文件/目录”->“包含文件目录”把JAVA_HOME/include和JAVA_HOME/include/win32文件夹添加,确定后,再次编译一切正常,这时在工程的目录下就找到java2dlldll文件,这样dll文件就生成了

  4、调用其他标准的C++动态库,如testdll

  例如testdll,是其他人编写的标准的C++动态库,可以在上述注释掉的部分调用,testFn是它里面的函数。

  5、在webservice端的java调用

  加载库Java2dll,并调用接口函数:

  [cpp] view plaincopyprint

  01static

  02{

  03 //动态库dll文件要放到系统目录或用绝对路径凋用Systemload("绝对路径")

  04 SystemloadLibrary("Java2dll");

  05}

  06

  07/实例化调用类

  08InvokeDll dll = new InvokeDll();

  09

  10//调用函数

  11String strRet = dlltestFunc(a, b)

  static

  {

  //动态库dll文件要放到系统目录或用绝对路径凋用Systemload("绝对路径")

  SystemloadLibrary("Java2dll");

  }

  

  //实例化调用类

  InvokeDll dll = new InvokeDll();

  

  //调用函数

  String strRet = dlltestFunc(a, b)

  

  总结:调用过程:java普通类-->java native类-->jni C++ 动态库-->标准C++动态库,最终实现java普通类对标准C++动态库的调用。

1 socket,自己用socket来实现服务器,自己指定交互规则,达到和客户端交互。

2 网站web,然后提供一个访问接口,安卓客户端可以通过这个接口与服务器交互,获取数据,传递数据等。具体来说服务器就是一个web工程,所以你需要搭建服务器(tomcat等),把你的web应用发布到服务器上。至于交互一般可以用servlet来和安卓客户端交互,进而可以用action,这其实是j2e方面的知识了,所以你可以去了解下这方面的知识。

总体来说的话个人感觉第二种方法较好,因为交互层是别人写好的,你自己写的话有时候问题比较多。

我来简单的说下,让你容易理解:

1系统物理架构

android客户端------无线路由-------(web服务器,数据库)

2技术选型

(android客户端)--->Web服务器(tomcat)--->数据库(mysql等)

客户端请求数据成功后,返回数据(可以通过Web Service、HTTP等方式进行网络通信)

(android客户端)<---Web服务器(tomcat)<-->数据库(mysql等)

3创建客户端项目WirelessClient(到时安装在手机端)和服务器项目WirelessServer(安装在web服务器端PC机)。之后分别开发这两端的项目,手机端用android的API,服务器端用Java开发

这样可以帮助你简单的理解了吗?

服务器端写个servlet,然后在doPost()方法里处理客户端上传的文件,大概代码:

DiskFileItemFactory factory = new DiskFileItemFactory();

factorysetSizeThreshold(1024 1024); // 设置最多只允许在内存中存储的数据, 单位:字节

factorysetRepository(cachepath); // 设置一旦文件大小超过设定值时数据存放的目录

ServletFileUpload srvFileUpload = new ServletFileUpload(factory);

srvFileUploadsetSizeMax(1024 1024 1024); // 设置允许用户上传文件大小, 单位:字节

// 开始读取上传信息

List fileItems = null;

try {

fileItems = srvFileUploadparseRequest(request);

} catch (Exception e) {

Systemoutprintln("获取上传信息。。。。。。失败");

}

// 依次处理每个上传的文件

Iterator iter = fileItemsiterator();

while (iterhasNext()) {

FileItem item = (FileItem) iternext(); // 忽略其他不是文件域的所有表单信息

if (!itemisFormField()) {

// 取出文件域的所有表单信息

} else {

// 取出不是文件域的所有表单信息

}

}

一、安装JDK和Tomcat

1,安装JDK:直接运行jdk-7-windows-i586exe可执行程序,默认安装即可。

备注:路径可以其他盘符,不建议路径包含中文名及特殊符号。

2、安装Tomcat:直接解压缩下载文件“apache-tomcat-7033-windows-x86zip”到C盘下。安装路径建议修改为:c:\tomcat。

备注:如下载的是可执行文件,双击运行,默认安装即可。

二、配置JDK环境变量(在步骤查看如何配置环境变量)

1,新建变量名:JAVA_HOME,变量值:C:\Program Files\Java\jdk170

2,打开PATH,添加变量值:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin

3,新建变量名:CLASSPATH,变量值:;%JAVA_HOME%\lib\dtjar;%JAVA_HOME%\lib\toolsjar

备注:

1,表示当前路径,%JAVA_HOME%就是引用前面指定的JAVA_HOME;

2,JAVA_HOME指明JDK安装路径,此路径下包括lib,bin,jre等文件夹,tomcat,eclipse等的运行都需要依靠此变量。

3,PATH使得系统可以在任何路径下识别java命令。

4,CLASSPATH为java加载类(class or lib)路径,只有类在classpath中,java命令才能识别。

三、测试JDK

在CMD命令下输入javac,java,javadoc命令:出现图示界面,表示安装成功。

四、配置Tomcat环境变量

1,新建变量名:CATALINA_BASE,变量值:C:\tomcat

2,新建变量名:CATALINA_HOME,变量值:C:\tomcat

3,打开PATH,添加变量值:%CATALINA_HOME%\lib;%CATALINA_HOME%\bin

五、启动Tomcat服务

方法三种:

1,方法一:直接进入tomcat的bin目录中点击startupbat启动服务,出现如下对话框,表明服务启动成功,stutdownbat为关闭服务。

2,方法二:在CMD命令下输入命令:startup,出现如下对话框,表明服务启动成功。

3,方法三:右键点击桌面上的“我的电脑”->“管理”->“服务和应用程序”->“服务”,找到“Apache     Tomcat”服务,右键点击该服务,选择“属性”,将“启动类型”由“手动”改成“自动”。

六、测试Tomcat

打开浏览器,在地址栏中输入http://localhost:8080回车,如果看到Tomcat自带的一个JSP页面,说明你的JDK和Tomcat已搭建成功。

注意事项

1,JAVA_HOME中的路径不能用分号结尾,如C:\Program     Files\Java\jdk170。

2,CATALINA_BASE,CATALINA_HOME,TOMCAT_HOME中的路径不能以“\”结尾。

3,JAVA_HOME的路径一定不要写成了JRE的路径。

4,在环境变量中修改添加变量时,一定要注意分号、空格,是否有多余的字母。作者就是因为path路径中多了一个字母,怎么都配置不成功。如果配置不成功,一定要反复检查。

以上错误,非常容易出现错误:CATALINA_HOME或是JAVA_HOME没有配置好。如错误提示“The CATALINA_HOME environment variable is not defined correctly”

项目部署方式

一、静态部署

1、直接将web项目文件件拷贝到webapps 目录中

Tomcat的Webapps目录是Tomcat默认的应用目录,当服务器启动时,会加载所有这个目录下的应用。所以可以将JSP程序打包成一个 war包放在目录下,服务器会自动解开这个war包,并在这个目录下生成一个同名的文件夹。一个war包就是有特性格式的jar包,它是将一个web程序的所有内容进行压缩得到。具体如何打包,可以使用许多开发工具的IDE环境,如Eclipse等。也可以用 cmd 命令:jar -cvf mywarwar  myweb

webapps这个默认的应用目录也是可以改变。打开Tomcat的conf目录下的serverxml文件,找到下面内容:

<Host name="localhost" appBase="webapps"

unpackWARs="true" autoDeploy="true"

xmlValidation="false" xmlNamespaceAware="false">

将appBase修改即可。 

2、在serverxml中指定

在Tomcat的配置文件中,一个Web应用就是一个特定的Context,可以通过在serverxml中新建Context里部署一个JSP应用程序。打开serverxml文件,在Host标签内建一个Context,内容如下。

在tomcat中的conf目录中,在serverxml中的,<host/>节点中添加: 

<Context path="/hello" docBase="D:\ workspace\hello\WebRoot" debug="0" privileged="true"> 

< /Context>

或者

<Context path="/myapp" reloadable="true" docBase="D:\myapp" workDir="D:\myapp\work"/>

或者

<Context path="/sms4" docBase="D:\workspace\sms4\WebRoot"/>

说明:

path是虚拟路径;

docBase 是应用程序的物理路径;

workDir 是这个应用的工作目录,存放运行时生成的与这个应用相关的文件;

debug 则是设定debug level,  0表示提供最少的信息,9表示提供最多的信息

privileged设置为true的时候,才允许Tomcat的Web应用使用容器内的Servlet

reloadable 如果为true,则tomcat会自动检测应用程序的/WEB-INF/lib 和/WEB-INF/classes目录的变化,自动装载新的应用程序,可以在不重起tomcat的情况下改变应用程序,实现热部署

antiResourceLocking和antiJARLocking  热部署是需要配置的参数,默认false避免更新了某个webapp,有时候Tomcat并不能把旧的webapp完全删除,通常会留下WEB-INF/lib下的某个jar包,必须关闭Tomcat才能删除,这就导致自动部署失败。设置为true,Tomcat在运行对应的webapp时,会把相应的源文件和jar文件复制到一个临时目录里。

3、创建一个Context文件

在conf目录中,新建 Catalina\localhost目录,在该目录中新建一个xml文件,名字不可以随意取,要和path后的那个名字一致,按照下边这个path的配置,xml的名字应该就应该是hello(helloxml),该xml文件的内容为:

<Context path="/hello" docBase="E:\workspace\hello\WebRoot" debug="0" privileged="true"></Context>

tomcat自带例子如下:

<Context docBase="${catalinahome}/server/webapps/host-manager"

privileged="true" antiResourceLocking="false" antiJARLocking="false">

</Context>

这个例子是tomcat自带的,编辑的内容实际上和第二种方式是一样的,其中这xml文件名字就是访问路径,这样可以隐藏应用的真实名字。

4、注意:

删除一个Web应用同时也要删除webapps下相应的文件夹和serverxml中相应的Context,还要将Tomcat的conf\catalina\localhost目录下相应的xml文件删除,否则Tomcat仍会去配置并加载。。。

二 动态部署

登陆tomcat管理控制台:http://localhost:8080/,输入用户名和密码后便可管理应用并动态发布。

在Context Path(option):中输入/yourwebname ,这代表你的应用的访问地址。

XML Configration file URL中要指定一个xml文件,比如我们在F:\下建立一个hmcxxml文件,内容如下: <Context reloadable="false" />其中docBase不用写了,因为在下一个文本框中填入。或者更简单点,这个文本框什么都不填,在WAR or Directory URL:中键入F:\hmcx即可,然后点击Deploy按钮,上面就可以看到了web应用程序,名字就Context Path(option):中的名字。

如果部署war文件还有更加简单的方式,下面还有个Select WAR file uploae点击浏览选择war文件,然后点击Deploy也可以。

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » android开发环境搭建

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情