全部产品
云市场

自动化日志

更新时间:2020-03-27 17:35:35

自动化日志用于记录页面切换事件。您可以借此分析应用各功能或运营页面的 PV 和 UV 等数据。

埋点

初始化

  1. MPLogger.enableAutoLog();
  • 对于 Porta/Bundle 工程,推荐在 MockLauncherActivityAgentpostInit 方法中调用。
  • 对于 inside 和 aar 工程,推荐在 ApplicationonCreate 方法中调用,且需在调用 mPaaS 框架初始化方法之后。

Activity

Activity 从 onResume 开始到 onPause 结束,会记录一次页面打开的 PV,页面标识为 Activity 的类名。

  • 继承自 mPaaS 框架的 BaseActivityBaseFragmentActivityBaseAppCompatActivity 的 Activity 可自动记录。
  • 若不继承 mPaaS 基类,可自行在 BaseActivity 中添加监听生命周期代码:

    1. public class BaseActivity extends Activity {
    2. @Override
    3. protected void onCreate(Bundle savedInstanceState) {
    4. super.onCreate(savedInstanceState);
    5. MPTracker.onActivityCreate(this);
    6. }
    7. @Override
    8. public void onWindowFocusChanged(boolean hasFocus) {
    9. super.onWindowFocusChanged(hasFocus);
    10. MPTracker.onActivityWindowFocusChanged(this, hasFocus);
    11. }
    12. @Override
    13. protected void onResume() {
    14. super.onResume();
    15. MPTracker.onActivityResume(this);
    16. }
    17. @Override
    18. protected void onPause() {
    19. super.onPause();
    20. MPTracker.onActivityPause(this);
    21. }
    22. @Override
    23. protected void onDestroy() {
    24. super.onDestroy();
    25. MPTracker.onActivityDestroy(this);
    26. }
    27. }

Fragment

  • 使用 mPaaS 提供的 support-v4 库中的 Fragment,需让 BaseFragment 实现 TrackPageConfig 接口:

    1. public class BaseFragment extends Fragment implements TrackPageConfig {
    2. /**
    3. * 页面标识,一般使用类名
    4. * 不传会导致控制台页面分析中不显示
    5. */
    6. @Override
    7. public String getPageSpmId() {
    8. return this.getClass().getName();
    9. }
    10. @Override
    11. public Map<String, String> getExtParam() {
    12. return null;
    13. }
    14. @Override
    15. public boolean isTrackPage() {
    16. return true;
    17. }
    18. }
  • 使用官方提供的 support-v4 库中的 Fragment,需让 BaseFragment 实现 TrackPageConfig 接口,并添加监听生命周期代码:

    1. public class BaseFragment extends Fragment implements TrackPageConfig {
    2. /**
    3. * 页面标识,一般使用类名
    4. * 不传会导致控制台页面分析中不显示
    5. */
    6. @Override
    7. public String getPageSpmId() {
    8. return this.getClass().getName();
    9. }
    10. @Override
    11. public Map<String, String> getExtParam() {
    12. return null;
    13. }
    14. @Override
    15. public boolean isTrackPage() {
    16. return true;
    17. }
    18. @Override
    19. public void onResume() {
    20. super.onResume();
    21. MPTracker.onFragmentResume(this);
    22. }
    23. @Override
    24. public void onPause() {
    25. super.onPause();
    26. MPTracker.onFragmentPause(this);
    27. }
    28. @Override
    29. public void onHiddenChanged(boolean hidden) {
    30. super.onHiddenChanged(hidden);
    31. MPTracker.onFragmentHiddenChanged(this, hidden);
    32. }
    33. @Override
    34. public void setUserVisibleHint(boolean isVisibleToUser) {
    35. super.setUserVisibleHint(isVisibleToUser);
    36. MPTracker.onFragmentSetUserVisibleHint(this, isVisibleToUser);
    37. }
    38. @Override
    39. public void onDestroy() {
    40. super.onDestroy();
    41. MPTracker.onFragmentDestroy(this);
    42. }
    43. }