本文针对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的使用是比较简单的,就是不停的查找,查参数,查返回值。方法大概如此,其他一般情况下没有我说的这个例子这么复杂,基本上查询一两次就搞定了。

PS:如果你有更好的方法,更快的方法,希望得到你的建议。欢迎交流。

转载于:https://www.cnblogs.com/vanezkw/archive/2012/07/03/2574559.html

Android如何使用API相关推荐

  1. Android中所有API和对应权限的数据结构构建

    #写在前面的话 这是一篇有毒博客,我觉得,读者慎入. 我想说,那个最底下的广告怎么去,辣眼睛- T -T 当然,你也可以帮我点下我的,在这里跪谢大家 https://www.captainbed.ne ...

  2. Android 操作串口 (android serial port api)

    Android 操作串口 (android serial port api)

  3. Android 2.3 API改变大全(转载)

    遇到OOM问题,需要使用VMRuntime类的时候才发现,原来2.3被移除了,想知道它是否有替代类?留下脚印,再继续... Android 2.3 API改变大全 作者: Android开发网原创 时 ...

  4. android版本sdk api对应,Android API Level与sdk版本对照表

    API等级1: Android 1.0 API等级2: Android 1.1 Petit Four 花式小蛋糕 API等级3: Android 1.5 Cupcake 纸杯蛋糕 API等级4: An ...

  5. android call require api level

    android  call require api level 5 等错误,需要在project -> android tools-> clear lint markers 来清楚 转载于 ...

  6. 我的Android进阶之旅------Android中高低API版本兼容使用@TargetApi或者@SuppressLint(NewApi)...

    Android中高低API版本兼容使用@TargetApi或者@SuppressLint("NewApi") 例如:AndroidManifest.xml中,我们配置了sdk版本的 ...

  7. 利用java实现android项目结构API文档

    利用java实现android项目结构API文档 2012-11-16 快速生成API文档列表 在android项目中的.CLASSPATH文件里添加android.jar路径 例如: <cla ...

  8. Android 5.1 API 22 所有sdk文件下载地址

    开源中国的 IT 公司开源软件整理计划介绍 https://dl-ssl.google.com/android/repository/docs-22_r01.zip http://dl.google. ...

  9. Android 5.0 API 的变化——开发人员注意

    Android 5.0 API变化 译自 http://developer.android.com/intl/zh-cn/about/versions/android-5.0.html -- By N ...

  10. android targetapi版本低,我的Android进阶之旅------Android中高低API版本兼容使用@TargetApi或者@SuppressLint(NewApi)...

    Android中高低API版本兼容使用@TargetApi或者@SuppressLint("NewApi") 例如:AndroidManifest.xml中,我们配置了sdk版本的 ...

最新文章

  1. Jenkins构建Docker容器
  2. 磁盘文件整理工具,让你的电脑清清爽爽的!
  3. 系统管理-第1部分 系统的易管理性
  4. ML之DT:利用DT(DTC)实现对iris(鸢尾花)数据集进行分类并可视化DT结构
  5. ESP8266编译环境 对于习惯Ubuntu默认桌面的用户非常好
  6. shell 判断字符串是否存在包含关系
  7. linux 组的管理,LINUX用户组管理各命令的使用
  8. Go的50度灰:Golang新开发者要注意的陷阱和常见错误
  9. pytorch: 在训练中保存模型,加载模型
  10. 第一个错误的版本_寻找第一个错误的版本
  11. jquery的扩展方法介绍
  12. HTTP协议状态码详解(HTTP Status Code)(转)
  13. 进程管理之工作管理详解(job control)
  14. 照片宽高比怎么设置_【经验分享】照片处理
  15. 翁恺老师Java进阶城堡游戏源码
  16. 如何识别媒体偏见_超越偏见:为什么我们不能仅仅“修正”面部识别
  17. 1231231312
  18. 360安全浏览器极速模式对rem失效
  19. 以计算为中心的下一代数据中心交换网络
  20. 科比投篮预测,可视化与探索性数据分析(二)

热门文章

  1. 重构授课班时间安排模块代码
  2. web工作流管理系统开发之十九 工作流系统的事务处理
  3. Cisco Ensoft
  4. ES6中的Promise使用方法与总结
  5. UTC/GMT/CST几种常见的时间概述
  6. Windows Server 2012正式版RDS系列②
  7. mysql MHA高可用架构安装
  8. CHIL-SQL-PRIMARY KEY 约束
  9. Android 自定义Button按钮显示样式(正常、按下、获取焦点)
  10. SybaseIQ - utility_db介绍