看了这么多的文章,以及我教学生的感慨来说,大多数都直接讲解了功能怎么做,但是对于刚学习或者是会一点的技术人员来说,不会的东西具体怎么来做还是有些迷茫的。所以本篇就单独讲解一下怎么查看Android API、JAVA API、百度API和第三方的API。如果你会看其中之一,后面都是一样的。进入正题:
如何查看API
首先你肯定要找到相应的API文档,有两种方式。一:通过网址在线查看 二:通过下载API文档本地查看(一般以.chm为后缀)。
Java在线英文API:tool.oschina.net/apidocs/apidoc
Java在线中文API:tool.oschina.net/apidocs/apidoc
Android在线英文API:(需翻墙)developer.android.com/reference/packages.html
Android在线中文API:www.android-doc.com/reference/packages.html
本地API我们就不说了,可以百度下载相应的API到本地查看。那么下面我们就先说一下为什么要看API。如果你需要学习新的技术点,网上资料也很缺乏,你想尽快的开发,那么API是必不可少的。比如百度API,云通讯API等等,如果你自己能看,那么在开发上也会事半功倍。并且看API对于你理解类、对象、继承、方法等也有一定的好处,还能提升你阅读代码的能力。
我们先看一下一般API的基本的界面是怎么样的。
Java API:
Android API界面:
Android API界面
通过上面的两个API界面我们可以发现一个共性就是分为左右两边,那么分别是什么意思呢?如果英文好一些的可能就知道了。
Package:包
Classes:类
我们先以Java为列:左上部分是所有的包,右边也是所有的包,他们的一样的。左下是所有的类。Android就不一样了,从界面上我们没有看到类只能看到包,其实需要点击包之后才能看到类,点击类之后才能看到方法、构造函数等等。这里我们就不一一说了。(另如果你不知道什么是包和类,我这里就mark一下。如果你是Android开发的并且有一定基础,那么你应该知道一个项目有目录结构,然后会创建项目的包名,包下面创建类。其实他们是一样的,主要是为了区分不同的类做不同的功能,许多相同的类放在相应的包下方便管理和查找。所以如果你创建项目不知道怎么创建包,怎么创建类,就可以以此来区分,比如我有一个activity包,里面全部放activity的类,又或者创建adapter包下面放所有用到的适配器类。这样方便日后查看或者日后管理)。但是他们都是通过包,然后找到类,然后找到方法。
可能你会问,我想实现处理一个字符串或者处理图片以及文件应该找那个包呢?找那个包下面的类呢?类下面的那些方法呢?又比如我想播放MP3应该用找Android的那个包呢?包下的那个类呢?
那么具体我们怎么看API呢?
一:知道包的含义
首先需要知道的是怎么去找,那么你要知道的是各个包的含义,总结为如下:
java api相关总结:
java.awt.*:java控件包,就是java编写窗口界面的。如果是Android开发,这个包是用不到的。
java.lang(注意是lang不是lang.XXX包):Java常用类,包括String,Math,Number,Boolean,Thread等类(android需要的)
java.io:数据输入输出流的相关类。
java.util:相关集合,排序等类。
Android api相关总结:
android.net :除java.net.* api之外的网络访问帮助类。
android.database:包含通过content provider来展示数据的类。
android.content:包含一些访问设备公共资源的类。
android.media:提供音频和视频的多媒体管理接口。
android.view:为处理屏幕布局和用户交互类提供暴露接口类。
android.widget :widget包含(一般为可见)在应用界面上使用的 UI 元素 。
这里有不一一举例了。不过他们有一个共性就是比如android.net和是一个包,其实还有android.net.xxxxx其他的包,同样的java.lang也是一个包,java.lang.xxxx也有其他的包。他们只是前缀一样而已,区别就是如果是xxxx.xxxx那么他们是一个包的基类,如果xxxx.xxxx.xxxx他们是这个包的其他扩展包。(我怎么知道这个包是什么意思?工具:翻译。如果是中文的,恭喜你可以看懂)
二:知道类的使用
现在我想要播放MP3该怎么做呢?那么你需要找到相应的包,具体怎么查看包,上面已经讲解了。所以我们不妨来找一下:
我们可以看到在API中有一个包是android.media用于音视频的播放的,那不用说了就是这个包。同样的上面还有USB通信的,如果你要弄USB上面的包肯定是你需要的。然后我们点击android.media包进去会发现,我的天这么东西,我怎么看?不要慌,我们慢慢来。上面有个东西叫Interfaces,这个是此包下面的接口,一般情况,第一步你是肯定用不到这个接口的。只有你用了相关的类才会使用接口。所以Interfaces这里面的东西暂时忽略。下面的class就是我们这个包下面的类了,具体用哪一个类呢?我们看到有一个MediaPlayer,点击之后可以看到这个类的所有信息,下面我们在讲解一下类里面的东西。
java.lang.object是当前类的父类。
android.media.MediaPlayer是当前类。
MediaPlayer里面的:Constants--------声明的常量,Fields---------声明的字段,Public constructors----------构造函数,Public methods-------公共方法。对于所有的类80%都需要获取到相应的对象然后进行操作,获取对象无非就两种,一种直接new xxxx(),一种通过静态方法获取对象。对于MediaPlayer有5种方式获取对象。
那么具体调用哪一个呢?随便调用哪一个就是可以的,因为他们都是获取mediaplayer对象的,不过是通过不同的参数来进行获取。就如可以通过不同的参数来获取对象new Object(),new Object(1),new Object(1,2)。知识这里面的参数我怎么知道传递什么呢?比如第4个和第5个方法,我怎么知道传递的context,resid和uri是什么东西。(有一个原则就是需要什么就传递什么,如果没有就创建)。这里我们如果用第4个方法那么context就应该传递activity,int就是资源id。所以综合代码就是。
MediaPlayer mediaPlayer = MediaPlayer.create(this,R.drawable.__leak_canary_icon);
//以下可以是任何你想要的方法,只要API里面有。
mediaPlayer.setOnInfoListener(new MediaPlayer.OnInfoListener() {
@Override
public booleanonInfo(MediaPlayer mp, intwhat, intextra) {
return false;
}
});
mediaPlayer.seekTo(100);
mediaPlayer.deselectTrack(10);
try{
mediaPlayer.prepare();
}catch(IOException e) {
e.printStackTrace();
}
mediaPlayer.start();
如果你要问setonInfoListener是什么意思,对不起我也不知道。不过我们可以看一下API上是怎么说明的。
意思就是当我们的播放器有警告或者信息的时候会回调此方法。同样的seekTo()是什么意思呢?我们看一下API:
这个的意思就是指定我们的播放位置。当然如果要其他功能,也可以查看API进行相应的编写。
注意一个相应的原则,就是你需要什么方法,调用什么方法。如果调用方法缺少相应参数就创建相应参数。
最后一定要说的是。这个东西需要多加练习,然后知道最基本的使用。才能事半功倍。
如有纰漏,尽请批正。谢!
如果你喜欢文摘,恰好你也看了我写的文摘,又恰巧你喜欢专研技术,那么为什么不加入我们那。(QQ群:417487178)欢迎交流。