Android如何使用API

知识的价值不在于占有,而在于使用。这篇文章主要讲述Android如何使用API相关的知识,希望能为你提供帮助。
本文针对android开发如何使用API文档进行一些经验分享。
 
1、为什么需要掌握API的使用。
也许你需要完成一个功能时很多时候你在网上google一番,因为很可能找到有用的代码片段,甚至不用关心具体实现的原理就可以直接拿来用。你可能遇到过搜出来的结果不太令人满意,尤其是你需要完成的功能比较新颖,demo比较少。
这个时候开发最好最快的途径就是用好API,掌握好API的使用也是程序开发的必修课。
 
2、API的重要性。
其实很多初学者都没有查|API的习惯,原因很简单:API仅仅是对一些类库、方法的介绍,很少有Sample,对于开发者来说是很难掌握的。首先你得清楚一点,所有的sample都源自于API,即使是你参考别人的sample其实也是间接的参考API。个人认为在软件开发过程中API的重要性仅次于软件设计,它是编码的基础,所以你不得不掌握API的使用,不是每次google都有你满意的demo。
 
3、如何使用API。
其实至于如何使用API可以根据个人习惯来定。今天我和大家分享我使用API的方法。具体还是来一个具体点的例子:使用http提交一个表单,打印出返回值。
看到这个例子的时候我们应该知道一般的网络访问的步骤(如果不知道那你就得补习相关的知识),或者至少你应该知道android系统中访问网络的方式。此处我们采用HttpClient,下面我们正式开始使用API(假如我以前没有接触过这个类)。
①  在doc上找到HttpClient这个类。
 

Android如何使用API

文章图片

这是个interface,所以你还得找到它的一个实现,我们看到它有三个子类,当你再去看看这三个子类分别做了什么
 
Android如何使用API

文章图片

很明显,AbstractHttpClient是不能直接用的,因为是个抽象类。不过他有个子类DefaultHttpClient,这个子类之前看到过了吧。
再看看AndroidHttpClient  会发现它的API  level  8,而DefaultHttpClient的API  level  1,当然你可以随意选择一个类来使用,考虑到向下兼容的问题。所以选用DefaultHttpClient。
 
②  在doc上找DefaultClient这个类。
这个类自己并没有public方法,所以看看它继承的方法。
 
Android如何使用API

文章图片

 
简单的结合方法说明,可以看到,它需要执行execute方法就得到服务器的返回值,再看方面里面的参数我们注意到HttpUriRequest  这个类,返回值是HttpResponse。所以先看看HttpUriRequest,再看HttpResponse。
 
③  在doc上找HttpUriRequest  这个类。
 
Android如何使用API

文章图片

它是个接口,但是有很多实现。如果你了解http相关知识的话那么你应该从名字可以知道他们大体的使用方向了(如果不了解的话那么只有一个一个的去了解这个类的功能)。当我每个类都看了了以后我发现HttpGet类可以满足我的需求,那么它的实现就选用HttpGet。
 
④  在doc上找HttpGet这个类。
【Android如何使用API】它的构造函数很简单,而且除了getMethod就没有其他的方法了。(所以这个类算是很简单了。)看看它的构造函数:
 
Android如何使用API

文章图片

至于你选用哪一个方法就看个人选择了。我选择String参数的构造方法。
 
⑤  在doc上找HttpResponse这个类。
 
Android如何使用API

文章图片

⑥  其实就是反复的查找api中的参数和返回值的一个过程。剩下的就省略了。
 
⑦  完整的步骤。
到此为止查找API就结束了,整理一下查找的结果。
HttpClient  client  =  new  DefaultHttpClient();
HttpUriRequest  request  =  new  HttpGet("http://www.baidu.com");
HttpResponse  response  =  client.execute(request);
InputStream  ins  =  response.getEntity().getContent();
ins就是返回值,以流的形式返回的,你需要把它转化成ByteArrayInputStream就可以得到里面的内容了(这里的原因api里面并没有)。
 
4、总结。
其实API的使用是比较简单的,就是不停的查找,查参数,查返回值。方法大概如此,其他一般情况下没有我说的这个例子这么复杂,基本上查询一两次就搞定了。
PS:如果你有更好的方法,更快的方法,希望得到你的建议。欢迎交流。

    推荐阅读