流量统计原理,sliding抽屉的使用

54.流量统计原理

uid:user id 用户id。操作系统分配给应用程序的一个固定的编号。一旦应用程序装到手机上,id就固定不变了。

用户id是自增长的,卸载软件时uid会被回收,再新装软件时,系统会把回收的uid分配给新装的软件。

stat:状态

tcp_rcv:receive 接收 下载

tcp_snd:send 发送 上传


应用程序下载的流量在/proc/uid_stat/uid/tcp_rcv文件中记录
应用程序上传流量在/proc/uid_stat/uid/tcp_snd文件中记录

android2.3之前获得流量需要读取上面的文件,2.3之后Google工程师给我们提供了读取流量的API。


List<ApplicationInfo> infos = pm.getInstalledApplications(0);

for(ApplicationInfo info : infos){

int uid = info.uid;

应用程序下载和上传的流量

long uidRxBytes = TrafficStats.getUidRxBytes(uid);

long uidTxBytes = TrafficStats.getUidTxBytes(uid);

获取手机3g/2g网络上传和下载的总流量

TrafficStats.getMobileTxBytes();
TrafficStats.getMobileRxBytes();
手机全部网络接口 包括wifi,3g、2g上传的总流量
TrafficStats.getTotalTxBytes();
TrafficStats.getTotalRxBytes();

}


55.sliding抽屉的使用

SlidingDrawer与其他控件不同,它有一些必须配置的属性:id、handle、content。handle是把手,content是抽屉里包含的内容。定义时,handle和content属性也是以@+id/name的形式定义的。该控件必须包含子孩子:把手和抽屉把手可以是布局文件,但抽屉必须是布局文件),他们都是通过@id来表明自己是把手还是抽屉。抽屉里的内容写在布局文件中。抽屉的方向默认是竖直的,从下往上拉的,若要改为从右向左拉,改方向为水平方向即可。如下:

<SlidingDrawer
    android:id="@+id/sd_show"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:content="@+id/my_content"
    android:handle="@+id/my_handle"
    android:orientation="horizontal" >

    <ImageView
        android:id="@id/my_handle"
        android:layout_width="20dp"
        android:layout_height="20dp"
        android:src="@drawable/ic_launcher" />

    <LinearLayout
        android:id="@id/my_content"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:background="#22000000" >

        <TextView
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text="我是抽屉里的内容" />
    </LinearLayout>
</SlidingDrawer>

你可能感兴趣的:(流量统计原理,sliding抽屉的使用)