这两年一直在做无线的測试,兴许还会继续去做无线的測试,可是之前由于时间的原因一直都没有非常细致的了解到代码层面。

最近抽出时间自己做了些app的开发,决定假设想把移动的測试做好做深入。有一定的app开发经验非常的有必要,由于仅仅有这样非常多东西才干真正理解了。

还有一个方面。这本身也非常有趣。

眼下尝试的一些东西都还比較基础,准备持续的做下去。

实践的过程也想陆续整理出来,做下笔记。也给别人一些參考,遇到非常多问题的时候也是到谷歌度娘的找答案。帮助非常多。

眼下很多其它关注android,ios的部分稍继续。

基本上如今不论什么一个有用的app都离不开埋点统计,否则应用撒出去就两眼一抹黑了。也难以做运营和一些决策。

为了进一步了解这一块,除了看现有产品的做法(公司内部平台)。也想自己动手写一下,加深理解,于是选择了业界用得比較多的友盟平台。

统计的维度非常多,只是最主要的新增用户和启动次数。

关于这个。可能就须要涉及到Android的activity的生命周期和状态改变。为了更好的理解,做了个简单的代码尝试。

protectedvoid onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

Log.e(TAG,"enter onCreate”);

}

protectedvoid onStart() {

super.onStart();

Log.e(TAG,"onStart");

}

@Override

protectedvoid onResume() {

super.onResume();

Log.e(TAG,"onResume");

}

@Override

protectedvoid onPause() {

super.onPause();

Log.e(TAG,"onPause");

}

然后做了一些实验:
1. 第一次启动应用main activity有3个状态触发,onCreate。onStart,onResume

2. 按home键将应用切到后台,触发onPause和onStop

3. 长按home键,找到应用,又一次切回前台,触发onStart和onResume

后面看友盟的sample code后发现也是基于这个来统计活跃用户的。好了,以下记录下接入友盟统计的过程。

首先,须要在AndroidManifest.xml中加入权限和一些配置,主要是appkey,这个在友盟站点注冊好账号之后加入应用就能够获取到,Channel ID是自己来定义。

<uses-permissionandroid:name="android.permission.INTERNET"/>

<uses-permissionandroid:name=“android.permission.ACCESS_NETWORK_STATE" />

<uses-permissionandroid:name=“android.permission.READ_PHONE_STATE" />

……
<meta-dataandroid:value=“535f487******"android:name="UMENG_APPKEY"></meta-data>
<meta-dataandroid:value="Test001"android:name="UMENG_CHANNEL”/>
</application>

然后在activity里面加入相应的代码,MobclickAgent class。
import com.umeng.analytics.MobclickAgent;

protectedvoid onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

MobclickAgent.updateOnlineConfig(this);

}

protectedvoid onResume() {

super.onResume();

Log.e(TAG,"onResume");

MobclickAgent.onResume(mContext);

}

protectedvoid onPause() {

super.onPause();

Log.e(TAG,"onPause");

MobclickAgent.onPause(mContext);

}

须要把umeng的jar包加到project里面。

可是在Eclipse里面做完这一步之后发现还是遇到错误,一运行到MobclickAgent的语句就异常了,如以下。官方文档仅仅是提到上面的步骤。

解决方式是把umeng的jar包放到project的libs文件夹下。

接下来,App跑起来,几分钟之后就能够看到数据了。

启动次数这里由于是通过onResume()统计的, 所以有一些细节须要注意,看是否须要调整。

能够看到渠道的结果。就是之前在AndroidManifest.xml里面配置的。

设备的一些信息眼下不能查看当天的结果。要第二天来看。还是比較准确的。

另外也试验了下自己定义的Event。我的demo app里面有两段訪问HTTP接口的地方,分别通过Apache HttpClient和Android HttpClient。想统计下调用次数以及响应时间。

在调用前后埋上相应的代码。
MobclickAgent.onEventBegin(this,"Android_http_visit”);
MobclickAgent.onEventEnd(this,"Android_http_visit");

整体来说,基本统计功能还不错,开发也非常方便,比之前想象的要方便非常多。可是结合我们实际产品用的自研BI工具的数据分析。以及和朋友了解到大规模实际使用的情况,一些偏应用层面的功能还不是特别够用。比方具体的用户訪问路径方面。
以下能给出一些主要的模型。可是假设是产品和运营要做很仔细的分析还须要自己做一些工作。

漏斗模型等由于demo app太简单还没来得及继续深入了解。这样了解下来发现再去读实际产品的运营数据,会感觉更easy理解一点。

Android开发和測试实践 - 接入友盟统计相关推荐

  1. Android开发之带你轻松集成友盟统计

    友盟统计是什么呢?为什么要集成他呢? 当我们需要获取自己写的软件的装机量和用户使用信息时,这时我们可以集成友盟统计. 首先到友盟统计中注册账号什么的就不废话了,直接看创建项目: 在个人中心中的管理里面 ...

  2. APP接入友盟统计,不上报数据问题

    官方文档接入的流程大致如下: 主目录Build.gradle中buildscript .allprojects都加入仓库地址: maven { url 'https://dl.bintray.com/ ...

  3. uni-app中接入友盟统计

    1.首先要有一个友盟的账号,在友盟上创建你的应用. 2.然后进入到manifest.json文件,勾选"Statistic(统计)",uni-app中自带统计sdk使用 3.进入到 ...

  4. 友盟php接入统计,ionic2 接入友盟统计

    SDK下载 ionic2是基于cordova来实现移动app开发的,因此我们需要先下载友盟的cordova sdk:http://dev.umeng.com/analytic... Android配置 ...

  5. Android简单集成友盟统计

    在清单文件添加所需 <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:androi ...

  6. android友盟统计不到数据,友盟的数据统计没有数据

    调用umengAnalytics,接入友盟统计数据,然后我在友盟也设置好了测试设备,但是就是没有数据.怎么办? 附代码: window body{ display: -webkit-box; disp ...

  7. uni-app 微信小程序 + 友盟统计 sdk

    在开发小程序时,有些功能会需要统计用户点击次数.登录人数.访问时长等数据,用来分析用户的一些行为:这里分享一下用 uni-app 开发微信小程序借助友盟 SDK 在前端页面中埋点统计的实现过程: 1. ...

  8. atitit.jndi的架构与原理以及资源配置and单元測试实践

    atitit.jndi的架构与原理以及资源配置and单元測试实践 1. jndi架构 1 2. jndi实现原理 3 3. jndi资源配置 3 3.1. resin  <database> ...

  9. uni-app接入友盟

    最近来到这家新公司,帮忙看之前做的crm系统的app端(uni-app),当时负责人说让我看看友盟,当时大脑第一反应,友盟是啥呢?友盟两个字咋写,竟然没听过,觉得干程序员确实有点悲哀耶,然后问他友盟两 ...

最新文章

  1. java 应用连接oracle 超级慢的解决方法
  2. CSS学习15之定位
  3. Java中JMX管理器的作用,项目中有什么具体使用?
  4. 一起谈.NET技术,数据库访问的性能问题与瓶颈问题
  5. 使用TortoiseGit,设置ssh方式连接git仓库
  6. Windows下使用ffmpeg为视频添加字幕
  7. kubenetes中port、targetPort、nodePort、containerPort的区别与联系
  8. 解决 Azure AD 在 Azure Front Door 下登录失败的问题
  9. python填表_小Python填表得到d
  10. Intent传递数据时,可以传递哪些类型数据
  11. Spring Cloud中Hystrix 线程隔离导致ThreadLocal数据丢失
  12. 小米CC9 白色恋人版实拍图赏:这颜值 很小米!
  13. YUV444,YUV420P,YUV420SP,YUV422P,YUV422SP,NV12,NV21,NV16,NV61等格式区分与存储简介
  14. 2019 ICPC西安邀请赛 游记
  15. 数据结构-栈详解(大概)
  16. 【作业】随机数+参数可变的方法+实验任务(输出素数+使用递归,判断是否为回文+统计一篇英语问斩单词出现频率)...
  17. 国标GB/T28181流媒体服务器安防4G摄像头互联网直播EasyGBS如何实现H265网页直播的?
  18. 今日头条推荐算法详解(PDF下载)
  19. java判断string是数字_(转)java判断string变量是否是数字的六种方法小结
  20. (几何学:五六边形面积)编写一个程序,提示用户输入五边形顶点到中心的距离r,然后算出五边形的面积。

热门文章

  1. FANUC、ABB、YASKAWA、SCARA机器人入门书籍整理
  2. 颅脑外伤护理查房PPT模板
  3. 部门中人力资源培养的两点建议
  4. png、jpg等图片格式转eps,用于latex
  5. 亲密接触中国SaaS应用(下)
  6. 深度步态识别综述(一)
  7. [杭州衡泰]软件测试面经
  8. 软件园里的流氓(11)
  9. 报告称谷歌仍为工科生最具吸引力雇主
  10. ecu故障现象_发动机不能启动的原因和故障排除方法