http://www.infoq.com/cn/articles/crashlytics-crash-statistics-tools 简介 Crashlytic 成立于2011年,是专门为移动应用开者发提供的保存和分析应用崩溃信息的工具.Crashlytics的使用者包括:支付工具Paypal, 点评应用Yelp, 照片分享应用Path, 团购应用GroupOn等移动应用. 2013年1月,Crashlytics被Twitter收购,成为又一个成功的创业产品.被收购之后,由于没有了创业公司的不…
1, Dalvik & ART Android在4.4之前一直使用的Dalvik虚拟机作为App的运行VM的, 4.4中引入了ART作为开发者备选, 5.0起正式将ART作为默认VM了. 我们首先来简单了解下二者: 1.1 Dalvik 如果只是想简单了解, 个人觉得百度百科上这个Dalvik的介绍基本就满足要求了. 如果大家想深入, 可以看下老罗的Android之旅中Dalvik的相关博文, 从代码层面上分析了Dalvik的启动, 运行机制等. 值得一看. 需要说明的是, Dalvik采用的是…
今天介绍一下Android的电话管理器--TelephonyManager,TelephonyManager管理手机通话状态.电话网络信息的服务类,获取TelephonyManager: TelephonyManager tManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE); 下面直接上个实例: public class TelephonyStatus extends Activity { ListVi…
一:android 进程和线程 进程是程序运行的一个实例.android通过4大主件,弱化了进程的概念,尤其是在app层面,基本不需要关系进程间的通信等问题. 但是程序的本质没有变,尤其是多任务系统,以事件为驱动的软件系统基本模式都是如下: 程序的入口一般是main: 1.初始化: 比如创建窗口,申请资源等. 2.进入while(true) 在循环中处理各种事件,直到进程退出. 四大组件是进程的部分载体,配置进程在androidmanifest.xml里面,android:process 属性.…
android studio统计项目的代码行数的步骤如下: 1)按住Ctrl+Shift+A,在弹出的框输入‘find’,然后选择Find in Path.(或者使用快捷键Ctrl+Shift+F) 2)在弹出Find in Path的框中的Text to find输入\n,接着勾选Regular expression(正则表达式),Context选择anywhere, Scope根据你想要统计的范围进行选择,File mask选择*.java.(在这里统计项目的Java的代码行数) 3)下图的…
一:进程和线程的由来 进程是计算机科技发展的过程的产物. 最早计算机发明出来,是为了解决数学计算而发明的.每解决一个问题,就要打纸带,也就是打点. 后来人们发现可以批量的设置命令,由计算机读取这些命令,并挨个执行. 在使用的过程中,有一个问题,如果要做I/O操作,是非常耗时的,这个时候CPU是闲着的,这对于计算机资源是一个巨大的浪费. 于是,人们发明了进程这个东西.每个程序就是一个进程,由操作系统管理,当进行复杂的耗时操作是,CPU可以调度处理其他的进程,从而是性能在整体上提高. 线程的目的:…
Thread,Looper的组合是非常常见的组合方式. Looper可以是和线程绑定的,或者是main looper的一个引用. 下面看看具体app层的使用. 首先定义thread: package com.joyfulmath.androidstudy.thread; import com.joyfulmath.androidstudy.TraceLog; import android.os.Bundle; import android.os.Handler; import android.o…
继续分析handler 和looper 先看看handler的 public void dispatchMessage(Message msg) { if (msg.callback != null) { handleCallback(msg); } else { if (mCallback != null) { if (mCallback.handleMessage(msg)) { return; } } handleMessage(msg); } } 所以消息的处理分层三种,就是 1.传入一…
关于android消息机制 已经写了3篇文章了,想要结束这个系列,总觉得少了点什么? 于是我就在想,android为什么要这个设计消息机制,使用消息机制是现在操作系统基本都会有的特点. 可是android是把消息自己提供给开发者使用!我们可以很简单的就在一个线程中创建一个消息系统,不需要考虑同步,消息队列的存放,绑定. 自己搞一个消息系统麻烦吗?android到底为什么要这么设计呢? 那我们自己先搞一个消息机制看看,到底是个什么情况? 首先消息肯定需要消息队列: package com.joyf…
对于Android流量统计来说在2.2版中新加入了TrafficStats类可以轻松获取,其实本身TrafficStats类也是读取Linux提供的文件对象系统类型的文本进行解析. android.net.TrafficStats类中,提供了多种静态方法,可以直接调用获取,返回类型均为 long型,如果返回等于-1代表 UNSUPPORTED 当前设备不支持统计. static long getMobileRxBytes() //获取通过Mobile连接收到的字节总数,不包含WiFi stati…