91嫩草国内在线,韩国理论电影免费看,6969精品视频在线观看,1024在线视频精品免费,色中色污,饭冈佳奈子在线

用戶工具

站點(diǎn)工具


該文檔適用于Cobub Razor 0.7版本。

Android 開(kāi)發(fā)者指南

1 基本設(shè)置指南

1.1 注冊(cè)應(yīng)用,獲取AppKey,下載開(kāi)發(fā)文檔

登陸賬號(hào)后,到管理后臺(tái)注冊(cè)應(yīng)用,填寫(xiě)Android應(yīng)用的相關(guān)信息。App建立成功后,可獲得該App的AppKey以及最新的開(kāi)發(fā)文檔。

1.2 Android SDK使用步驟

1.2.1 導(dǎo)入Cobub的SDK jar包

打開(kāi)下載文件中的sdk\android_sdk目錄, 導(dǎo)入SDK項(xiàng)目到eclipse(或其它IDE),打包生成jar包。

Eclipse用戶右鍵工程根目錄,選擇Properties —>Java Build Path —>libraries,然后點(diǎn)擊Add External JARs…選擇指向上述生成的jar包文件的路徑,點(diǎn)擊OK,即導(dǎo)入成功。

1.2.2 配置AndroidManifest.xml

添加應(yīng)用程序的AppKey(必須) 需要先添加應(yīng)用程序獲得的AppKey,將AppKey添加到AndroidManifest.xml的meta-data里。

(注意:字符串必須為’UMS_APPKEY’)

  • 添加權(quán)限android.permission.INTERNET(必須)

向服務(wù)器發(fā)送用戶的統(tǒng)計(jì)分析數(shù)據(jù)。

  • 添加權(quán)限android.permission.READ_PHONE_STATE(必須)

獲取手機(jī)的相關(guān)狀態(tài)信息

  • 添加權(quán)限android.permission.ACCESS_FINE_LOCATION(必須)

獲取當(dāng)前用戶的位置信息

  • 添加權(quán)限android.permission.ACCESS_WIFI_STATE(必須)

訪問(wèn)Wi-Fi網(wǎng)絡(luò)狀態(tài)信息

  • 添加權(quán)限android.permission.GET_TASKS(必須)

獲取最近運(yùn)行任務(wù)信息

  • 添加權(quán)限android.permission.WRITE_EXTERNAL_STORAGE(必須)

向sdcard讀寫(xiě)文件

  • 添加權(quán)限android.permission.READ_LOGS(必須)

讀取程序產(chǎn)生的錯(cuò)誤日志

  • 添加權(quán)限android.permission.ACCESS_NETWORK_STATE(必須)

訪問(wèn)GSM網(wǎng)絡(luò)信息 AndroidManifest.xml 文件詳細(xì)如下:

   <?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.sdktest"
    android:versionCode="4"
    android:versionName="4.0.2" >
 
    <uses-sdk
        android:minSdkVersion="9"
        android:targetSdkVersion="17" />
	<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
    <uses-permission android:name="android.permission.GET_TASKS"/>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.READ_LOGS"/>
    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
 
    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.example.sdktest.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
 
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
 
         <meta-data android:name="UMS_APPKEY" android:value="填寫(xiě)獲取到的key"/>
    </application>
 
</manifest>

1.2.3 添加代碼

添加引用 import com.wbtech.ums.UmsAgent;

  • 初始化Ums對(duì)象

在Android應(yīng)用的入口Activity的onCreate()方法中調(diào)用UmsAgent.init(Context context, String url)方法,注意這個(gè)方法應(yīng)置于所有其他的方法之前。url為自行安裝的Cobub Razor服務(wù)端地址,注意地址以index.php?結(jié)束,如“http://demo.cobub.com/razor/index.php?”。

  • 獲取用戶ID

在可以獲得用戶唯一標(biāo)識(shí)符的地方(如登錄界面)調(diào)用UmsAgent.bindUserid(Context context, String userID)方法,該方法會(huì)記錄下該標(biāo)示符(如app應(yīng)用的用戶名,手機(jī)號(hào)或郵箱等標(biāo)識(shí)用戶唯一性的id),該函數(shù)會(huì)將設(shè)備與用戶id的關(guān)系發(fā)至服務(wù)端保存。

  • 綁定tag

在可以獲得用戶tag的地方調(diào)用postTags(final Context context, final String tags),將tag數(shù)據(jù)傳至后臺(tái),以后可用來(lái)對(duì)用戶進(jìn)行分類。

  • 注冊(cè)Activity

在Android應(yīng)用的每個(gè)Activity的onResume方法中調(diào)用UmsAgent.onResume(Context),傳入的參數(shù)為當(dāng)前的context引用,這個(gè)方法將會(huì)自動(dòng)地從AndroidManifest.xml文件里讀取AppKey,并記錄下用戶進(jìn)入該頁(yè)面的時(shí)間。不要傳遞全局的application context。

protect void onResume(){
   super.onResume();
   UmsAgent.onResume(this);
}

在Android應(yīng)用的每個(gè)Activity的onPause方法中調(diào)用UmsAgent.onPause(Context),參數(shù)為當(dāng)前activity的context,該方法會(huì)記錄下用戶離開(kāi)該頁(yè)面的時(shí)間。

protected void onPause(){
   super.onPause();
   UmsAgent.onPause(this);
}

在onCreate()調(diào)用UmsAgent.postClientData(Context con)方法,參數(shù)為當(dāng)前上下文對(duì)象,這樣,客戶端數(shù)據(jù)就可以上傳數(shù)據(jù)到服務(wù)器了。

public void onCreate(Bundle savedInstanceState) {
	super.onCreate(savedInstanceState);
	setContentView(R.layout.activity_main);
	UmsAgent.postClientData(this);
}

代碼樣例:

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    button = (Button) findViewById(R.id.button1);
    UmsAgent.init(context,"http://192.168.1.204/UMS/index.php?");
    UmsAgent.update(this);
 
    UmsAgent.setDefaultReportPolicy(this, SendPolicy.REALTIME);
    UmsAgent.bindUserid(this, "cobub");
 
    button.setOnClickListener(new OnClickListener() {
 
       @Override
       public void onClick(View v) {
          // TODO Auto-generated method stub
          UmsAgent.onEvent(MainActivity.this, "eventid");
          UmsAgent.onEvent(MainActivity.this, "event_id", "label", 30.0);
       }
    });
 
}

1.2.4 集成說(shuō)明

建議在Android應(yīng)用的所有的activity中都調(diào)用UmsAgent.onResume()和UmsAgent.onPause()方法。如果在某些activity中不添加也可以,但會(huì)造成相應(yīng)Activity的使用時(shí)間等相關(guān)信息統(tǒng)計(jì)不到。

1.2.5 注意事項(xiàng)

  • AppKey

確認(rèn)AppKey已經(jīng)正確的寫(xiě)入Androidmanifest.xml

  • 權(quán)限

確認(rèn)所需的權(quán)限都已經(jīng)添加

  • API使用

確認(rèn)所有的Activity中都調(diào)用了onResume和onPause方法

  • 聯(lián)網(wǎng)檢查

確認(rèn)測(cè)試手機(jī)或者模擬器已成功連入網(wǎng)絡(luò)

2 高級(jí)基本設(shè)置指南

2.1 錯(cuò)誤報(bào)告

SDK可以幫您捕捉用戶在使用應(yīng)用過(guò)程中出現(xiàn)的異常退出(FC),并將錯(cuò)誤報(bào)告發(fā)送給服務(wù)器,錯(cuò)誤報(bào)告包含應(yīng)用程序版本、操作系統(tǒng)版本和設(shè)備型號(hào)以及程序出現(xiàn)異常時(shí)的Stacktrace,這些數(shù)據(jù)將幫助您調(diào)試應(yīng)用程序的錯(cuò)誤。我們提供兩種方式報(bào)告錯(cuò)誤信息,一種是我們自動(dòng)捕獲的錯(cuò)誤信息,一種是開(kāi)發(fā)者自己傳遞的錯(cuò)誤

前者,您需要在AndroidManifest.xml里面添加權(quán)限android.permission.READ_LOGS,并且在程序的Main Activity(應(yīng)用程序入口)的onCreate方法里調(diào)用UmsAgent.onError(Context)

public void onCreate(Bundle savedInstanceState) {
   super.onCreate(savedInstanceState);
   setContentView(R.layout.activity_main);
   UmsAgent.onError(this);

后者需要開(kāi)發(fā)者調(diào)用UmsAgent.onError(Context,String)方法,在第二個(gè)參數(shù)中傳入自己捕獲的錯(cuò)誤信息。

2.2 自定義事件

除了基本統(tǒng)計(jì)分析功能外,SDK還支持您自定義的事件的統(tǒng)計(jì)分析,例如您可以統(tǒng)計(jì)廣告點(diǎn)擊次數(shù)或者視頻被播放的次數(shù)等等,這里我們將提供幾個(gè)簡(jiǎn)單而通用的接口:

UmsAgent.onEvent(Context context,String event_id)

在您需要發(fā)送事件報(bào)告的代碼段,調(diào)用如下方法就可以向服務(wù)器發(fā)送事件記錄,將統(tǒng)計(jì)event_id對(duì)應(yīng)事件發(fā)送次數(shù),變化趨勢(shì),例如廣告點(diǎn)擊,短信發(fā)送量等等。參數(shù)context為當(dāng)前context的引用,event_id為當(dāng)前統(tǒng)計(jì)事件的ID。

比如,監(jiān)測(cè)應(yīng)用程序里廣告的點(diǎn)擊次數(shù),事件ID為“ad_click”。那么需要在程序里每次廣告點(diǎn)擊時(shí)調(diào)用UmsAgent.onEvent(this,“ad_click“)通知服務(wù)器一個(gè)廣告點(diǎn)擊事件發(fā)生。

UmsAgent.onEvent(Context context,String event_id,String label)

除了能夠統(tǒng)計(jì)event_id所對(duì)應(yīng)事件的發(fā)生次數(shù),變化趨勢(shì)外,還能統(tǒng)計(jì)事件中具體標(biāo)簽所占的比例,label為當(dāng)前標(biāo)簽,同樣這里的event_id字符串中也不能有空格。

例如:在應(yīng)用程序中省份對(duì)應(yīng)一個(gè)event_id,每個(gè)城市對(duì)應(yīng)一個(gè)label,這樣我們可以再生成的統(tǒng)計(jì)表中看到不同城市的比例。

對(duì)于程序中的某些可能被頻繁觸發(fā)的事件,開(kāi)發(fā)者可以再程序中維護(hù)一個(gè)計(jì)數(shù)器,這樣事件被多次觸發(fā)只需要生成一個(gè)消息,這個(gè)消息包括該事件被觸發(fā)的次數(shù),這里我們重載了之前的兩個(gè)接口:

UmsAgent.onEvent(Context context,String event_id,int acc)
UmsAgent.onEvent(Context context,String event_id,String label,int acc)

acc:對(duì)應(yīng)事件被觸發(fā)的次數(shù)。

這里我們除了可以對(duì)某個(gè)事件的發(fā)生次數(shù)統(tǒng)計(jì)外,增加了一個(gè)針對(duì)事件下某一標(biāo)簽的價(jià)值的保存和統(tǒng)計(jì)。重載方法如下:

UmsAgent.onEvent(Context context,String event_id,String label,double value)

例如 event_id代表一個(gè)“下單”事件,那么label可以標(biāo)記為某個(gè)“訂單號(hào)”,而value就為該“訂單號(hào)”的金額(即價(jià)值)。

2.3 調(diào)試

Cobub Android SDK提供了調(diào)試的功能,提供盡可能多的日志信息,以確定可能出現(xiàn)的問(wèn)題。 調(diào)用以下函數(shù),可以打開(kāi)調(diào)試功能,sdk所有上報(bào)的數(shù)據(jù)可以在logcat中顯示。注意:請(qǐng)?jiān)诋a(chǎn)品正式發(fā)布時(shí),關(guān)閉該功能。

UmsAgent.setDebugEnabled(true);

Log的不同等級(jí),可以通過(guò)以下函數(shù)設(shè)置:

UmsAgent.setDebugLevel(UmsAgent.LogLevel);

LogLevel分為Info,Debug,Warn,Error和Verbose。

3 應(yīng)用程序更新

3.1 上傳APK

這個(gè)功能將幫助您把新版的Android應(yīng)用程序推送給用戶,您只需修改AndroidManifest.xml中的VersionCode,并把應(yīng)用程序的apk文件上傳到服務(wù)器。

3.2 添加權(quán)限

android.permission.WRITE_EXTERNAL_STORAGE

3.3 基本功能

在Android應(yīng)用程序的入口Activity的onCreate()方法中調(diào)用UmsAgent.update(this),應(yīng)用程序?qū)⒆詣?dòng)檢測(cè)服務(wù)端是否有新的版本。

public void onCreate(Bundle savedInstanceState) {
   super.onCreate(savedInstanceState);
   setContentView(R.layout.activity_main);
   UmsAgent.update(this);
}

考慮到用戶流量的限制,目前我們默認(rèn)在Wi-Fi介入情況下才進(jìn)行自動(dòng)提醒。

3.4 機(jī)制說(shuō)明

每次更新Android應(yīng)用程序,您只需要修改VersionCode,把Android應(yīng)用程序的apk文件上傳到服務(wù)器。UmsAgent.update()方法會(huì)判斷是否有新版應(yīng)用程序,如果發(fā)現(xiàn)可更新的應(yīng)用程序安裝包,會(huì)提示用戶是否更新。用戶選擇更新后,安裝包會(huì)下載安裝更新。(按照version code來(lái)檢測(cè)是否需要更新)

4 數(shù)據(jù)發(fā)送

4.1 模式解釋

  • 啟動(dòng)時(shí)發(fā)送

應(yīng)用程序每次只會(huì)在啟動(dòng)時(shí)向服務(wù)器發(fā)送一次消息,在應(yīng)用程序過(guò)程中產(chǎn)生的所有消息都會(huì)在下次啟動(dòng)時(shí)候發(fā)送。如果應(yīng)用程序啟動(dòng)時(shí)處在不聯(lián)網(wǎng)狀態(tài),那么消息將會(huì)緩存在本地,下次再嘗試發(fā)送。

  • 實(shí)時(shí)發(fā)送(推薦使用)

應(yīng)用程序每產(chǎn)生條消息時(shí),就立即發(fā)送到服務(wù)器。這種方式使得計(jì)算更及時(shí)

4.2 設(shè)置發(fā)送模式

在Android應(yīng)用程序的入口Activity中調(diào)用UmsAgent.setDefaultReportPolicy(Context,int),參數(shù)int可取值0或者1,其中1表示實(shí)時(shí)發(fā)送,0表示啟動(dòng)時(shí)發(fā)送。

5 使用在線配置功能

UmsAgent.updateOnlineConfig(Context)

在Android應(yīng)用程序的入口Activity的onCreate()方法中調(diào)用。SDK將聯(lián)網(wǎng)檢測(cè)您的在線配置,將這些信息保存在本地。你也可以通過(guò)下面的方法讀取您的自定義參數(shù)。

razor/android-developer-guide.txt · 最后更改: 2017/07/14 11:18 (外部編輯)