# countly-sdk-ohos **Repository Path**: chinasoft2_ohos/countly-sdk-ohos ## Basic Information - **Project Name**: countly-sdk-ohos - **Description**: 行为日志收集和性能分析 - **Primary Language**: Java - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 3 - **Forks**: 2 - **Created**: 2021-04-22 - **Last Updated**: 2024-07-15 ## Categories & Tags **Categories**: harmonyos-devtools **Tags**: None ## README # countly-sdk-ohos #### 项目介绍 - 项目名称:countly-sdk-ohos - 所属系列:openharmony 第三方组件适配移植 - 功能:产品分析解决方案,跟踪产品性能、用户行为 - 项目移植状态:主功能完成 - 调用差异:无 - 开发版本:sdk6,DevEco Studio2.2 beta1 - 基线版本:Release 20.11.8 #### 效果演示 ohos-sample-app #### 安装教程 在moudle级别下的build.gradle文件中添加依赖 ``` // 添加maven仓库 repositories { maven { url 'https://s01.oss.sonatype.org/content/repositories/releases/' } } // 添加依赖库 dependencies { implementation 'com.gitee.chinasoft_ohos:countly-sdk-ohos:1.0.0' } ``` 在sdk6,DevEco Studio2.2 beta1下项目可直接运行 如无法运行,删除项目.gradle,.idea,build,gradle,build.gradle文件, 并依据自己的版本创建新项目,将新项目的对应文件复制到根目录下 #### 使用说明 ``` 在你使用任何功能之前,你必须初始化SDK,在AbilityPackage的子类中或者MainAbility的onStart方法中完成其初始化工作 最小设置 启动SDK的最短方法是使用以下调用: Countly.sharedInstance().init(new CountlyConfig(this, COUNTLY_APP_KEY, COUNTLY_SERVER_URL)); 在这里,您可以提供ohos上下文、appKey和Countly服务器URL。 要在初始化期间配置SDK,需要使用名为“CountlyConfig”的配置对象。配置是通过创建这样一个对象,然后调用它提供的函数调用来实现所需的功能。之后,配置对象被提供给“init”方法。 提供应用程序密钥 也称为“appKey”作为速记。应用程序密钥用于标识跟踪此信息的应用程序。通过在Countly仪表板中创建一个新的应用程序并在其应用程序管理屏幕中访问它,您可以获得这个值。 注意:请确保您使用的是应用程序密钥(位于“管理”->“应用程序”下),而不是API密钥。输入API密钥将不起作用。 提供服务器URL 如果您使用Countly Enterprise Edition试用服务器,请使用https://try.count.ly, https://us-try.count.ly or https://asia-try.count.ly It 基本上就是您访问试用版仪表板的域。 如果您同时使用社区版和企业版,请使用您自己的域名或IP地址,例如https://example.com or https://IP (如果已设置SSL)。 SDK日志记录 在集成我们的SDK时,您应该做的第一件事是启用日志记录。如果启用了日志记录,那么我们的SDK将打印出关于其内部状态和遇到问题的调试消息。这些消息可以在logcat中进行筛选,并且可以使用ohos内部日志调用。 在config类上调用setLoggingEnabled以启用日志记录: CountlyConfig config = (new CountlyConfig(appC, COUNTLY_APP_KEY, COUNTLY_SERVER_URL)); config.setLoggingEnabled(true); 设备ID 所有跟踪信息都与“设备ID”绑定。设备ID是用户的唯一标识符。 首先需要确定的一点是使用哪种设备ID生成策略。以下定义了几个选项: 最简单的方法是让Countly SDK自己无缝地处理设备ID。然后,您可以使用以下调用。它将使用默认策略,它当前是OpenUDID(不要忘记完成OpenUDID的设置,如下所述)。 CountlyConfig config = (new CountlyConfig(appC, COUNTLY_APP_KEY, COUNTLY_SERVER_URL)); Countly.sharedInstance().init(config); 如果有设备ID,您可以自己指定设备ID(每个设备的ID必须是唯一的)。它可能是电子邮件或其他系统使用的内部ID。 CountlyConfig config = (new CountlyConfig(appC, COUNTLY_APP_KEY, COUNTLY_SERVER_URL)); config.setDeviceId("YOUR_DEVICE_ID"); Countly.sharedInstance().init(config); 您可以使用Google广告ID生成设备ID。 CountlyConfig config = (new CountlyConfig(appC, COUNTLY_APP_KEY, COUNTLY_SERVER_URL)); config.setIdMode(DeviceId.Type.ADVERTISING_ID); Countly.sharedInstance().init(config); 关于Google广告ID,请确保您的项目中包含了Google Play services 4.0+功能。另外,注意,当Google Play服务在设备上不可用时,广告ID会悄悄地返回到OpenUDID,以防它无法获取广告ID。 也可以显式使用OpenUDID: CountlyConfig config = (new CountlyConfig(appC, COUNTLY_APP_KEY, COUNTLY_SERVER_URL)); config.setIdMode(DeviceId.Type.OPEN_UDID); Countly.sharedInstance().init(config); 添加回调 在Countly.sharedInstance().init(…)调用之后,需要将以下调用添加到所有活动中: 在onStart中调用Countly.sharedInstance().onStart(this),这是指向当前活动的链接。 在onStop中调用Countly.sharedInstance().onStop()。 如果要跟踪方向更改,请在onConfigurationChanged中调用Countly.sharedInstance().onConfigurationChanged(newConfig)。 如果未添加“onStart”和“onStop”调用,则某些功能将不起作用,例如自动会话将不会被跟踪。Countly“onStart”必须在abilities“onStart”函数中调用,不能在任何其他地方调用,否则应用程序将收到异常。 必需的应用程序权限 此外,如果清单文件中没有任何权限,请确保已设置INTERNET和访问\网络\状态权限。这些调用应该是这样的: "reqPermissions": [ { "name": "ohos.permission.INTERNET" }, { "name": "ohos.permission.GET_NETWORK_INFO" } ] 事故报告 countly sdk for ohos能够收集崩溃报告,您可以稍后在服务器上检查并解决这些报告。 启用自动崩溃报告 要启用自动崩溃报告,请对config对象调用以下函数。在init之后,这将启用崩溃报告,它将自动捕获未捕获的Java异常。一旦再次启动应用程序并启动SDK,它们将被发送到仪表板。 config.enableCrashReporting(); 向崩溃报告中添加自定义键值段 您可以向崩溃报告中添加键/值段。例如,您可以设置在应用程序中使用的特定库或框架版本。然后,您可以找出特定库或其他段与崩溃报告之间是否存在任何关联。 为此,请使用以下功能: config.setCustomCrashSegment(Map segments) 访问与崩溃相关的功能 在SDK中,可以从返回的界面浏览所有与崩溃相关的功能: Countly.sharedInstance().crashes() 添加 breadcrumb 在整个应用程序中,您可以留下崩溃breadcrumb,这些breadcrumb将描述崩溃前在您的应用程序中采取的步骤。事故发生后,它们将与事故报告一起发送。 以下命令将添加crash breadcrumb: Countly.sharedInstance().crashes().addCrashBreadcrumb(String record) ``` #### 测试信息 CodeCheck代码测试无异常 CloudTest代码测试无异常 病毒安全检测通过 当前版本demo功能与原组件基本无差异 #### 版本迭代 - 1.0.0