Evernote 分析机制学习

本文详细介绍了Evernote如何利用分析器收集机器信息,并通过全局处理和特定异常处理策略来管理异常情况,同时展示了Evernote如何利用Google Analytics进行数据分析和用户行为跟踪。

优秀不是偶然的,evernote 内嵌有 google analytics 分析器,一博内嵌有友盟分析器。几款口碑不错的 android 应用软件都有分析器。就来学习一下 evernote 是如何利用分析器的。

Evernote 记录的机器信息:

IsTablet: 根据屏幕尺寸和分辨率来判断设备是否具备 Tablet 能力

Locale: java.util.Locale.getDefault().toString()

Service: commerce_service

Package: AndroidManifest.xml 中定义的 package

Brand: android.os.Build.BRAND

Model: android.os.Build.MODEL

Network operator: TelephonyManager.getNetworkOperator() + " / " + TelephonyManager.getNetworkOperatorName()

Android version:  android.os.Build.VERSION.RELEASE

Evernote version: AndroidManifest.xml 中定义的 android:versionName

Evernote revision: Enum.REVISION=unknown 

Evernote type: Enum.BUILD_TYPE=public

Internal storage: StatFs.getBlockSize*getAvailableBlocks

External storage: StatFs.getBlockSize*getAvailableBlocks

SDCardStatus: SD

 

反馈crash报告:Android应用如何反馈Crash报告

(1)主线程中设置处理程序,DefaultExceptionHandler

(2)在主Activity的onCreate(Bundle savedInstanceState) 方法中增加代码 

Thread.setDefaultUncaughtExceptionHandler(new DefaultExceptionHandler( this.getApplicationContext() ));  

 

evernote 处理异常:

(1)全局处理 Thread.UncaughtExceptionHandler 的实现

(2)StackTraceElement 中包含com.google.android.apps.analytics了就交给 GoogleAnalytics 处理

(3)异常及处理类型:

  • CrashHandler
  • NullPointerException
  • restartEvernote
  • IndexOutOfBoundsException
  • SecurityException
  • IllegalStateException
  • OtherException

(4)日志:slf4j

(5)analytics 记录或发送的 evernote 内容

  • category: Exception
  • action: Evernote
  • label: NullPointerException
  • value: 0

(6)analytics 完整的记录

  • id
  • random
  • timestampCurrent
  • timestampPrevious
  • timestampFirst
  • visits: 访问次数
  • value: 
  • category
  • action
  • label
  • screen_width: 
  • screen_height: 

(7)analytics 保存

  • google_analytics.db
  • GoogleAnalyticsTracker 大于1000条后不再保存
  • 删除原来的 hits 记录

(8)发送

  • org.apache.http.message.BasicHttpEntityEnclosingRequest
  • POST

Evernote 使用举例:

(1)创建新的笔记本:createBusinessNotebook

调用:log("Generic", "businessNotebookCreated", label, 0)

label内容:

  • content://com.evernote.evernoteprovider
  • linkednotebooks
  • guid: UUID.randomUUID()
  • notebook_guid: UUID.randomUUID()
  • share_name
  • user_name: null
  • usn: 0
  • dirty: true
  • sync_mode: 1
  • business_id: 0
  • stack: 
  • uploaded: 0
  • permissions: 2304

交给 google analystics 的 action

Classcategoryactionlabelvalue
ExceptionHandler ExceptionEvernoteCrashHandler

0

 ExceptionEvernoteNullPointerException0
 ExceptionEvernoterestartEvernote0
 ExceptionEvernoteIndexOutOfBoundsException0
 ExceptionEvernoteSecurityException0
 ExceptionEvernoteIllegalStateException0
 ExceptionEvernoteOtherException0
BillingActivityGenericBillingActivityBilling pending0
 GenericBillingActivityBilling already purchased0
BillingServiceGenericBillingActivityEvernote server returned successful response code

0

 GenericBillingActivityEvernote server returned error response code0
 GenericBillingActivityEvernote server returned un-successful response code0
 GenericBillingActivityException occurred while communication with evernote server,setting alarm0
 GenericBillingActivityEvernote server returned pending response code,setting alarm0
EvernoteServiceGenericbusinessNotebookCreated{Notebook}0
 Loginfailure...0
 Loginfailureexception0
 Loginfailurethrowable0
 Loginreaunthenticatesuccess0
 RegistersuccesscreateUser0
 Registerfailure...0
 RegisterfailureAll...0
 RegisterfailurecreateUserEx0
 Loginloginsuccess0
 LoginfailureClientUnsupported0
 Loginloginfailure0
 ResetPasswordfailure...0
 Loginlogoutsuccess0
SyncServiceExceptionSyncService-updateQuotaquota-notification-950
 ExceptionSyncService-updateQuotaquota-notification-750
 ExceptionSyncService-updateQuotaquota-notification-500
FeatureDiscoveryPromoButtonClickFeatureDiscoveryPromoHidePromo1
 ButtonClickFeatureDiscoveryPromoRemindLater1
 ButtonClickFeatureDiscoveryPromoActivateButton1
 GenericFeatureDiscoveryPromoBackPressed1
UserSetupActivityGenericsetupUserfailure0
 GenericsetupUseralreadyPreactivated0
 GenericsetupUsersuccess0
LandingActivityShow...ShowOneClickRegistration0
 RegisterfailureregistrationUrls0
 LoginfailureLoadingDialog...0
 Registersuccessregistration0
RegistrationFragmentShowPopulateCreateEmailnull0
 Registersubmitattempt0
 RegisterfailureemailValidation0
 RegisterfailureemailExists0
 RegisterfailureusernameValidation0
 RegisterfailureusernameExists0
 RegisterfailurepasswordValidation0
 RegisterfailurenetworkUnreachable0
 RegistercheckUsernamesuccess0
 RegistercheckUsernamefailure0
 Registerfailureregistration0

 

 

 

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值