Android防火墙+流量统计代码Word文档格式.docx
- 文档编号:20284053
- 上传时间:2023-01-21
- 格式:DOCX
- 页数:15
- 大小:25.52KB
Android防火墙+流量统计代码Word文档格式.docx
《Android防火墙+流量统计代码Word文档格式.docx》由会员分享,可在线阅读,更多相关《Android防火墙+流量统计代码Word文档格式.docx(15页珍藏版)》请在冰豆网上搜索。
Auto-generated
method
stub
15.
16.
if(intent.getAction().equals(Intent.ACTION_BOOT_COMPLETED)){
17.
bootActivityIntent=new
Intent(context,mService1.class);
//启动服务
18.
bootActivityIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
19.
writefile("
0,0,0,0,0,0,0,0,0,0,0,0"
ONPATH);
20.
context.startService(bootActivityIntent);
21.
Toast.makeText(context,
Netcounter
service
has
been
lauched"
Toast.LENGTH_LONG).show();
22.
Api.applySavedIptablesRules(context,
false);
//应用防火墙规则
23.
Wall
rules
have
24.
}
25.
26.
writefile(String
str,String
path
)
27.
28.
File
file;
29.
try
30.
//创建文件
31.
file
new
File(path);
32.
file.createNewFile();
33.
34.
//打开文件file的OutputStream
35.
out
FileOutputStream(file);
36.
infoToWrite
str;
37.
//将字符串转换成byte数组写入文件
38.
out.write(infoToWrite.getBytes());
39.
//关闭文件file的OutputStream
40.
out.close();
41.
42.
43.
44.
catch
(IOException
e)
45.
//将出错信息打印到Logcat
46.
47.
48.
mService1模块
后台服务,用于维护流量日志
1.public
mService1
Service
2.{
3.
4.
5.
private
Handler
objHandler
Handler();
6.
int
intCounter=0;
7.
mHour;
8.
mMinute;
9.
mYear;
mMonth;
mDay;
mdate;
DEV_FILE
/proc/self/net/dev"
//系统流量文件
String[]
ethdata={"
0"
"
};
gprsdata={"
wifidata={"
data="
//对应on.txt里面的格式
ETHLINE="
eth0"
//以太网信息所在行
GPRSLINE="
rmnet0"
WIFILINE="
tiwlan0"
TEXT_ENCODING
UTF-8"
LOGPATH
/data/data/zy.dnh/log.txt"
Runnable
mTasks
Runnable()
run()//运行该服务执行此函数
refresh();
intCounter++;
DisplayToast("
Counter:
+Integer.toString(intCounter));
objHandler.postDelayed(mTasks,
30000);
//每3000毫秒执行一次
onStart(Intent
intent,
startId)
//writefile("
//每次启动服务
初始化onpath
49.
0);
50.
super.onStart(intent,
startId);
51.
52.
53.
onCreate()
54.
55.
56.
57.
super.onCreate();
58.
59.
60.
61.
IBinder
onBind(Intent
62.
63.
64.
65.
66.
return
null;
67.
68.
69.
onDestroy()
70.
71.
72.
73.
/*
*/
74.
objHandler.removeCallbacks(mTasks);
75.
super.onDestroy();
76.
77.
DisplayToast(String
str)
78.
79.
Toast.makeText(this,str,Toast.LENGTH_SHORT).show();
80.
81.
readdev()
82.
83.
FileReader
fstream
84.
85.
FileReader(DEV_FILE);
86.
87.
88.
(FileNotFoundException
89.
Could
not
read
+
DEV_FILE);
90.
91.
92.
BufferedReader
in
BufferedReader(fstream,
500);
93.
line;
94.
segs;
95.
netdata;
96.
97.
count=0;
98.
k;
99.
j;
100.
101.
while
((line
in.readLine())
!
null)
102.
segs
line.trim().split("
:
);
103.
if(line.startsWith(ETHLINE))
104.
105.
106.
netdata=segs[1].trim().split("
107.
for(k=0,j=0;
k<
netdata.length;
k++)
108.
109.
if(netdata[k].length()>
0)
110.
111.
112.
ethdata[j]=netdata[k];
113.
j++;
114.
115.
116.
117.
else
if(line.startsWith(GPRSLINE))
118.
119.
120.
121.
122.
123.
124.
125.
126.
gprsdata[j]=netdata[k];
127.
128.
129.
130.
131.
if(line.startsWith(WIFILINE))
132.
133.
134.
135.
136.
137.
138.
139.
140.
wifidata[j]=netdata[k];
141.
142.
143.
144.
145.
146.
147.
148.
149.
count++;
150.
151.
fstream.close();
152.
153.
154.
155.
DisplayToast(e.toString());
156.
157.
158.
getinfo(String
path)
159.
160.
161.
str="
162.
FileInputStream
in;
163.
try{
164.
//打开文件file的InputStream
165.
166.
FileInputStream(file);
167.
//将文件内容全部读入到byte数组
168.
length
(int)file.length();
169.
byte[]
temp
byte[length];
170.
in.read(temp,
0,
length);
171.
//将byte数组用UTF-8编码并存入display字符串中
172.
str
EncodingUtils.getString(temp,TEXT_ENCODING);
173.
//关闭文件file的InputStream
174.
in.close();
175.
176.
177.
178.
179.
180.
181.
182.
183.
184.
185.
186.
187.
188.
189.
190.
191.
192.
193.
194.
195.
196.
197.
198.
199.
200.
201.
202.
203.
204.
refresh()
205.
206.
207.
208.
readdev();
//读取本次开机之后直到当前系统的总流量
209.
210.
data=ethdata[0]+"
+ethdata[1]+"
+ethdata[8]+"
+ethdata[9]+"
211.
+gprsdata[0]+"
+gprsdata[1]+"
+gprsdata[8]+"
+gprsdata[9]+"
212.
+wifidata[0]+"
+wifidata[1]+"
+wifidata[8]+"
+wifidata[9];
213.
onstr=getinfo(ONPATH);
//读取on.txt记录到onstr里
214.
ondata[]=onstr.split("
//将onstr各项分离
放到ondata里
215.
//计算增量
216.
[]
delta=new
[12];
217.
218.
delta[0]=Integer.parseInt(ethdata[0])-Integer.parseInt(ondata[0]);
219.
delta[1]=Integer.parseInt(ethdata[1])-Integer.parseInt(ondata[1]);
220.
delta[2]=Integer.parseInt(ethdata[8])-Integer.parseInt(ondata[2]);
221.
delta[3]=Integer.parseInt(ethdata[9])-Integer.parseInt(ondata[3]);
222.
delta[4]=Integer.parseInt(gprsdata[0])-Integer.parseInt(ondata[4]);
223.
delta[5]=Integer.parseInt(gprsdata[1])-Integer.parseInt(ondata[5]);
224.
delta[6]=Integer.parseInt(gp
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Android 防火墙 流量 统计 代码