android开发喜马拉雅项目专题篇

# android开发喜马拉雅项目专题篇

有了前面的知识,我们已经可以开发一个小项目了,接下来的篇目中,我们开发一个喜马拉雅的项目。

学习中遇到问题可以到这里提问 (opens new window)

同学们可以学习到什么呢?

一个项目的流程,里面的一些控件,使用第三方的sdk。

# 设备要求

手机:最好有物理手机不用模拟器开发,因为里面的so库跟平台有关系,如果用arm模拟器的话,速度会比较慢。

电脑:开发这么久了,没什么要求了,配置高一点就好

# 开发流程

20181010_154753.png

研发人员需要参与的过程有:

产品设计阶段的技术预研:这个阶段,产品经理为了达到目的实现功能,需要开发人员的帮助,去验证,或者去研究一些技术功能。

编码过程:编码的话这个套不掉啦,这个部分其实还可以细分的呢。比如说,设计–>讨论—>编码—>reviewCode。

解bug:自己挖的坑,那肯定得自己填一下。

集成喜马拉雅的SDK

我们想要获取到喜马拉雅的内容,那么就要集成喜马拉雅的sdk,这样子才可以请求到喜马拉雅的内容。

创建项目

这个不多说了,同学们都会创建项目的了吧!都学习到今天啦!

下载喜马拉雅的sdk

喜马拉雅的开发者网站地址:open.ximalaya.com

不用创建应用。因为创建以后,创建应用是要提交营业执照的,但是不影响我们的开发。

20181010_173357.png

20181010_173456.png

我们很有必要把里面的demo跑来。

前面我们说了,没有开发密钥和应用id怎么办呢?我们用的是demo里的密钥和appKey

# 跑起喜马拉雅demo

这里面有个demo,我们用Android studio打开

screenshot1539165547163.jpg

把demo跑起来以后,就跟上面一样了。

为什么我要让大家把demo跑起来呢?

demo的代码是开源的,我们可以阅读api的使用方法,另外一个就是可以使用里面的密钥和appID

20181010_180054.png

20181010_180133.png

以上这些内容,我们后面配置我们的项目用得上。

复制代码,拷贝jar包,so库咯

20181010_181033.png

创建一个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"/>
1
2
3
4
5

然后呢复制相关的库

20181010_193411.png

把下载到的库文件复制到项目的lib里面,如上。

修改gradle文件,告诉gradle构建系统我们的jnilib在哪里。

    sourceSets {
        main {
            jniLibs.srcDirs = ['libs']
        }
    }
1
2
3
4
5

添加到android节点下面,如图:

20181010_193534.png

怎么判断是否有配置成功呢?

两个方面

1、结构如图:

20181010_193620.png

2、写程序程序发起请求吧!

测试SDK配置 我们配置完以后,需要测试一下配置是否有问题,最简单的方法,就是去请求一下喜马拉雅的数据。

以上的步骤,都是结合文档去操作的,这个文档是我们下载的发文档里的:

喜马拉雅SDK接入文档.html

这里我们举个例子,去获取喜马拉雅的所有分类:

20181010_193914.png

20181010_193914.png

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);
            }
        });
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43

把这个Activity配置成启动的Activity,然后运行起来,结果如下:

20181010_194520.png

说明我们已经配置成功了,可以跟喜马拉雅的服务器通讯了。

集中精力到喜马拉雅项目的开发上 完成了前面的配置,我们已经可以请求到喜马拉雅服务器的数据了,接下来就按我们的交互去开发了。

这里我没有做交互,我直接做了效果图

20181010_201834.png

其实整个喜马拉雅分成,几大模块去写即可:

20181010_202437.png

上次更新: 2021/09/16, 17:42:02