Android开发和測试实践 - 接入友盟统计
这两年一直在做无线的測试,兴许还会继续去做无线的測试,可是之前由于时间的原因一直都没有非常细致的了解到代码层面。
最近抽出时间自己做了些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
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvc3VwZXJxYQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">
后面看友盟的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跑起来,几分钟之后就能够看到数据了。
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvc3VwZXJxYQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">
启动次数这里由于是通过onResume()统计的, 所以有一些细节须要注意,看是否须要调整。
能够看到渠道的结果。就是之前在AndroidManifest.xml里面配置的。
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvc3VwZXJxYQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">
设备的一些信息眼下不能查看当天的结果。要第二天来看。还是比較准确的。
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvc3VwZXJxYQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvc3VwZXJxYQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">
另外也试验了下自己定义的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开发和測试实践 - 接入友盟统计的更多相关文章
- Android开发之带你轻松集成友盟统计
友盟统计是什么呢?为什么要集成他呢? 当我们需要获取自己写的软件的装机量和用户使用信息时,这时我们可以集成友盟统计. 首先到友盟统计中注册账号什么的就不废话了,直接看创建项目: 在个人中心中的管理里面 ...
- uniapp接入友盟统计
话不多说,上图 如果找不到上图,那就下图: 然后就隔天去平台看数据吧 ^_^
- android手机安全性測试手段
android手机安全性測试手段 罗列一下自己经常使用的android手机安全性測试攻击手段: 1. fiddler和tcpdump+wireshark抓包分析,模拟改动http请求參数,检验漏洞 2 ...
- android开发系列之友盟统计集成
相比大家都遇到这种情况,当我们的app上线之后,我们想要实时的跟踪了解到app里面的bug情况.新增用户情况.用户相关的行为属性情况等.但是如果自己在app里面去开发集成这些功能,一方面开发工作量还挺 ...
- atitit.jndi的架构与原理以及资源配置and单元測试实践
atitit.jndi的架构与原理以及资源配置and单元測试实践 1. jndi架构 1 2. jndi实现原理 3 3. jndi资源配置 3 3.1. resin <database> ...
- Android 友盟统计的集成与使用(包含多渠道打包配置)
前言 app上线后,一般公司都希望跟踪app在市场上的使用情况.包括新增用户.活跃用户.渠道信息.错误信息等,还有例如商城类的app,需要跟踪用户最喜欢浏览哪种类型的店铺或商品.这些都可以通过集成友盟 ...
- Android之2次打开添加友盟统计代码,后缀会添加广告
这里首先列明步骤, 做一个标识仅此而已. 1. 首先使用apktool来反编译你待需要加入友盟统计的apk包, 具体如何使用与配置apktool, 请参考我关于apktool配置的文章. 2. 然后自 ...
- gradle多渠道打包及友盟统计-eclipse版本
在进行渠道打包的之前,先看看准备篇,知道打包为了什么. 参见1.0android批量打包认知. eclipse中使用gradle多渠道打包全部流程 一.生成gradle文件,配置本地的gradle环境 ...
- UmengAppDemo【友盟统计SDK集成以及多渠道打包配置,基于V7.5.3版本】
版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 这里只是记录下集成友盟统计SDK以及简单配置多渠道打包的步骤.所以1.该Demo不能运行:2.配置多渠道打包只是一种简单的写法,具体 ...
随机推荐
- easyui树查找
前端查询 /* 树查询*/ function searchMaterial(){ var parentNode=$('#selectMaterialTree').tree('getRoots'); / ...
- 【hdu 6181】Two Paths
[链接]http://acm.hdu.edu.cn/showproblem.php?pid=6181 [题意] 让你求从1到n的次短路 [题解] 模板题; 因为点可以重复走; 则一定会有次短路. di ...
- MySQL各个版本的区别
文章出自:http://blog.sina.com.cn/s/blog_62b37bfe0101he5t.html 感谢作者的分享 MySQL 的官网下载地址:http://www.mysql. ...
- POJ 3045 Cow Acrobats (最大化最小值)
题目链接:click here~~ [题目大意] 给你n头牛叠罗汉.每头都有自己的重量w和力量s,承受的风险数rank就是该牛上面全部牛的总重量减去该牛自身的力量,题目要求设计一个方案使得全部牛里面风 ...
- matlab 文件路径问题
1. fullfile:路径补全 f = fullfile(filepart1,...,filepartN) 显然可变参数之间填充的路径分隔符(path separator),会根据操作系统而变化: ...
- Android SocketService
package com.freer.infusion.module.service; import android.app.ActivityManager; import android.app.Pe ...
- JS搜索菜单实现
1 <!--菜单搜索功能--> 2 <!--先写静态页面--> 3 <!DOCTYPE html> 4 <html> 5 <head> 6 ...
- ANSI转UTF-8中文无乱码解决方案
近期做的项目需要使用Doxygen生成文档,由于前期代码不是本人完成,他使用的是ANSI格式的文件,后来我用Notepad++写其他文件时,默认保存为UTF-8 无BOM编码格式,因此整个项目文件中既 ...
- session的生命周期是怎样的
session的生命周期是怎样的 一.总结 一句话总结:Tomcat中Session的默认失效时间为20分钟.如果我们敲代码的时候把它设置成1个月,那么这一个月的数据会代替默认20分钟的数据,使ses ...
- amazeui学习笔记--css(常用组件9)--导航nav
amazeui学习笔记--css(常用组件9)--导航nav 一.总结 1.导航基本使用:<ul> 添加 .am-nav class 以后就是一个基本的垂直导航.默认样式中并没有限定导航的 ...