这里会显示出您选择的修订版和当前版本之间的差别。
两侧同时换到之前的修订记录 前一修订版 后一修订版 | 前一修订版 | ||
razor:android-developer-guide [2015/03/20 14:53] cobub [3.2 自定义事件] |
razor:android-developer-guide [2017/07/14 11:18] (当前版本) |
||
---|---|---|---|
行 1: | 行 1: | ||
+ | ~~Title:Android 开发者指南 - 开源移动应用运营平台 - 移动统计、移动推送解决方案 - Cobub 移动开发者中心~~ | ||
+ | {{description>Android 开发者指南}} | ||
+ | {{keywords>Cobub Razor,开源移动应用分析,移动分析,移动应用分析,开发者指南,android}} | ||
+ | ====== Android 开发者指南 ====== | ||
行 4: | 行 8: | ||
===== 1.1 注册应用,获取AppKey,下载开发文档 ===== | ===== 1.1 注册应用,获取AppKey,下载开发文档 ===== | ||
- | |||
登陆账号后,到管理后台注册应用,填写Android应用的相关信息。App建立成功后,可获得该App的AppKey以及最新的开发文档。 | 登陆账号后,到管理后台注册应用,填写Android应用的相关信息。App建立成功后,可获得该App的AppKey以及最新的开发文档。 | ||
===== 1.2 Android SDK使用步骤 ===== | ===== 1.2 Android SDK使用步骤 ===== | ||
- | ==== 1.2.1 导入com.wbkit1.0.jar(简称SDK) ==== | + | ==== 1.2.1 导入Cobub的SDK jar包 ==== |
- | 打开放在服务端的android_sdk, 导入android_sdk到eclipse,打包生成的bin\classes下com文件夹为com.wbkit1.0.jar。 | + | 打开下载文件中的sdk\android_sdk目录, 导入SDK项目到eclipse(或其它IDE),打包生成jar包。 |
- | Eclipse用户右键工程根目录,选择Properties —>Java Build Path —>libraries,然后点击Add External JARs…选择指向 com.wbkit1.0.jar的路径,点击OK,即导入成功。 | + | Eclipse用户右键工程根目录,选择Properties —>Java Build Path —>libraries,然后点击Add External JARs…选择指向上述生成的jar包文件的路径,点击OK,即导入成功。 |
==== 1.2.2 配置AndroidManifest.xml ==== | ==== 1.2.2 配置AndroidManifest.xml ==== | ||
行 89: | 行 91: | ||
**import com.wbtech.ums.UmsAgent;** | **import com.wbtech.ums.UmsAgent;** | ||
- | * 设置服务器URL | + | * 初始化Ums对象 |
- | 在Android应用的入口Activity的onCreate()方法中调用UmsAgent.setBaseURL(String url)方法,注意这个方法应置于所有其他的方法之前。 | + | 在Android应用的入口Activity的onCreate()方法中调用UmsAgent.init(Context context, String url)方法,**注意这个方法应置于所有其他的方法之前**。url为自行安装的Cobub Razor服务端地址,注意地址以index.php?结束,如"http://demo.cobub.com/razor/index.php?"。 |
* 获取用户ID | * 获取用户ID | ||
- | 在可以获得用户唯一标识符的地方调用UmsAgent.bindUserIdentifier(String userID)方法,该方法会记录下该标示 符,以确定某一用户在使用该应用。该方法后需要调用UmsAgent.postClientData(Context con)方法(稍后介绍)才能将 数据上传至服务器,否则只在本地保存该用户的标示符记录。 | + | 在可以获得用户唯一标识符的地方(如登录界面)调用UmsAgent.bindUserid(Context context, String userID)方法,该方法会记录下该标示符(如app应用的用户名,手机号或邮箱等标识用户唯一性的id),该函数会将设备与用户id的关系发至服务端保存。 |
* 绑定tag | * 绑定tag | ||
行 129: | 行 131: | ||
setContentView(R.layout.activity_main); | setContentView(R.layout.activity_main); | ||
button = (Button) findViewById(R.id.button1); | button = (Button) findViewById(R.id.button1); | ||
- | UmsAgent.setBaseURL("http://192.168.1.204/UMS/index.php?"); | + | UmsAgent.init(context,"http://192.168.1.204/UMS/index.php?"); |
UmsAgent.update(this); | UmsAgent.update(this); | ||
- | UmsAgent.onError(this); | + | |
- | UmsAgent.setDefaultReportPolicy(this, 1); | + | UmsAgent.setDefaultReportPolicy(this, SendPolicy.REALTIME); |
- | UmsAgent.bindUserIdentifier(this, "xd.."); | + | UmsAgent.bindUserid(this, "cobub"); |
- | UmsAgent.postClientData(this); | + | |
button.setOnClickListener(new OnClickListener() { | button.setOnClickListener(new OnClickListener() { | ||
行 152: | 行 154: | ||
==== 1.2.5 注意事项 ==== | ==== 1.2.5 注意事项 ==== | ||
- | |||
* AppKey | * AppKey | ||
行 169: | 行 170: | ||
===== 2.1 错误报告 ===== | ===== 2.1 错误报告 ===== | ||
- | |||
SDK可以帮您捕捉用户在使用应用过程中出现的异常退出(FC),并将错误报告发送给服务器,错误报告包含应用程序版本、操作系统版本和设备型号以及程序出现异常时的Stacktrace,这些数据将帮助您调试应用程序的错误。我们提供两种方式报告错误信息,一种是我们自动捕获的错误信息,一种是开发者自己传递的错误 | SDK可以帮您捕捉用户在使用应用过程中出现的异常退出(FC),并将错误报告发送给服务器,错误报告包含应用程序版本、操作系统版本和设备型号以及程序出现异常时的Stacktrace,这些数据将帮助您调试应用程序的错误。我们提供两种方式报告错误信息,一种是我们自动捕获的错误信息,一种是开发者自己传递的错误 | ||
行 184: | 行 184: | ||
===== 2.2 自定义事件 ===== | ===== 2.2 自定义事件 ===== | ||
- | |||
除了基本统计分析功能外,SDK还支持您自定义的事件的统计分析,例如您可以统计广告点击次数或者视频被播放的次数等等,这里我们将提供几个简单而通用的接口: | 除了基本统计分析功能外,SDK还支持您自定义的事件的统计分析,例如您可以统计广告点击次数或者视频被播放的次数等等,这里我们将提供几个简单而通用的接口: | ||
行 209: | 行 208: | ||
UmsAgent.onEvent(Context context,String event_id,String label,double value)</code> | UmsAgent.onEvent(Context context,String event_id,String label,double value)</code> | ||
例如 event_id代表一个“下单”事件,那么label可以标记为某个“订单号”,而value就为该“订单号”的金额(即价值)。 | 例如 event_id代表一个“下单”事件,那么label可以标记为某个“订单号”,而value就为该“订单号”的金额(即价值)。 | ||
- | ===== 3.3 分发渠道分析 ===== | ||
+ | ===== 2.3 调试 ===== | ||
- | 不同的发布渠道,对应着不同的appkey,统计结果可以使您很好的了解有多少用户从联想乐园或者Google android market 下载到您的应用程序。 | + | Cobub Android SDK提供了调试的功能,提供尽可能多的日志信息,以确定可能出现的问题。 |
+ | 调用以下函数,可以打开调试功能,sdk所有上报的数据可以在logcat中显示。**注意:请在产品正式发布时,关闭该功能。** | ||
+ | <code java> | ||
+ | UmsAgent.setDebugEnabled(true); | ||
+ | </code> | ||
- | ====== 4 应用程序更新 ====== | + | Log的不同等级,可以通过以下函数设置: |
+ | <code java> | ||
+ | UmsAgent.setDebugLevel(UmsAgent.LogLevel); | ||
+ | </code> | ||
+ | LogLevel分为Info,Debug,Warn,Error和Verbose。 | ||
- | ===== 4.1 上传APK ===== | + | ====== 3 应用程序更新 ====== |
+ | ===== 3.1 上传APK ===== | ||
这个功能将帮助您把新版的Android应用程序推送给用户,您只需修改AndroidManifest.xml中的VersionCode,并把应用程序的apk文件上传到服务器。 | 这个功能将帮助您把新版的Android应用程序推送给用户,您只需修改AndroidManifest.xml中的VersionCode,并把应用程序的apk文件上传到服务器。 | ||
- | ===== 4.2 添加权限 ===== | + | ===== 3.2 添加权限 ===== |
**android.permission.WRITE_EXTERNAL_STORAGE** | **android.permission.WRITE_EXTERNAL_STORAGE** | ||
- | ===== 4.3 基本功能 ===== | + | ===== 3.3 基本功能 ===== |
在Android应用程序的入口Activity的onCreate()方法中调用**UmsAgent.update(this)**,应用程序将自动检测服务端是否有新的版本。 | 在Android应用程序的入口Activity的onCreate()方法中调用**UmsAgent.update(this)**,应用程序将自动检测服务端是否有新的版本。 | ||
- | <code> | + | <code java> |
public void onCreate(Bundle savedInstanceState) { | public void onCreate(Bundle savedInstanceState) { | ||
super.onCreate(savedInstanceState); | super.onCreate(savedInstanceState); | ||
行 236: | 行 243: | ||
</code> | </code> | ||
考虑到用户流量的限制,目前我们默认在Wi-Fi介入情况下才进行自动提醒。 | 考虑到用户流量的限制,目前我们默认在Wi-Fi介入情况下才进行自动提醒。 | ||
- | ===== 4.4 机制说明 ===== | + | ===== 3.4 机制说明 ===== |
每次更新Android应用程序,您只需要修改VersionCode,把Android应用程序的apk文件上传到服务器。UmsAgent.update()方法会判断是否有新版应用程序,如果发现可更新的应用程序安装包,会提示用户是否更新。用户选择更新后,安装包会下载安装更新。(按照version code来检测是否需要更新) | 每次更新Android应用程序,您只需要修改VersionCode,把Android应用程序的apk文件上传到服务器。UmsAgent.update()方法会判断是否有新版应用程序,如果发现可更新的应用程序安装包,会提示用户是否更新。用户选择更新后,安装包会下载安装更新。(按照version code来检测是否需要更新) | ||
+ | ====== 4 数据发送 ====== | ||
- | ====== 5 数据发送 ====== | + | ===== 4.1 模式解释 ===== |
- | ===== 5.1 模式解释 ===== | + | * 启动时发送 |
- | + | ||
- | + | ||
- | * 启动时发送(推荐使用) | + | |
应用程序每次只会在启动时向服务器发送一次消息,在应用程序过程中产生的所有消息都会在下次启动时候发送。如果应用程序启动时处在不联网状态,那么消息将会缓存在本地,下次再尝试发送。 | 应用程序每次只会在启动时向服务器发送一次消息,在应用程序过程中产生的所有消息都会在下次启动时候发送。如果应用程序启动时处在不联网状态,那么消息将会缓存在本地,下次再尝试发送。 | ||
- | * 实时发送 | + | * 实时发送(推荐使用) |
- | 应用程序每产生条消息时,就立即发送到服务器 | + | 应用程序每产生条消息时,就立即发送到服务器。这种方式使得计算更及时 |
- | ===== 5.2 设置发送模式 ===== | + | ===== 4.2 设置发送模式 ===== |
在Android应用程序的入口Activity中调用**UmsAgent.setDefaultReportPolicy(Context,int)**,参数int可取值0或者1,其中1表示实时发送,0表示启动时发送。 | 在Android应用程序的入口Activity中调用**UmsAgent.setDefaultReportPolicy(Context,int)**,参数int可取值0或者1,其中1表示实时发送,0表示启动时发送。 | ||
- | + | ====== 5 使用在线配置功能 ====== | |
- | ====== 6 使用在线配置功能 ====== | + | <code java> |
- | <code> | + | |
UmsAgent.updateOnlineConfig(Context)</code> | UmsAgent.updateOnlineConfig(Context)</code> | ||
在Android应用程序的入口Activity的onCreate()方法中调用。SDK将联网检测您的在线配置,将这些信息保存在本地。你也可以通过下面的方法读取您的自定义参数。 | 在Android应用程序的入口Activity的onCreate()方法中调用。SDK将联网检测您的在线配置,将这些信息保存在本地。你也可以通过下面的方法读取您的自定义参数。 | ||
- | |||
- | **UmsAgent.updateOnlineConfig(Context context,String key)** 其中key为在网站上编辑好的key,返回值是对应的value ,如果没有读到相应的value将返回空字符串。 |