這里會(huì)顯示出您選擇的修訂版和當(dāng)前版本之間的差別。
兩側(cè)同時(shí)換到之前的修訂記錄 前一修訂版 后一修訂版 | 前一修訂版 | ||
razor:android-developer-guide [2015/03/20 14:54] cobub [4 應(yīng)用程序更新] |
razor:android-developer-guide [2017/07/14 11:18] (當(dāng)前版本) |
||
---|---|---|---|
行 1: | 行 1: | ||
+ | ~~Title:Android 開發(fā)者指南 - 開源移動(dòng)應(yīng)用運(yùn)營平臺(tái) - 移動(dòng)統(tǒng)計(jì)、移動(dòng)推送解決方案 - Cobub 移動(dòng)開發(fā)者中心~~ | ||
+ | {{description>Android 開發(fā)者指南}} | ||
+ | {{keywords>Cobub Razor,開源移動(dòng)應(yīng)用分析,移動(dòng)分析,移動(dòng)應(yīng)用分析,開發(fā)者指南,android}} | ||
+ | ====== Android 開發(fā)者指南 ====== | ||
行 4: | 行 8: | ||
===== 1.1 注冊應(yīng)用,獲取AppKey,下載開發(fā)文檔 ===== | ===== 1.1 注冊應(yīng)用,獲取AppKey,下載開發(fā)文檔 ===== | ||
- | |||
登陸賬號(hào)后,到管理后臺(tái)注冊應(yīng)用,填寫Android應(yīng)用的相關(guān)信息。App建立成功后,可獲得該App的AppKey以及最新的開發(fā)文檔。 | 登陸賬號(hào)后,到管理后臺(tái)注冊應(yīng)用,填寫Android應(yīng)用的相關(guān)信息。App建立成功后,可獲得該App的AppKey以及最新的開發(fā)文檔。 | ||
===== 1.2 Android SDK使用步驟 ===== | ===== 1.2 Android SDK使用步驟 ===== | ||
- | ==== 1.2.1 導(dǎo)入com.wbkit1.0.jar(簡稱SDK) ====? | + | ==== 1.2.1 導(dǎo)入Cobub的SDK jar包 ==== |
- | 打開放在服務(wù)端的android_sdk, 導(dǎo)入android_sdk到eclipse,打包生成的bin\classes下com文件夾為com.wbkit1.0.jar。 | + | 打開下載文件中的sdk\android_sdk目錄, 導(dǎo)入SDK項(xiàng)目到eclipse(或其它IDE),打包生成jar包。 |
- | Eclipse用戶右鍵工程根目錄,選擇Properties —>Java Build Path —>libraries,然后點(diǎn)擊Add External JARs…選擇指向 com.wbkit1.0.jar的路徑,點(diǎn)擊OK,即導(dǎo)入成功。 | + | Eclipse用戶右鍵工程根目錄,選擇Properties —>Java Build Path —>libraries,然后點(diǎn)擊Add External JARs…選擇指向上述生成的jar包文件的路徑,點(diǎn)擊OK,即導(dǎo)入成功。 |
==== 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對(duì)象? |
- | 在Android應(yīng)用的入口Activity的onCreate()方法中調(diào)用UmsAgent.setBaseURL(String url)方法,注意這個(gè)方法應(yīng)置于所有其他的方法之前。 | + | 在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 | * 獲取用戶ID | ||
- | 在可以獲得用戶唯一標(biāo)識(shí)符的地方調(diào)用UmsAgent.bindUserIdentifier(String userID)方法,該方法會(huì)記錄下該標(biāo)示 符,以確定某一用戶在使用該應(yīng)用。該方法后需要調(diào)用UmsAgent.postClientData(Context con)方法(稍后介紹)才能將 數(shù)據(jù)上傳至服務(wù)器,否則只在本地保存該用戶的標(biāo)示符記錄。 | + | 在可以獲得用戶唯一標(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 | ||
行 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 注意事項(xiàng) ==== | ==== 1.2.5 注意事項(xiàng) ==== | ||
- | |||
* AppKey | * AppKey | ||
行 169: | 行 170: | ||
===== 2.1 錯(cuò)誤報(bào)告 ===== | ===== 2.1 錯(cuò)誤報(bào)告 ===== | ||
- | |||
SDK可以幫您捕捉用戶在使用應(yīng)用過程中出現(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ò)誤信息,一種是開發(fā)者自己傳遞的錯(cuò)誤 | SDK可以幫您捕捉用戶在使用應(yīng)用過程中出現(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ò)誤信息,一種是開發(fā)者自己傳遞的錯(cuò)誤 | ||
行 184: | 行 184: | ||
===== 2.2 自定義事件 ===== | ===== 2.2 自定義事件 ===== | ||
- | |||
除了基本統(tǒng)計(jì)分析功能外,SDK還支持您自定義的事件的統(tǒng)計(jì)分析,例如您可以統(tǒng)計(jì)廣告點(diǎn)擊次數(shù)或者視頻被播放的次數(shù)等等,這里我們將提供幾個(gè)簡單而通用的接口: | 除了基本統(tǒng)計(jì)分析功能外,SDK還支持您自定義的事件的統(tǒng)計(jì)分析,例如您可以統(tǒng)計(jì)廣告點(diǎn)擊次數(shù)或者視頻被播放的次數(shù)等等,這里我們將提供幾個(gè)簡單而通用的接口: | ||
行 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代表一個(gè)“下單”事件,那么label可以標(biāo)記為某個(gè)“訂單號(hào)”,而value就為該“訂單號(hào)”的金額(即價(jià)值)。 | 例如 event_id代表一個(gè)“下單”事件,那么label可以標(biāo)記為某個(gè)“訂單號(hào)”,而value就為該“訂單號(hào)”的金額(即價(jià)值)。 | ||
- | ===== 2.3 分發(fā)渠道分析 ===== | ||
+ | ===== 2.3 調(diào)試 ===== | ||
- | 不同的發(fā)布渠道,對(duì)應(yīng)著不同的appkey,統(tǒng)計(jì)結(jié)果可以使您很好的了解有多少用戶從聯(lián)想樂園或者Google android market 下載到您的應(yīng)用程序。 | + | Cobub Android SDK提供了調(diào)試的功能,提供盡可能多的日志信息,以確定可能出現(xiàn)的問題。? |
+ | 調(diào)用以下函數(shù),可以打開調(diào)試功能,sdk所有上報(bào)的數(shù)據(jù)可以在logcat中顯示。**注意:請(qǐng)?jiān)诋a(chǎn)品正式發(fā)布時(shí),關(guān)閉該功能。**? | ||
+ | <code java>? | ||
+ | UmsAgent.setDebugEnabled(true);? | ||
+ | </code>? | ||
+ | ? | ||
+ | Log的不同等級(jí),可以通過以下函數(shù)設(shè)置:? | ||
+ | <code java>? | ||
+ | UmsAgent.setDebugLevel(UmsAgent.LogLevel);? | ||
+ | </code>? | ||
+ | LogLevel分為Info,Debug,Warn,Error和Verbose。 | ||
====== 3 應(yīng)用程序更新 ====== | ====== 3 應(yīng)用程序更新 ====== | ||
- | ===== 4.1 上傳APK =====? | + | ===== 3.1 上傳APK ===== |
這個(gè)功能將幫助您把新版的Android應(yīng)用程序推送給用戶,您只需修改AndroidManifest.xml中的VersionCode,并把應(yīng)用程序的apk文件上傳到服務(wù)器。 | 這個(gè)功能將幫助您把新版的Android應(yīng)用程序推送給用戶,您只需修改AndroidManifest.xml中的VersionCode,并把應(yīng)用程序的apk文件上傳到服務(wù)器。 | ||
- | ===== 4.2 添加權(quán)限 =====? | + | ===== 3.2 添加權(quán)限 ===== |
**android.permission.WRITE_EXTERNAL_STORAGE** | **android.permission.WRITE_EXTERNAL_STORAGE** | ||
- | ===== 4.3 基本功能 ===== | + | ===== 3.3 基本功能 ===== |
在Android應(yīng)用程序的入口Activity的onCreate()方法中調(diào)用**UmsAgent.update(this)**,應(yīng)用程序?qū)⒆詣?dòng)檢測服務(wù)端是否有新的版本。 | 在Android應(yīng)用程序的入口Activity的onCreate()方法中調(diào)用**UmsAgent.update(this)**,應(yīng)用程序?qū)⒆詣?dòng)檢測服務(wù)端是否有新的版本。 | ||
- | <code> | + | <code java> |
public void onCreate(Bundle savedInstanceState) { | public void onCreate(Bundle savedInstanceState) { | ||
super.onCreate(savedInstanceState); | super.onCreate(savedInstanceState); | ||
行 236: | 行 243: | ||
</code> | </code> | ||
考慮到用戶流量的限制,目前我們默認(rèn)在Wi-Fi介入情況下才進(jìn)行自動(dòng)提醒。 | 考慮到用戶流量的限制,目前我們默認(rèn)在Wi-Fi介入情況下才進(jìn)行自動(dòng)提醒。 | ||
- | ===== 4.4 機(jī)制說明 =====? | + | ===== 3.4 機(jī)制說明 ===== |
每次更新Android應(yīng)用程序,您只需要修改VersionCode,把Android應(yīng)用程序的apk文件上傳到服務(wù)器。UmsAgent.update()方法會(huì)判斷是否有新版應(yīng)用程序,如果發(fā)現(xiàn)可更新的應(yīng)用程序安裝包,會(huì)提示用戶是否更新。用戶選擇更新后,安裝包會(huì)下載安裝更新。(按照version code來檢測是否需要更新) | 每次更新Android應(yīng)用程序,您只需要修改VersionCode,把Android應(yīng)用程序的apk文件上傳到服務(wù)器。UmsAgent.update()方法會(huì)判斷是否有新版應(yīng)用程序,如果發(fā)現(xiàn)可更新的應(yīng)用程序安裝包,會(huì)提示用戶是否更新。用戶選擇更新后,安裝包會(huì)下載安裝更新。(按照version code來檢測是否需要更新) | ||
+ | ====== 4 數(shù)據(jù)發(fā)送 ====== | ||
- | ====== 5 數(shù)據(jù)發(fā)送 ====== | + | ===== 4.1 模式解釋 ===== |
- | ===== 5.1 模式解釋 =====? | + | * 啟動(dòng)時(shí)發(fā)送 |
- | ? | + | |
- | ? | + | |
- | * 啟動(dòng)時(shí)發(fā)送(推薦使用) | + | |
應(yīng)用程序每次只會(huì)在啟動(dòng)時(shí)向服務(wù)器發(fā)送一次消息,在應(yīng)用程序過程中產(chǎn)生的所有消息都會(huì)在下次啟動(dòng)時(shí)候發(fā)送。如果應(yīng)用程序啟動(dòng)時(shí)處在不聯(lián)網(wǎng)狀態(tài),那么消息將會(huì)緩存在本地,下次再嘗試發(fā)送。 | 應(yīng)用程序每次只會(huì)在啟動(dòng)時(shí)向服務(wù)器發(fā)送一次消息,在應(yīng)用程序過程中產(chǎn)生的所有消息都會(huì)在下次啟動(dòng)時(shí)候發(fā)送。如果應(yīng)用程序啟動(dòng)時(shí)處在不聯(lián)網(wǎng)狀態(tài),那么消息將會(huì)緩存在本地,下次再嘗試發(fā)送。 | ||
- | * 實(shí)時(shí)發(fā)送? | + | * 實(shí)時(shí)發(fā)送(推薦使用)? |
- | 應(yīng)用程序每產(chǎn)生條消息時(shí),就立即發(fā)送到服務(wù)器 | + | 應(yīng)用程序每產(chǎn)生條消息時(shí),就立即發(fā)送到服務(wù)器。這種方式使得計(jì)算更及時(shí) |
- | ===== 5.2 設(shè)置發(fā)送模式 ===== | + | ===== 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ā)送。 | 在Android應(yīng)用程序的入口Activity中調(diào)用**UmsAgent.setDefaultReportPolicy(Context,int)**,參數(shù)int可取值0或者1,其中1表示實(shí)時(shí)發(fā)送,0表示啟動(dòng)時(shí)發(fā)送。 | ||
- | ? | + | ====== 5 使用在線配置功能 ======? |
- | ====== 6 使用在線配置功能 ======? | + | <code java> |
- | <code> | + | |
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,返回值是對(duì)應(yīng)的value ,如果沒有讀到相應(yīng)的value將返回空字符串。 |