zoukankan      html  css  js  c++  java
  • 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


    后面看友盟的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理解一点。





  • 相关阅读:
    使用iptables禁止外网访问tomcat的8080端口
    解决ie浏览器下载apk或ipa变为zip
    'ᄈ'
    centos上安装grafana
    vertica单节点故障恢复 Startup Failed, ASR Required
    vertica审计日志
    centos安装nginx1.17.9
    centos上nginx转发tcp请求
    centos 安装mysql8.0.16
    centos下导出docx为html
  • 原文地址:https://www.cnblogs.com/gcczhongduan/p/5080393.html
Copyright © 2011-2022 走看看