友盟java
『壹』 友盟的服務端的java sdk怎麼使用
你要連接別人的伺服器嗎?當然是要先導入這個包,再調用了。
『貳』 友盟統計Android以什麼確定一個用戶
Android 統計分析 SDK使用指南 1. 建立App,下載SDK 登錄你的帳號後,看到友盟的管理後台,點擊"+添加新應用",進入新應用信息填寫的頁面。 App建立成功後,可以獲得該App的AppKey,以及最新的開發指南和SDK文件。 可在 這里 下載SDK,包含開發文檔,demo程序和jar包。 說明:在新應用信息填寫中,請盡量填寫真實的信息。您可以通過友盟統計分析平台的特性節省重復建立App的時間。 如果您要對App不同的發布渠道進行統計,不需要創建新App,請使用分發渠道分析,通過分發渠道分析,您可以更方便的對比數據。 2. 實現基本的使用基本統計實現本的頁面跳轉,機型,解析度,地理位置 …的統計1. 導入umeng-sdk*.jar(簡稱SDK)下載最新版sdk的zip包,解壓將其中的umeng-sdk.jar釋放到本地目錄,Eclipse用戶右鍵您的工程根目錄,選擇Properties -> Java Build Path -> Libraries, 然後點擊 Add External JARs... 選擇指向 Analytics_Android_SDK_*.jar的路徑,點擊OK,即導入成功。 2. 配置 AndroidManifest.xml<manifest……><application ……> ……<activity ……/><meta-dataandroid:value="YOUR_APP_KEY"android:name="UMENG_APPKEY"></meta-data><meta-dataandroid:value="Channel ID"android:name="UMENG_CHANNEL"/></application><uses-sdkandroid:minSdkVersion="4"></uses-sdk><uses-permissionandroid:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission><uses-permissionandroid:name="android.permission.INTERNET"></uses-permission><uses-permissionandroid:name="android.permission.READ_PHONE_STATE"></uses-permission><uses-permissionandroid:name="android.permission.READ_LOGS"></uses-permission></manifest>說明: META-DATA 用途 UMENG_APPKEY 用來定位該應用程序的唯一性。 UMENG_CHANNEL 用來標注應用推廣渠道,區分新用戶的來源來查看統計,您可以使用20位以內的英文和數字為渠道定名,替換value中的"Channel ID"。詳見渠道統計。 許可權 用途 INTERNET(必須) 允許應用程序聯網,以便向我們的伺服器端發送數據。 READ_PHONE_STATE(必須) 獲取用戶手機的IMEI,用來唯一的標識用戶。(如果您的應用會運行在無法讀取IMEI的平板上,我們會將mac地址作為用戶的唯一標識,請添加許可權: android.permission.ACCESS_WIFI_STATE ) ACCESS_NETWORK_STATE 檢測網路狀態,友盟SDK 1.6版本新增許可權。 READ_LOGS 如果您想獲得客戶端crash的報告, 需要添加這個許可權。具體見【使用錯誤報告】。 WRITE_EXTERNAL_STORAGE 如果您使用了友盟自動更新提醒功能,需添加這個許可權,為了將更新的APK臨時存在SD卡里。 3. 添加代碼 添加引用: import com.umeng.analytics.MobclickAgent 注冊 Activity: 在每個Activity的onResume方法中調用 MobclickAgent.onResume(Context), onPause方法中調用 MobclickAgent.onPause(Context) publicvoid onResume() { super.onResume(); MobclickAgent.onResume(this);}publicvoid onPause() { super.onPause(); MobclickAgent.onPause(this);}API:public void onResume(Context context) context 當前Activity的引用,這里請不要將全局的application context傳入。 public void onPause(Context context) context 當前Activity的引用,這里請不要將全局的application context傳入。 API說明: void onResume(Context context) context 當前Activity引用 void onPause(Context context) context 當前Activity引用 說明: 方法將會自動地從AndroidManifest.xml文件里讀取Appkey。 確保在所有的activity中都調用 MobclickAgent.onResume() 和MobclickAgent.onPause()方法,這兩個調用將不會阻塞應用程序的主線程,也不會影響應用程序的性能。 注意如果您的Activity之間有繼承或者控制關系請不要同時在父和子Activity中重復添加onPause和onResume方法,否則會造成重復統計(eg.使用TabHost、TabActivity、ActivityGroup時)。 一個應用程序在多個activity之間連續切換時,將會被視為同一個session(啟動)。 當用戶兩次使用之間間隔超過30秒時,將被認為是兩個的獨立的session(啟動),例如用戶回到home,或進入其他程序,經過一段時間後再返回之前的應用。 4. 測試 確認所需的許可權都已經添加:INTERNET, READ_PHONE_STATE, (READ_LOGS, WRITE_EXTERNAL_STORAGE) 確認APPKEY已經正確的寫入Androidmanifest.xml 確認所有的Activity中都調用了onResume和onPause方法 確認測試手機(或者模擬器)已成功連入網路 啟動應用程序,幾分鍾之後您應該已經可以看到相應的報表. 3. 使用錯誤報告友盟統計分析工具,還可以幫助您捕捉用戶在使用應用程序過程中出現的異常退出(FC), 並在應用程序下次啟動時將錯誤報告發送給伺服器。 1. 自動捕獲異常退出(FC) 在AndroidManifest.xml裡面添加許可權android.permission.READ_LOGS 在程序的Main Activity(應用程序入口)的onCreate方法里調用MobclickAgent.onError(Context). publicvoid onCreate(Bundle savedinstanceState) { super.onCreate(savedInstanceState); MobclickAgent.onError(this); ...}API:public void onError(Context context) context 當前Activity的引用 說明:錯誤報告包含應用程序版本,操作系統版本和設備型號以及程序出現異常時的Stacktrace,這些數據將幫助您修正應用程序的Bug。 2. 手動發送錯誤報告如果您自己捕獲了程序中的異常,但是依然希望,將這次異常信息發送到友盟的伺服器,您可以調用下面的函數。 MobclickAgent.reportError(Context context,String error) API:public void reportError(Context context, String error) context 當前Activity的引用 error 開發者手動捕獲的錯誤信息 說明:手動發送的異常信息和自動捕獲的異常信息一樣,都會展示在錯誤報告面板。 4. 使用自定義事件除了基本統計分析功能外,我們還支持您自定義的事件分析,例如您可以統計游戲中通過不同關卡的人數,廣告的點擊次數或者視頻被播放的次數等等。 使用自定義事件功能請先在網站應用管理後台(設置->編輯自定義事件)中添加相應的自定義事件後,伺服器才會對相應的自定義事件請求進行處理。 1. 事件數量統計1. 在您希望跟蹤的代碼部分,調用如下方法:MobclickAgent.onEvent(Context context, String event_id);API:public void onEvent(Context context, String event_id) context 當前Activity的引用 event_id 為當前統計的事件ID,注意要先在友盟網站上注冊此事件ID。 示例:統計微博應用中「轉發"事件發生的次數,那麼在「轉發"的函數里調用 MobclickAgent.onEvent(this, "Forward") 2. 記錄事件的不同屬性及取值,調用如下方法:MobclickAgent.onEvent(Context context, String event_id, Map<String,String>; map);API:public voidonEvent(Context context, String event_id, Map map) context 當前Activity的引用 event_id 為當前統計的事件ID,注意要先在友盟網站上注冊此事件ID。 map 為當前事件的屬性和取值集合(key-value) 示例:MobclickAgent.onEvent(LoginActivity.this, "sinaLogin"); 新浪用戶登陸海知筆記 3. 考慮事件在一個屬性上的取值,可以調用如下方法:MobclickAgent.onEvent(Context context, String event_id, String label);API:public void onEvent(Context context, String event_id, String label) context 當前Activity的引用 event_id 為當前統計的事件ID,注意要先在友盟網站上注冊此事件ID. label 事件的一個屬性描述 示例:統計游戲中「死亡"事件發生的關卡數,那麼可以在死亡的函數里調用 MobclickAgent.onEvent(this, "player_dead","level");2. 事件時長統計有的事件是持續發生的,需要記錄其持續的時間,這里提供兩種解決方法。 1. 在事件開始和結束時分別調用onEventBegin和 onEventEnd兩個函數。MobclickAgent.onEventBegin(Context context, String event_id);...MobclickAgent.onEventEnd(Context context, String event_id);API:public voidonEventBegin(Context context, String event_id) public void onEventEnd(Context context, String event_id) context 當前Activity引用 event_id 為當前統計的事件ID,注意要先在友盟網站上注冊此事件ID. public void onEventBegin(Context context, String event_id, String label) public void onEventEnd(Context context, String event_id, String label) context 當前Activity引用 event_id 為當前統計的事件ID,注意要先在友盟網站上注冊此事件ID. label 事件的一個屬性描述 示例:跟蹤播放音樂事件發生的總時間,在音樂播放開始時調用: MobclickAgent.onEventBegin(this, "music_play");在音樂播放結束時調用: MobclickAgent.onEventEnd(this, "music_play");2. 跟蹤時長的事件包含多個屬性,在事件開始和結束時分別調用onKVEventBegin和 onKVEventEnd兩個函數MobclickAgent.onKVEventBegin(Context context, String event_id, Map<String,String> map, String ekvFlag);...MobclickAgent.onKVEventEnd(Context context, String event_id, String ekvFlag);API:public void onKVEventBegin(Context context, String event_id, Map map, String ekvFlag) context 當前Activity引用 event_id 為當前統計的事件ID,注意要先在友盟網站上注冊此事件ID. map 為當前事件的屬性和取值集合(key-value) ekvFlag 事件標示符 public void onKVEventEnd(Context context, String event_id, String ekvFlag) context 當前Activity引用 event_id 為當前統計的事件ID,注意要先在友盟網站上注冊此事件ID ekvFlag 事件標示符,ekvFlag 和 event_id 一起標示一個唯一事件,並不會被統計;對於同一個事件,在onKVEventBegin和onKVEventEnd 中要傳遞相同的event_id 和 flag 示例跟蹤每種類型的音樂播放了多久,在音樂播放開始時調用 Map<String,String> music = new HashMap<String,String>(); music.put("type", "popular"); music.put("artist", "JJLin"); music.put("User_status", "registered");MobclickAgent.onKVEventBegin(this, "music",music,"m7");在音樂播放結束時調用: MobclickAgent.onKVEventEnd(this, "music",music,"m7");3. 自己計算並上傳event時長,在您想跟蹤時長的代碼部分,調用如下方法:MobclickAgent.onEventDuration(Context context, String event_id, long ration);orMobclickAgent.onEventDuration(Context context, String event_id,String label, long ration)orMobclickAgent.onEventDuration(Context context, String event_id, Map<String, String> map, long ration)API:public void onEventDuration(Context context, String event_id, long ration) public void onEventDuration(Context context, String event_id,String label, long ration) context 當前Activity引用 event_id 為當前統計的事件ID,注意要先在友盟網站上注冊此事件ID label 事件的一個屬性描述 ration 事件持續時長,單位毫秒,您需要手動計算並傳入時長,作為事件的時長參數 public void onEventDuration(Context context, String event_id, Map map, long ration) context 當前Activity引用 event_id 為當前統計的事件ID,注意要先在友盟網站上注冊此事件ID map 為當前事件的屬性和取值集合(key-value) ration 事件持續時長,單位毫秒,您需要手動計算並傳入時長,作為事件的時長參數 說明 時長是友盟統計的一個新功能,使用過程中可能會出現一些常見的錯誤,開發者應該盡量的避免,這里有一些可能出錯的案例。 每個event的key不能超過10個,event ID、map中key和value都不能使用特殊字元,且長度不能超過255個字元(否則將截取前255個字元),「id", 「ts", 「"是保留欄位,不能作為event ID及key的名稱 5. 使用分發渠道分析有時需要統計應用程序的分發渠道,例如有多少用戶來從聯想樂園下載了您的應用,又有多少用戶通過Google android market下載到您的應用程序。您只需要在AndroidManifest.xml里添加meta-data,並將 value屬性修改為對應的發布渠道名。 配置AndroidManifest.XML添加下面代碼 <application ……><activity ……/><meta-dataandroid:value="Channel ID"android:name="UMENG_CHANNEL"/></application>當然,這需要您在不同渠道發布應用程序時,重新編譯打包。 說明 不要改變'UMENG_CHANNEL',修改'Channel ID'為您的渠道名稱,注意不能是純數字(eg.value="AndroidMarket")。 每台設備只記錄第一次統計到的渠道,您如果在測試的時候發現渠道統計到的設備數量不增加,很可能是因為您用同一個設備修改過渠道號,您換一台設備測試即可。 6. 使用在線配置功能這個功能目前可以幫你在網站上動態配置兩種類型的參數: 自定義key-value型的鍵值對 數據發送策略 在程序的入口Activity的OnCreate()方法中調用 publicvoid onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); MobclickAgent.updateOnlineConfig(this);}API:public voipdateOnlineConfig(Context context)
『叄』 友盟提供的debug.keystore密碼是多少
介紹:是java的密鑰庫、用來進行通信加密用的、比如數字簽名。keystore就是用來保存密鑰對的,比如公鑰和私鑰。具體用法,在網上搜java數字簽名,文件加密就行了、有很多教程的 使用: 1.首先要得到你的debug keystore位置: 打開Eclipse--->Win...
『肆』 如何在Java多線程下高效利用HttpClient連接同一伺服器介面
您好,提問者:
1、先說長連接吧,如果TCP協議的話長連接可以通過心跳包來實現。
2、推送的話,這個可以弄一個定時器,來控制線程,推送發送完畢,線程stop()。
『伍』 如果用java友盟推送的話,用戶的alias數量超過10萬,該怎麼推送
說到底也是逐個推送的
~~~~~~~~~~~~~
『陸』 友盟和360加固保的崩潰日誌有什麼區別
最近新產品剛上線,問題很多,每天都在解各種Bug。作為一個安卓開發者,安卓系統讓人又愛又恨。一個好的性能監控工具,能讓開發者在解bug的路上輕松不少。
絕大部分開發者會使用第三方性能監控產品來獲取應用的崩潰數據,友盟應該是市場佔比最大的一個,身邊的程序猿都在用它。其次不得不提到Bugly,這也是數據和服務做的很專業的產品。還有一個是360加固保,他們推出的崩潰日誌分析服務很有特點。所以,就和大家分享下在安卓平台應用性能監測方面友盟、Bugly、360加固保三家產品的使用感受。
一、產品定位:
友盟:友盟是老牌數據分析專家,相比分享和推送等服務,崩潰分析只是友盟應用統計中的一小部分,並不作為其主要運維的產品,這個從友盟的頁面宣傳和產品擺放位置不難看出,而且友盟的崩潰分析服務只分為趨勢和列表兩個頁面,相對過於簡單。
Bugly:Bugly是專門從事應用崩潰分析的產品,所以在數據的精準度和深度上很專業。Bugly還做過不少線下技術沙龍活動,來推廣他們的崩潰日誌。產品頁面的整體感覺偏技術化,在數據整合和頁面展現上,如果是初次使用的話感覺有點亂,頁面關聯較多。其次,感覺Bugly不太穩定,在QQ交流群里也經常有開發者提到沒數據或異常的問題。
360加固保:加固保以APP加固知名,它推出的崩潰日誌分析服務最大特點是免SDK集成,這是與其他產品最明顯的區別。也就是說不需要任何代碼集成過程,上傳APP進行加固後就可以使用崩潰日誌分析服務(雖然是免SDK集成,但也會增加些包體大小,大概150M左右)。
二、捕獲范圍:
友盟:只能捕獲Java層崩潰,而Native層則獲取不到(Native層崩潰是由C++層代碼錯誤引起的,在絕大多數Android系統上, Native層崩潰發生時不會彈出提示框提醒程序崩潰),所以在捕獲范圍上,明顯不足。
Bugly:Java層和Native層都能捕獲到。
360加固保:Java層和Native層都能捕獲到,且捕獲的log及時全面。
下面是三家在崩潰捕獲范圍的對比列表,Bugly最全,但SDK大小也會隨之增加,如果開發者在集成的時候,選擇了arm64位/ X86架構,大概會增加500KB左右。arm64位和X86架構的手機畢竟很少,所以如果選擇兼容,勢必會增加SDK的大小。
整體對比看,每家各有優勢,個人認為Bugly和360加固保都是不錯的性能監測工具,這里只指列出了三家有特點或差異的部分,僅代表個人觀點,歡迎大家吐槽討論。
『柒』 友盟統計sdk混淆後為什麼不能統計的
如果您的應用使用了混淆, 請添加
-keepclassmembersclass*{
public<init>(org.json.JSONObject);
}
這是由於SDK中的部分代碼使用反射來調用構造函數, 如果被混淆掉, 在運行時會提示"NoSuchMethod"錯誤。 另外,由於SDK需要引用導入工程的資源文件,通過了反射機製得到資源引用文件R.java,但是在開發者通過proguard等混淆/優化工具處理apk時,proguard可能會將R.java刪除,如果遇到這個問題,請在proguard配置文件中添加keep命令如:
-keeppublicclass[您的應用包名].R$*{
publicstaticfinalint*;
}
把[您的應用包名] 替換成您自己的包名,如com.yourcompany.example。如果您使用5.0.0及以上版本的SDK,請添加如下命令:
-keepclassmembersenum*{
publicstatic**[]values();
publicstatic**valueOf(java.lang.String);
}
『捌』 友盟推送android java端的代碼怎麼使用
最好的方法,研讀官方提供的Demo,這里說的Java端應該是前端,即Android App端,在應用程序啟動的時候,開啟推送功能,同時在清單文件移植Demo提供的一些內容,測試幾遍就差不多了。。。
『玖』 umeng ios推送怎麼添加title和內容
可以在Debug模式下輸出的logcat中看到Device Token,也可以使用下面的方法來獲取Device Token。幫用戶確定是沒有替換包名導致的錯誤 附上二個問題的答案: device token獲取的辦法: String device_token = UmengRegistrar.getRegistrationId(context),說明Device Token為友盟生成的用於標識設備的id,長度為44位,不能定製和修改。同一台設備上每個應用對應的Device Token不一樣。
獲取Device Token的代碼需要放在mPushAgent.enable();後面,注冊成功以後調用才能獲得Device Token。
如果返回值為空, 說明設備還沒有注冊成功, 需要等待幾秒鍾,同時請確保測試手機網路暢通。
關於以上類似的問題,可以試試極光推送,多種消息類型,開發者可以輕松地通過極光發送各個移動平台的系統通知,還可以在控制台編輯多種富文本展示模板; 極光還提供自定義消息的透傳,客戶端接到消息內容後根據自己的邏輯自由處理。