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这个类。
这是个interface,所以你还得找到它的一个实现,我们看到它有三个子类,当你再去看看这三个子类分别做了什么
很明显,AbstractHttpClient是不能直接用的,因为是个抽象类。不过他有个子类DefaultHttpClient,这个子类之前看到过了吧。
再看看AndroidHttpClient 会发现它的API level 8,而DefaultHttpClient的API level 1,当然你可以随意选择一个类来使用,考虑到向下兼容的问题。所以选用DefaultHttpClient。
② 在doc上找DefaultClient这个类。
这个类自己并没有public方法,所以看看它继承的方法。
简单的结合方法说明,可以看到,它需要执行execute方法就得到服务器的返回值,再看方面里面的参数我们注意到HttpUriRequest 这个类,返回值是HttpResponse。所以先看看HttpUriRequest,再看HttpResponse。
③ 在doc上找HttpUriRequest 这个类。
它是个接口,但是有很多实现。如果你了解http相关知识的话那么你应该从名字可以知道他们大体的使用方向了(如果不了解的话那么只有一个一个的去了解这个类的功能)。当我每个类都看了了以后我发现HttpGet类可以满足我的需求,那么它的实现就选用HttpGet。
④ 在doc上找HttpGet这个类。
它的构造函数很简单,而且除了getMethod就没有其他的方法了。(所以这个类算是很简单了。)看看它的构造函数:
至于你选用哪一个方法就看个人选择了。我选择String参数的构造方法。
⑤ 在doc上找HttpResponse这个类。
⑥ 其实就是反复的查找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的使用是比较简单的,就是不停的查找,查参数,查返回值。方法大概如此,其他一般情况下没有我说的这个例子这么复杂,基本上查询一两次就搞定了。
Android 怎样使用API的更多相关文章
- Android SDK之API Level
Android SDK之API Level Android SDK API_LEVEL Platform Version API Level VERSION_CODE Android 4.2, 4.2 ...
- Android 使用Telephony API
Android 使用Telephony API public class TelephonyDemo extends Activity { TextView textOut; TelephonyMan ...
- Android L Camera2 API 使用实例程序汇总
在网上发现几个使用Camera API2开发的实例程序,总结一下方便后续参考: 1.Camera2 Basic : https://github.com/googlesamples/android-C ...
- 申请Android Map 的API Key(v2)的最新申请方式(SHA1密钥)
申请Android Map 的API Key(v2)的最新申请方式(SHA1密钥)具体步骤如下: ...
- 翻译Android USB HOST API
翻译Android USB HOST API 源代码地址:http://developer.android.com/guide/topics/connectivity/usb/host.html 译者 ...
- Android SDK与API版本的对应关系
看教程.开发Android程序等很多地方,需要设置Android SDK的版本,而其要我们写的却是API版本的数字, 为了方便查看 Android SDK与API版本的对应关系 我在SDK Manag ...
- Android 用 camera2 API 自定义相机
前言 笔者因为项目需要自定义相机,所以了解了一下 Android 关于 camera 这块的 API.Android SDK 21(LOLLIPOP) 开始已经弃用了之前的 Camera 类,提供了 ...
- Android BLE与终端通信(一)——Android Bluetooth基础API以及简单使用获取本地蓝牙名称地址
Android BLE与终端通信(一)--Android Bluetooth基础API以及简单使用获取本地蓝牙名称地址 Hello,工作需要,也必须开始向BLE方向学习了,公司的核心技术就是BLE终端 ...
- React-Native 问题随记2: com.android.builder.testing.api.DeviceException
错误详细: Execution failed for task ':app:installDebug'.> com.android.builder.testing.api.DeviceExcep ...
- Android 5.0 API
Android 5.0 (LOLLIPOP) 为用户和应用开发者提供了新功能.本文旨在介绍其中最值得关注的新 API. 如果您有已发布的应用,请务必看一看 Android 5.0 行为变更,了解您的应 ...
随机推荐
- Jquery ajax请求导出Excel表格
直接贴代码吧 $("#btn-export").click(function(){ var exportExcel = "export_excel"; data ...
- Objective-C传递数据小技巧
转自:http://www.guokr.com/blog/203413/ 比如说,如果你想向UIAlertView的delegate方法中传递一些信息,怎么办?继承UIAlertView么?使用Cat ...
- DX SetFVF
自由顶点格式(flexible vertex format,FVF) http://www.cnblogs.com/xmzyl/articles/1604096.html if( SUCCEEDED( ...
- linux杀掉80端口线程命令
80端口被其他程序占用, fuser -k -n tcp 80
- Java学习第三篇:类的三大特征,抽象类,接口,final关键字
一.类的三大特征 1.封装性 (1).什么是封装 封装就是把抽象出的数据和对数据的操作封装在一起, 数据被保护在内部, 程序的其他部分只有通过被授权的操作(成员方法), 才能对数据进行操作. (2). ...
- HDU 2544 最短路(模板题)
求1到N的最短路径,模板题,以1为源点,用dijkstra算法(可以用优先级队列优化) #include <iostream> #include <algorithm> #in ...
- SDUT1574组合数的计算(组合数)
http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=1574 这个题,比较奇怪,是用递推去做的,我试了 ...
- 20. atoi函数
/* 输入一个表示整数的字符串,把该字符串转换成整数并输出 */ #include<iostream> #include<string> using namespace std ...
- spring webservice 搭建出现的异常处理。异常: NAMESPACE_ERR: An attempt is made to create or change an object in a way whi
异常:NAMESPACE_ERR: An attempt is made to create or change an object in a way whi---- 这是我自己写客户端调用webse ...
- BZOJ 3129 SDOI2013 方程
如果没有限制,答案直接用隔板法C(m-1,n-1) 对于>=x的限制,我们直接在对应位置先放上x-1即可,即m=m-(x-1) 对于<=x的限制,由于限制很小我们可以利用容斥原理将它转化为 ...