喜马拉雅项目专题篇
android开发喜马拉雅项目专题篇
有了前面的知识,我们已经可以开发一个小项目了,接下来的篇目中,我们开发一个喜马拉雅的项目。
学习中遇到问题可以到这里提问
同学们可以学习到什么呢?
一个项目的流程,里面的一些控件,使用第三方的sdk。
设备要求
手机:最好有物理手机不用模拟器开发,因为里面的so库跟平台有关系,如果用arm模拟器的话,速度会比较慢。
电脑:开发这么久了,没什么要求了,配置高一点就好
开发流程
研发人员需要参与的过程有:
产品设计阶段的技术预研:这个阶段,产品经理为了达到目的实现功能,需要开发人员的帮助,去验证,或者去研究一些技术功能。
编码过程:编码的话这个套不掉啦,这个部分其实还可以细分的呢。比如说,设计–>讨论—>编码—>reviewCode。
解bug:自己挖的坑,那肯定得自己填一下。
集成喜马拉雅的SDK
我们想要获取到喜马拉雅的内容,那么就要集成喜马拉雅的sdk,这样子才可以请求到喜马拉雅的内容。
创建项目
这个不多说了,同学们都会创建项目的了吧!都学习到今天啦!
下载喜马拉雅的sdk
喜马拉雅的开发者网站地址:open.ximalaya.com
不用创建应用。因为创建以后,创建应用是要提交营业执照的,但是不影响我们的开发。
我们很有必要把里面的demo跑来。
前面我们说了,没有开发密钥和应用id怎么办呢?我们用的是demo里的密钥和appKey
跑起喜马拉雅demo
这里面有个demo,我们用Android studio打开
把demo跑起来以后,就跟上面一样了。
为什么我要让大家把demo跑起来呢?
demo的代码是开源的,我们可以阅读api的使用方法,另外一个就是可以使用里面的密钥和appID
以上这些内容,我们后面配置我们的项目用得上。
复制代码,拷贝jar包,so库咯
创建一个Application类,继承自Application,不要忘记配置AndroidManifest.xml文件,配置一个Application,否则是起不来了。
配置权限
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"/>
然后呢复制相关的库
把下载到的库文件复制到项目的lib里面,如上。
修改gradle文件,告诉gradle构建系统我们的jnilib在哪里。
sourceSets {
main {
jniLibs.srcDirs = ['libs']
}
}
添加到android节点下面,如图:
怎么判断是否有配置成功呢?
两个方面
1、结构如图:
2、写程序程序发起请求吧!
测试SDK配置 我们配置完以后,需要测试一下配置是否有问题,最简单的方法,就是去请求一下喜马拉雅的数据。
以上的步骤,都是结合文档去操作的,这个文档是我们下载的发文档里的:
喜马拉雅SDK接入文档.html
这里我们举个例子,去获取喜马拉雅的所有分类:
package com.sunofbeaches.himalaya;
import android.app.Activity;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.util.Log;
import com.ximalaya.ting.android.opensdk.datatrasfer.CommonRequest;
import com.ximalaya.ting.android.opensdk.datatrasfer.IDataCallBack;
import com.ximalaya.ting.android.opensdk.model.category.Category;
import com.ximalaya.ting.android.opensdk.model.category.CategoryList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class TestActivity extends Activity {
private static final String TAG = "TestActivity";
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Map<String, String> map = new HashMap<>();
CommonRequest.getCategories(map, new IDataCallBack<CategoryList>() {
@Override
public void onSuccess(@Nullable CategoryList categoryList) {
List<Category> categories = categoryList.getCategories();
if (categories != null) {
for (Category category : categories) {
Log.d(TAG, "category -- > " + category.getCategoryName());
}
}
}
@Override
public void onError(int i, String s) {
Log.d(TAG, "error code is -- > " + i + " error msg -- >" + s);
}
});
}
}
把这个Activity配置成启动的Activity,然后运行起来,结果如下:
说明我们已经配置成功了,可以跟喜马拉雅的服务器通讯了。
集中精力到喜马拉雅项目的开发上 完成了前面的配置,我们已经可以请求到喜马拉雅服务器的数据了,接下来就按我们的交互去开发了。
这里我没有做交互,我直接做了效果图
其实整个喜马拉雅分成,几大模块去写即可: