版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2对IMT3GPP已经决定在下一代移动技术的基本IPv内几亿手机用户将成为IPv6的用户。从这个意以化的)。目前的商务模式正演变成移动年,索尼爱立信、LGHTC、摩托罗拉,中兴,华为等。4)WindowsPhoneHTCLG等5)黑莓(BlackBerry)黑莓在欧美市场是第一商务智能手机,引入中国后,主要面向政企集团客户,苏宁在信息社会中手机及其他无线设备越来越多的走进普通百姓的工作和生活随着信息网络化的不断进展手机及其他无线设备上网络势在必行。但是传统手机存在以下弊端:1)传统手机出厂时均由硬件厂商固化程序,程序不能增加、删除有了错误也不能更新、修改若要增加新功能必须另换一部手机。务器时才会占用网络带宽。PC数据流量保持持平。相关技术简介序设计方法Java象程序设计的基本思路是通过构造和组织对象来求解问题的。对象很好的类,设法将问题分解下去,而最开始构造的类通过组织这决指定问题,例如Java的应用程序和小应用程序境及相关技术介绍2ToolkitEclipse现实而言不是问题,因为Eclipse平台的目的,是提供多种软件开发工具的整合机制,这些工具会成为Eclipse外挂程序,平台必须用外挂程序加以扩充才有用处E。clipse设计的美妙之处,2件、用户界面和应用软件组成。它采用软件堆层(SoftwareStack,又名软件叠层)的括通话程序,短信程序等,应用软件则由各公司自行开发,以Java作为编写程(1)开放性(2)挣脱束缚手机随意接入网络已不是运营商口中的笑谈。(3)丰富的硬件(4)开发商dndroidWINWIN32应用—-进程间相互独立,互不影响应用Picture应用Book应用View窗体V1窗体V3窗体V2窗体B1窗体B2窗体B3窗体P1窗体P2窗体P3AndroidAndroid应用—-进程间相互复用应用Book窗体B1窗体B2窗体B3应用View窗体V1窗体V2窗体V3y可执行代码NativeAndroid资源文件(res)项目roidManifestxml体需求手机流量控制分析系统数据采集模块信息统计模块流量绘制模块示数据WLAN详细设计4.1软件流程图ActivityActivity的流程分析tartActivity是否需要暂停当前ActivityN处理暂停数据状态N是否可以ActivityYBinder机制Activity暂停正在运行的启动一个暂停完成ActivityYpublicclassliuliangjiankongextendsActivity{/**Calledwhentheactivityisfirstcreated.*/publicvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.start);Intentintent=newIntent();intent.setClass(liuliangjiankong.this,MonitoringService.class);this.startService(intent);newHandler().postDelayed(newRunnable(){publicvoidrun(){//TODOAuto-generatedmethodstubIntentintent=newIntent(liuliangjiankong.this,mainPage.class);liuliangjiankong.this.startActivity(intent);liuliangjiankong.this.finish();LayoutLayout使用的整体布局ViewViewViewViewViewVertical列Horizontal行其可选值有“fill_paren”t、“wrap_conten”t、具体数字(单位为px)。其中“fill_paren”t代表填满其父元素。对于顶级元素来说,其父元素就是整个手机屏幕。“wrap_content”代表该元素的大小仅包裹其自身内容,而数字则代表其占相应的px;bg景的程序代码。android:layout_width="fill_parent"android:layout_height="fill_parent"android:orientation="horizontal"android:gravity="center"android:layoutAnimation="@anim/melshow"><TextViewandroid:layout_width="fill_parent"android:layout_height="fill_parent"android:background="@drawable/bg02"/>程序的欢迎界面。此外,还可以加入android:text来显示文字。4.3.1Android应用启动类已安装应用4)activity生命周期管理(暂停,恢复,停止,销毁等)activitytask->前台,最近task查询,运行时26)激活/去激活serviceprovidernagerService我们是在Activity中使用getPackageManager方法获取一个IPackageManagerStubProxy的对象由IPackageManager.Stub.Proxy代理执行PackageManager操作,IPackageManager.Stub.Proxy实际代理的是PackageManagerService。实本身TrafficStats类也是读取Linux提供的文件对象系统类型的文本进行解析。.TrafficStats类中,提供了多种静态方法,可以直接调用获取,返回类型均为long型,如果返回等于-1代表UNSUPPORTED当前设备不支持统计。Java代码如下:staticlonggetMobileRxBytes()//获取通过Mobile连接收到的字节总数,不staticlongstaticlong等等staticlongstaticlonggetMobileRxPackets()//获取Mobile连接收到的数据包总数getMobileTxBytes()//Mobile发送的总字节数getMobileTxPackets()//Mobile发送的总数据包数getTotalRxBytes()//获取总的接受字节数,包含Mobile和WiFigetTotalRxPackets()//总的接受数据包数,包含Mobile和WiFigetTotalTxBytes()//总的发送字节数,包含Mobile和WiFi等getTotalTxPackets()//发送总数据包数,包含Mobile和WiFi2等staticlonggetUidRxBytes(intuid)//获取某个网络UID的接受字节数staticlonggetUidTxBytesintuid/获取某个网络UID的发送字节数mobileRx=TrafficStats.getMobileRxBytes();mobileTx=TrafficStats.getMobileTxBytes();//获取全部网络接收、发送数据总量totalRx=TrafficStats.getTotalRxBytes();totalTx=TrafficStats.getTotalTxBytes();wifiRx=totalRx-mobileRx;wifiTx=totalTx-mobileTx;if(mobileRx==-1&&mobileTx==-1){in.putExtra("mobileRx","No");2in.putExtra("mobileTx","No");}else{old_mobileRx=mobileRx;old_mobileTx=mobileTx;mrx=(long)((float)(Math.round(mrx*100.0))/100);mtx=(long)((float)(Math.round(mtx*100.0))/100);in.putExtra("mobileRx",mrx/1024+"KB");in.putExtra("mobileTx",mtx/1024+"KB");}if(wifiRx==-1&&wifiTx==-1){in.putExtra("wifiRx","No");in.putExtra("wifiTx","No");}else{old_wifiRx=wifiRx;iold_wifiTx=wifiTx;wrx=(long)((float)(Math.round(wrx*100.0))/100);//保留两位wtx=(long)((float)(Math.round(wtx*100.0))/100);in.putExtra("wifiRx",wrx/1024+"KB");in.putExtra("wifiTx",wtx+"KB");}经过真机测试确实是“从本次开机到本次关机的统计量”而且:1.getMobileRxBytes();getMobileRxPackets();getMobileTxBytes();getMobileTxPackets();这四个方法读取的都是系统proc/net/dev文件网络一断掉文件就消失了,重新打开网络后重新开始统计。2.getUidRxBytes(intuid);getUidTxBytes(intuid)两个方法(包含mobie流量和本地通信流量)网络的断开和重新连接并不受影响,关机后数据清空。4.3.2流量统计中的算法实现faceface|bytespacketserrsdropfifoframemulticastbytespackepressedlo0000procuidstatd/proc/uid_stat/%d"%d为进程的UID。这个文件里只有两项数看命名应该就能看出代表什么,一个代表总的接受字节数,一个代表总的发送字节数。这两个文件为非标准linux内核文件,由android内核层/kernel/net/Socket.c的sock_sendmsg函数负责写入,用户层套接字通信在内核层最终会调用此函数(包括本Android流量监控主要是有两种方法:方法一:抓包MicrosoftWindowsXP1.2600]00000000eth9733862390000000000tunl000000000000000re0#00000000000000000000000们要获取流量可以通过这个文件进行读取publicStringgetinfo(Stringpath){Filefile;Stringstr="";FileInputStreamin;file=newFile(path);wFileInputStreamfileintlengthintfilelength();byte[]temp=newbyte[length];str=EncodingUtils.getString(temp,TEXT_ENCODING);}catch(IOExceptione){DisplayToast(e.toString());}returnstr;}publicvoidwritefile(Stringstr,Stringpath){Filefile;FileOutputStreamout;try{2file=newFile(path);file.createNewFile();out=newFileOutputStream(file);StringinfoToWrite=str;out.write(infoToWrite.getBytes());out.close();}catch(IOExceptione){//将出错信息打印到LogcatDisplayToast(e.toString());}}封装到了A.TrafficStats类中。其原理就是读取上文提到的那几处文件。其中有的方法也是读取的别的文件。这其中可能遇到的问题是:没有wifi的情况下,各进程获得的getUidRxBytes之和与getMobileRxBytes所返回的值不相等。原因在于getUidRxByte使s读取上文提到的文件。而getMobileRxByte读s取的是sys/class/net/rmnet0/statistics/rx_btessys/class/net/ppp0/statistics/rx_b。ye俩s文件。而且在getUidRxByte返s回的值中包含了本地通信的流量,比如本地进程间so的cket通信。所以这两个值加起来有所出入!importandroid.graphics.drawable.Drawable;publicclassApplication{privateStringname;privateDrawableicon;privateStringGTraffic;publicvoidsetIcon(Drawableicon){this.icon=icon;}2是柱状显示的流量部分代码publicIntentexecute(Contextcontext){//TODOAuto-generatedmethodstubdouble[]minValues=newdouble[]{0,0,0,0,0,0,0};//double[]maxValues=newdouble[]{20,10,25,13,21,19,15};DatabaseAdapterdb=newDatabaseAdapter(context);Calendarcalendar=Calendar.getInstance();intweekDay=calendar.get(Calendar.DAY_OF_WEEK);double[]maxValues=newdouble[7];intday=calendar.get(Calendar.DATE);intSunday=day-weekDay+1;intmonth=calendar.get(Calendar.MONTH)+1;intyear=calendar.get(Calendar.YEAR);for(inti=0;i<7;i++){Longtemp=db.calculate(year,month,++Sunday,1);maxValues[i]=newBigDecimal(temp).divide(newBigDecimal(1000000),1,1).doubleValue();}dbclose;XYMultipleSeriesDatasetdataset=newXYMultipleSeriesDataset();angeCategorySeriesseriesnewRangeCategorySeriesintlength=minValues.length;for(intk=0;k<length;k++){series.add(minValues[k],maxValues[k]);}4.5功能实现界面上图为流量监控系统的模拟操作界面,底端的五个按键,分别为:实时监控,联网。<?xmlversion="1.0"encoding="utf-8"?><ScrollViewxmlns:android="/apk/res/android"android:id="@+id/scroll_view"android:layout_width="fill_parent"android:layout_height="fill_parent"android:background="@drawable/bgwm">2<LinearLayoutandroid:orientation="vertical"android:id="@+id/aboutus"android:layout_width="fill_parent"android:layout_height="fill_parent">wandroid:id="@+id/help"android:layout_width="fill_parent"android:layout_height="wrap_content"android:textSize="24dip"android:textStyle="bold"android:text="android:gravity="center"android:padding="3dip"/>wandroid:id="@+id/help1"android:layout_width="fill_parent"android:layout_height="wrap_content"android:textSize="20dip"android:textStyle="bold"androidtext.软件简介"/><TextViewandroid:id="@+id/help2"android:layout_width="fill_parent"android:layout_height="wrap_content"android:paddingLeft="18dip"android:text="本软件为用户提供上网流量监控和流量统计、以及进程<TextViewandroid:id="@+id/help3"android:layout_width="fill_parent"android:layout_height="wrap_content"android:textSize="20dip"android:textStyle="bold"androidtext.操作说明"
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二四年度委托代建项目管理合同3篇
- 2024年度充电桩网络安全与数据保护合同
- 2024年度城市供水供气服务合同
- 小区门口房子买卖合同范本
- 2024版定制家居礼品采购合同
- 2024年度技术服务合同:云计算平台的技术支持与维护
- 精装修新房买卖合同范本
- 快递承包合同
- 二零二四年度电子产品有限公司销售合同
- 数字化时代的品牌推广策略与效果考核试卷
- 吉林师范大学《复变函数与积分变换》2021-2022学年第一学期期末试卷
- 传染病实验室检查的质量控制
- 2024年宁德监狱五金配件供应与服务合同
- 2024年秋新人教PEP版3年级上册英语教学课件 Unit 4 第4课时 Part B Let's talk
- 广东开放大学2024年秋《国家安全概论(S)(本专)》形成性考核作业参考答案
- 2024级高一上期期中测试数学试题含答案
- 01-第一章 区域与区域发展
- 《体育与健康》课程标准(高职)
- 六年级上册《如何写好作文开头和结尾》省公开课获奖课件说课比赛一等奖课件
- 建筑灯带施工方案
- 天然气管道保护施工方案
评论
0/150
提交评论