2015-04-28 33 views
0

我正在爲android構建一個庫,並且希望收集有關使用包含該庫的應用的用戶的統計信息。 重要的是要注意,這些統計數據用於改善用戶的體驗以及使用這個lib的開發人員瞭解收集這些信息。 (沒有任何個人信息,只有關於申請流程的信息)。Android - 統計工作的第三方庫如何工作

一方面,我不想每次收集這些信息都要進行HTTP調用,但另一方面,我想盡量減少應該丟失的數據量。

我的問題是取決於Android平臺的最佳實現方式是什麼,我認爲我想實現類似於谷歌分析,但使用自定義數據的東西,並且想知道如何實現這種類型的庫。

+0

最後你必須發送收集的信息到服務器。緩存是一種存儲數據併發送它們的批量,但它會增加有效載荷的大小,克服它壓縮是一種選擇。 –

+0

他們如何緩存它?我可以考慮內部存儲文件或SQLite表,但害怕很多I/O操作。你知道什麼是緩存它的最好方法,所以使用我的lib的應用程序不會受到這種I/O操作的影響。 – galvan

+1

SQlite是唯一的選擇。把太多的數據放在共享偏好上並不是一個好主意。不要擔心在Android中處理得太漂亮的IO操作太多。只要按照最佳做法來做到這一點。 –

回答

1

在您撥打「send()」時,大多數支持Google Play服務(具有Google Play商店的設備)分析數據的Android設備都會發送到Google Play服務。服務本身將批處理並壓縮來自所有應用程序的數據,並以較少的請求上傳數據,然後實際發送請求。由於使用您的圖書館的應用程序本身可能使用分析,因此應避免設置例外或自動屏幕查看報告,因爲它會干擾應用程序。如果您從代碼配置一個跟蹤器,您的lib應該對應用程序性能幾乎沒有影響。如果您預期使用量過大,則應考慮將跟蹤器採樣爲1%,以最大限度地減少電池/網絡影響。