這里會顯示出您選擇的修訂版和當前版本之間的差別。
兩側(cè)同時換到之前的修訂記錄 前一修訂版 后一修訂版 | 前一修訂版 | ||
razor:android-developer-guide [2015/03/20 14:55] cobub [6 使用在線配置功能] |
razor:android-developer-guide [2017/07/14 11:18] (當前版本) |
||
---|---|---|---|
行 1: | 行 1: | ||
+ | ~~Title:Android 開發(fā)者指南 - 開源移動應(yīng)用運營平臺 - 移動統(tǒng)計、移動推送解決方案 - Cobub 移動開發(fā)者中心~~ | ||
+ | {{description>Android 開發(fā)者指南}} | ||
+ | {{keywords>Cobub Razor,開源移動應(yīng)用分析,移動分析,移動應(yīng)用分析,開發(fā)者指南,android}} | ||
+ | ====== Android 開發(fā)者指南 ====== | ||
行 4: | 行 8: | ||
===== 1.1 注冊應(yīng)用,獲取AppKey,下載開發(fā)文檔 ===== | ===== 1.1 注冊應(yīng)用,獲取AppKey,下載開發(fā)文檔 ===== | ||
- | |||
登陸賬號后,到管理后臺注冊應(yīng)用,填寫Android應(yīng)用的相關(guān)信息。App建立成功后,可獲得該App的AppKey以及最新的開發(fā)文檔。 | 登陸賬號后,到管理后臺注冊應(yīng)用,填寫Android應(yīng)用的相關(guān)信息。App建立成功后,可獲得該App的AppKey以及最新的開發(fā)文檔。 | ||
===== 1.2 Android SDK使用步驟 ===== | ===== 1.2 Android SDK使用步驟 ===== | ||
- | ==== 1.2.1 導入com.wbkit1.0.jar(簡稱SDK) ====? | + | ==== 1.2.1 導入Cobub的SDK jar包 ==== |
- | 打開放在服務(wù)端的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;** | ||
- | * 設(shè)置服務(wù)器URL? | + | * 初始化Ums對象? |
- | 在Android應(yīng)用的入口Activity的onCreate()方法中調(diào)用UmsAgent.setBaseURL(String url)方法,注意這個方法應(yīng)置于所有其他的方法之前。 | + | 在Android應(yīng)用的入口Activity的onCreate()方法中調(diào)用UmsAgent.init(Context context, String url)方法,**注意這個方法應(yīng)置于所有其他的方法之前**。url為自行安裝的Cobub Razor服務(wù)端地址,注意地址以index.php?結(jié)束,如"http://demo.cobub.com/razor/index.php?"。 |
* 獲取用戶ID | * 獲取用戶ID | ||
- | 在可以獲得用戶唯一標識符的地方調(diào)用UmsAgent.bindUserIdentifier(String userID)方法,該方法會記錄下該標示 符,以確定某一用戶在使用該應(yīng)用。該方法后需要調(diào)用UmsAgent.postClientData(Context con)方法(稍后介紹)才能將 數(shù)據(jù)上傳至服務(wù)器,否則只在本地保存該用戶的標示符記錄。 | + | 在可以獲得用戶唯一標識符的地方(如登錄界面)調(diào)用UmsAgent.bindUserid(Context context, String userID)方法,該方法會記錄下該標示符(如app應(yīng)用的用戶名,手機號或郵箱等標識用戶唯一性的id),該函數(shù)會將設(shè)備與用戶id的關(guān)系發(fā)至服務(wù)端保存。 |
* 綁定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可以幫您捕捉用戶在使用應(yīng)用過程中出現(xiàn)的異常退出(FC),并將錯誤報告發(fā)送給服務(wù)器,錯誤報告包含應(yīng)用程序版本、操作系統(tǒng)版本和設(shè)備型號以及程序出現(xiàn)異常時的Stacktrace,這些數(shù)據(jù)將幫助您調(diào)試應(yīng)用程序的錯誤。我們提供兩種方式報告錯誤信息,一種是我們自動捕獲的錯誤信息,一種是開發(fā)者自己傳遞的錯誤 | SDK可以幫您捕捉用戶在使用應(yīng)用過程中出現(xiàn)的異常退出(FC),并將錯誤報告發(fā)送給服務(wù)器,錯誤報告包含應(yīng)用程序版本、操作系統(tǒng)版本和設(shè)備型號以及程序出現(xiàn)異常時的Stacktrace,這些數(shù)據(jù)將幫助您調(diào)試應(yīng)用程序的錯誤。我們提供兩種方式報告錯誤信息,一種是我們自動捕獲的錯誤信息,一種是開發(fā)者自己傳遞的錯誤 | ||
行 184: | 行 184: | ||
===== 2.2 自定義事件 ===== | ===== 2.2 自定義事件 ===== | ||
- | |||
除了基本統(tǒng)計分析功能外,SDK還支持您自定義的事件的統(tǒng)計分析,例如您可以統(tǒng)計廣告點擊次數(shù)或者視頻被播放的次數(shù)等等,這里我們將提供幾個簡單而通用的接口: | 除了基本統(tǒng)計分析功能外,SDK還支持您自定義的事件的統(tǒng)計分析,例如您可以統(tǒng)計廣告點擊次數(shù)或者視頻被播放的次數(shù)等等,這里我們將提供幾個簡單而通用的接口: | ||
行 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就為該“訂單號”的金額(即價值)。 | ||
- | ===== 2.3 分發(fā)渠道分析 ===== | ||
+ | ===== 2.3 調(diào)試 ===== | ||
- | 不同的發(fā)布渠道,對應(yīng)著不同的appkey,統(tǒng)計結(jié)果可以使您很好的了解有多少用戶從聯(lián)想樂園或者Google android market 下載到您的應(yīng)用程序。 | + | Cobub Android SDK提供了調(diào)試的功能,提供盡可能多的日志信息,以確定可能出現(xiàn)的問題。? |
+ | 調(diào)用以下函數(shù),可以打開調(diào)試功能,sdk所有上報的數(shù)據(jù)可以在logcat中顯示。**注意:請在產(chǎn)品正式發(fā)布時,關(guān)閉該功能。**? | ||
+ | <code java>? | ||
+ | UmsAgent.setDebugEnabled(true);? | ||
+ | </code>? | ||
+ | ? | ||
+ | Log的不同等級,可以通過以下函數(shù)設(shè)置:? | ||
+ | <code java>? | ||
+ | UmsAgent.setDebugLevel(UmsAgent.LogLevel);? | ||
+ | </code>? | ||
+ | LogLevel分為Info,Debug,Warn,Error和Verbose。 | ||
====== 3 應(yīng)用程序更新 ====== | ====== 3 應(yīng)用程序更新 ====== | ||
===== 3.1 上傳APK ===== | ===== 3.1 上傳APK ===== | ||
- | |||
這個功能將幫助您把新版的Android應(yīng)用程序推送給用戶,您只需修改AndroidManifest.xml中的VersionCode,并把應(yīng)用程序的apk文件上傳到服務(wù)器。 | 這個功能將幫助您把新版的Android應(yīng)用程序推送給用戶,您只需修改AndroidManifest.xml中的VersionCode,并把應(yīng)用程序的apk文件上傳到服務(wù)器。 | ||
===== 3.2 添加權(quán)限 ===== | ===== 3.2 添加權(quán)限 ===== | ||
- | |||
**android.permission.WRITE_EXTERNAL_STORAGE** | **android.permission.WRITE_EXTERNAL_STORAGE** | ||
行 237: | 行 244: | ||
考慮到用戶流量的限制,目前我們默認在Wi-Fi介入情況下才進行自動提醒。 | 考慮到用戶流量的限制,目前我們默認在Wi-Fi介入情況下才進行自動提醒。 | ||
===== 3.4 機制說明 ===== | ===== 3.4 機制說明 ===== | ||
- | |||
每次更新Android應(yīng)用程序,您只需要修改VersionCode,把Android應(yīng)用程序的apk文件上傳到服務(wù)器。UmsAgent.update()方法會判斷是否有新版應(yīng)用程序,如果發(fā)現(xiàn)可更新的應(yīng)用程序安裝包,會提示用戶是否更新。用戶選擇更新后,安裝包會下載安裝更新。(按照version code來檢測是否需要更新) | 每次更新Android應(yīng)用程序,您只需要修改VersionCode,把Android應(yīng)用程序的apk文件上傳到服務(wù)器。UmsAgent.update()方法會判斷是否有新版應(yīng)用程序,如果發(fā)現(xiàn)可更新的應(yīng)用程序安裝包,會提示用戶是否更新。用戶選擇更新后,安裝包會下載安裝更新。(按照version code來檢測是否需要更新) | ||
- | |||
====== 4 數(shù)據(jù)發(fā)送 ====== | ====== 4 數(shù)據(jù)發(fā)送 ====== | ||
行 246: | 行 251: | ||
===== 4.1 模式解釋 ===== | ===== 4.1 模式解釋 ===== | ||
- | ? | + | * 啟動時發(fā)送 |
- | * 啟動時發(fā)送(推薦使用) | + | |
應(yīng)用程序每次只會在啟動時向服務(wù)器發(fā)送一次消息,在應(yīng)用程序過程中產(chǎn)生的所有消息都會在下次啟動時候發(fā)送。如果應(yīng)用程序啟動時處在不聯(lián)網(wǎng)狀態(tài),那么消息將會緩存在本地,下次再嘗試發(fā)送。 | 應(yīng)用程序每次只會在啟動時向服務(wù)器發(fā)送一次消息,在應(yīng)用程序過程中產(chǎn)生的所有消息都會在下次啟動時候發(fā)送。如果應(yīng)用程序啟動時處在不聯(lián)網(wǎng)狀態(tài),那么消息將會緩存在本地,下次再嘗試發(fā)送。 | ||
- | * 實時發(fā)送? | + | * 實時發(fā)送(推薦使用)? |
- | 應(yīng)用程序每產(chǎn)生條消息時,就立即發(fā)送到服務(wù)器 | + | 應(yīng)用程序每產(chǎn)生條消息時,就立即發(fā)送到服務(wù)器。這種方式使得計算更及時 |
===== 4.2 設(shè)置發(fā)送模式 ===== | ===== 4.2 設(shè)置發(fā)送模式 ===== | ||
在Android應(yīng)用程序的入口Activity中調(diào)用**UmsAgent.setDefaultReportPolicy(Context,int)**,參數(shù)int可取值0或者1,其中1表示實時發(fā)送,0表示啟動時發(fā)送。 | 在Android應(yīng)用程序的入口Activity中調(diào)用**UmsAgent.setDefaultReportPolicy(Context,int)**,參數(shù)int可取值0或者1,其中1表示實時發(fā)送,0表示啟動時發(fā)送。 | ||
- | |||
====== 5 使用在線配置功能 ====== | ====== 5 使用在線配置功能 ====== | ||
行 261: | 行 264: | ||
UmsAgent.updateOnlineConfig(Context)</code> | UmsAgent.updateOnlineConfig(Context)</code> | ||
在Android應(yīng)用程序的入口Activity的onCreate()方法中調(diào)用。SDK將聯(lián)網(wǎng)檢測您的在線配置,將這些信息保存在本地。你也可以通過下面的方法讀取您的自定義參數(shù)。 | 在Android應(yīng)用程序的入口Activity的onCreate()方法中調(diào)用。SDK將聯(lián)網(wǎng)檢測您的在線配置,將這些信息保存在本地。你也可以通過下面的方法讀取您的自定義參數(shù)。 | ||
- | |||
- | **UmsAgent.updateOnlineConfig(Context context,String key)** 其中key為在網(wǎng)站上編輯好的key,返回值是對應(yīng)的value ,如果沒有讀到相應(yīng)的value將返回空字符串。 |