所有文档

          百度日志服务 BLS

          Android SDK

          简介

          本文档主要介绍百度云日志服务 Android SDK 的安装和使用。

          本文档假设您已经开通了百度智能云日志服务。

          如果您还没有开通或者还不了解日志服务,请登录 日志服务产品主页 获取更多的帮助。

          环境要求

          • Android 系统版本:2.3 及以上
          • 必须注册有百度智能云用户账户,并开通日志服务

          安装 SDK 包

          日志服务 Android SDK 依赖于 OKhttp,gson。

          安装步骤

          1. 在官方网站下载 SDK 压缩包
          2. 解压得到 jar 包。目前 jar 包应该包含三个文件,分别是:bls-android-sdk-1.0.X.jar、okhttp-3.x.x.jar 和 gson-2.x.x.jar。
          3. 将 jar 包复制到您的 Android 工程的 lib (libs) 目录下。
          4. 在 Eclipse 右键工程 ->Properties->Java Build Path->Add JARs,导入您刚才复制的 jar 包。在 Android Studio 右键项目 ->Open Module Settings-> 选择项目模块 ->Dependencies->+,选择 File dependency,在 lib (libs) 目录下选择复制的 jar 包就可以完成导入。

          配置权限

          以下是日志服务 Android SDK 所需要的 Android 权限,请确保您的工程中 AndroidManifest.xml 文件中已经配置了如下权限,否则,SDK 将无法正常运行。

          <uses-permission android:name="android.permission.INTERNET"/>
          <uses-permission android:name="android.permission.READ_PHONE_STATE"/>
          <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
          <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
          <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

          SDK 目录结构

          com.baidubce
                 ├── auth                                        // BCE 签名相关类
                 ├── http                                        // BCE 的 Http 通信相关类
                 ├── internal                                    // SDK 内部类
                 ├── model                                       // BCE 公用 model 类
                 ├── services
                 │       └── bls                                
                 │           ├── request                         // BLS 内部 model,如 Request 或 Response
                 │           ├── BlsClient.class                 // BLS 客户端入口类
                 │           └── BlsClientConfiguration.class    // 针对 BLS 特有的 HttpClient 的配置
                 ├── util                                        // BCE 公用工具类
                 ├── BceClientConfiguration.class                // 对 BCE 的 HttpClient 的配置
                 ├── BceClientException.class                    // BCE 客户端的异常类
                 ├── BceServiceException.class                   // 与 BCE 服务端交互后的异常类
                 ├── ErrorCode.class                             // BCE 通用的错误码
                 └── Region.class                                // BCE 提供服务的区域

          快速入门

          以下演示了上传 log 的基本流程。

          (1)初始化 BlsClient,可查看 MainActivity 中 init () 方法。

              // 所有的 API 通过 AK(Access Key ID)/SK(Secret Access Key)完成请求签名以通过服务端的鉴权和认证
              String ak = "***";
              String sk = "***";
              // 设置鉴权
              DefaultBceCredentials stsCredentials = new DefaultBceCredentials(ak, sk);
              // 配置信息
              LogClientConfiguration blsConfig = new LogClientConfiguration();
              blsConfig.setCredentials(stsCredentials);
              // 设置 endpoint
              blsConfig.setEndpoint(BLS_ENDPOINT);
              // 设置重试最大次数,每次重试的延迟时间
              blsConfig.setRetryPolicy(new DefaultRetryPolicy(RETRY_MAX, RETRY_DELAY));
              // 设置超时时长
              blsConfig.withSocketTimeoutInMillis(DEFAULT_TIMEOUT_IN_MILLIS);
              // 初始化 client
              logClient = new BlsClient(blsConfig);

          (2)初始化日志,然后用 client 进行上传,可查看 MainActivity 中 pushLog (View view) 方法。

              //logstore name,,用户自行设置
              String logStoreName = createdLogStoreName;
              
              //logstream name ,用户自行设置
              String logStreamName = Settings.System.getString(MainActivity.this.getContentResolver(),Settings.System.ANDROID_ID);
              // 设置日志结构
              List<LogRecord> logRecordList = new ArrayList<LogRecord>();
              LogRecord record = new LogRecord();
              record.setMessage("this is log.");
              record.setTimestamp(System.currentTimeMillis());
              logRecordList.add(record);
              // 上传日志请求
              PushLogRequest pushLogRequest = new PushLogRequest(logStoreName, logStreamName, logRecordList);
              PushLogResponse response = logClient.pushLog(pushLogRequest);
              boolean isSuccess = response.getHttpResponse().getStatusCode() == StatusCodes.HTTP_OK;
              Log.e("main", "push log result: " + isSuccess);
          上一篇
          iOS SDK
          下一篇
          常见问题