论坛
BBS
空间测绘
发表
发布文章
提问答疑
搜索
您还未登录
登录后即可体验更多功能
立即登录
我的收藏
提问答疑
我要投稿
Web安全
[20926] 2017-10-16_Android系统的五种数据存储形式(一)
文档创建者:
s7ckTeam
浏览次数:
4
最后更新:
2025-01-18
Web安全
4 人阅读
|
0 人回复
s7ckTeam
s7ckTeam
当前离线
积分
-56
6万
主题
-6万
回帖
-56
积分
管理员
积分
-56
发消息
2017-10-16_Android系统的五种数据存储形式(一)
A
n
d
r
o
i
d
系
统
的
五
种
数
据
存
储
形
式
(
一
)
L
e
m
o
n
S
e
c
2
0
1
7
-
1
0
-
1
6
转
自
:
h
u
a
n
g
5
0
2
博
客
园
A
n
d
r
o
i
d
系
统
有
五
种
数
据
存
储
形
式
,
分
别
是
文
件
存
储
、
S
P
存
储
、
数
据
库
存
储
、
c
o
n
t
e
n
t
p
r
o
v
i
d
e
r
内
容
提
供
者
、
网
络
存
储
。
其
中
,
前
四
个
是
本
地
存
储
。
存
储
的
类
型
包
括
简
单
文
本
、
窗
口
状
态
存
储
、
音
频
视
频
数
据
、
X
M
L
注
册
文
件
的
各
种
数
据
。
各
种
存
储
形
式
的
特
点
不
尽
相
同
,
因
此
对
于
不
同
的
数
据
类
型
有
着
固
定
的
存
储
形
式
,
本
文
为
演
示
方
便
给
出
的
案
例
基
本
相
同
,
都
是
是
采
用
账
号
登
录
来
演
示
数
据
存
储
,
保
存
账
号
和
密
码
信
息
,
下
次
登
录
时
记
住
账
号
和
密
码
。
重
在
说
明
各
种
存
储
形
式
的
原
理
。
文
件
存
储
:
以
I
/
O
流
的
形
式
把
数
据
存
入
手
机
内
存
或
S
D
卡
,
可
以
存
储
大
数
据
,
如
音
乐
、
图
片
或
视
频
等
。
对
于
手
机
内
存
来
说
系
统
会
根
据
每
个
应
用
的
包
名
创
建
一
个
/
d
a
t
a
/
d
a
t
a
/
包
名
/
的
文
件
夹
,
访
问
自
己
包
名
下
的
目
录
是
不
需
要
权
限
的
,
并
且
A
n
d
r
o
i
d
已
经
提
供
了
非
常
简
便
的
A
P
I
可
以
直
接
去
访
问
该
文
件
夹
。
访
问
时
可
以
用
g
e
t
F
i
l
e
s
D
i
r
(
)
和
g
e
t
C
a
c
h
e
D
i
r
(
)
,
两
个
的
区
别
是
系
统
会
自
动
清
理
后
者
中
的
内
容
。
S
D
卡
中
的
文
件
通
常
位
于
m
n
t
/
s
d
c
a
r
d
目
录
下
,
不
同
生
产
商
生
产
的
手
机
这
个
路
径
可
能
不
同
。
操
作
s
d
卡
的
时
通
常
要
判
断
下
s
d
卡
是
否
可
用
以
及
剩
余
空
间
是
否
足
够
,
因
为
部
分
手
机
的
S
D
卡
可
卸
载
,
S
D
卡
处
于
非
挂
载
状
态
时
,
无
法
进
行
读
写
操
作
。
另
外
一
点
,
对
S
D
卡
的
读
取
和
写
入
操
作
均
需
要
相
应
的
权
限
,
否
则
无
法
完
成
。
获
取
S
D
卡
路
径
的
方
法
是
E
n
v
i
r
o
n
m
e
n
t
.
g
e
t
E
x
t
e
r
n
a
l
S
t
o
r
a
g
e
D
i
r
e
c
t
o
r
y
(
)
,
其
余
操
作
与
文
件
存
储
基
本
类
似
。
文
件
存
储
位
置
:
S
D
卡
存
储
路
径
:
数
据
存
储
在
手
机
内
存
的
实
现
方
法
:
p
a
c
k
a
g
e
c
o
m
.
e
x
a
m
p
l
e
.
q
q
l
o
a
d
;
i
m
p
o
r
t
j
a
v
a
.
i
o
.
B
u
f
f
e
r
e
d
R
e
a
d
e
r
;
i
m
p
o
r
t
j
a
v
a
.
i
o
.
F
i
l
e
;
i
m
p
o
r
t
j
a
v
a
.
i
o
.
F
i
l
e
I
n
p
u
t
S
t
r
e
a
m
;
i
m
p
o
r
t
j
a
v
a
.
i
o
.
F
i
l
e
N
o
t
F
o
u
n
d
E
x
c
e
p
t
i
o
n
;
i
m
p
o
r
t
j
a
v
a
.
i
o
.
F
i
l
e
O
u
t
p
u
t
S
t
r
e
a
m
;
@
O
v
e
r
r
i
d
e
p
r
o
t
e
c
t
e
d
v
o
i
d
o
n
C
r
e
a
t
e
(
B
u
n
d
l
e
s
a
v
e
d
I
n
s
t
a
n
c
e
S
t
a
t
e
)
{
s
u
p
e
r
.
o
n
C
r
e
a
t
e
(
s
a
v
e
d
I
n
s
t
a
n
c
e
S
t
a
t
e
)
;
s
e
t
C
o
n
t
e
n
t
V
i
e
w
(
R
.
l
a
y
o
u
t
.
a
c
t
i
v
i
t
y
_
m
a
i
n
)
;
e
t
_
q
q
=
(
E
d
i
t
T
e
x
t
)
f
i
n
d
V
i
e
w
B
y
I
d
(
R
.
i
d
.
e
t
_
q
q
)
;
e
t
_
p
a
s
s
w
o
r
d
=
(
E
d
i
t
T
e
x
t
)
f
i
n
d
V
i
e
w
B
y
I
d
(
R
.
i
d
.
e
t
_
p
a
s
s
w
o
r
d
)
;
c
b
_
r
e
m
e
n
b
e
r
=
(
C
h
e
c
k
B
o
x
)
f
i
n
d
V
i
e
w
B
y
I
d
(
R
.
i
d
.
c
b
_
r
e
m
e
n
b
e
r
)
;
F
i
l
e
f
i
l
e
=
n
e
w
F
i
l
e
(
g
e
t
F
i
l
e
s
D
i
r
(
)
,
"
i
n
f
o
.
t
x
t
"
)
;
/
/
F
i
l
e
f
i
l
e
=
n
e
w
F
i
l
e
(
g
e
t
C
a
c
h
e
D
i
r
(
)
,
"
i
n
f
o
.
t
x
t
"
)
;
缓
存
中
存
放
数
据
i
f
(
f
i
l
e
.
e
x
i
s
t
s
(
)
&
&
f
i
l
e
.
l
e
n
g
t
h
(
)
>
0
)
{
t
r
y
{
F
i
l
e
I
n
p
u
t
S
t
r
e
a
m
f
i
s
=
n
e
w
F
i
l
e
I
n
p
u
t
S
t
r
e
a
m
(
f
i
l
e
)
;
B
u
f
f
e
r
e
d
R
e
a
d
e
r
b
r
=
n
e
w
B
u
f
f
e
r
e
d
R
e
a
d
e
r
(
n
e
w
I
n
p
u
t
S
t
r
e
a
m
R
e
a
d
e
r
(
f
i
s
)
)
;
S
t
r
i
n
g
l
i
n
e
=
b
r
.
r
e
a
d
L
i
n
e
(
)
;
S
t
r
i
n
g
q
q
=
l
i
n
e
.
s
p
l
i
t
(
"
#
#
"
)
[
0
]
;
S
t
r
i
n
g
p
a
s
s
w
o
r
d
=
l
i
n
e
.
s
p
l
i
t
(
"
#
#
"
)
[
1
]
;
e
t
_
q
q
.
s
e
t
T
e
x
t
(
q
q
)
;
e
t
_
p
a
s
s
w
o
r
d
.
s
e
t
T
e
x
t
(
p
a
s
s
w
o
r
d
)
;
f
i
s
.
c
l
o
s
e
(
)
;
}
c
a
t
c
h
(
E
x
c
e
p
t
i
o
n
e
)
{
/
/
T
O
D
O
A
u
t
o
-
g
e
n
e
r
a
t
e
d
c
a
t
c
h
b
l
o
c
k
e
.
p
r
i
n
t
S
t
a
c
k
T
r
a
c
e
(
)
;
}
}
}
p
u
b
l
i
c
v
o
i
d
l
o
g
i
n
(
V
i
e
w
v
i
e
w
)
{
S
t
r
i
n
g
q
q
=
e
t
_
q
q
.
g
e
t
T
e
x
t
(
)
.
t
o
S
t
r
i
n
g
(
)
.
t
r
i
m
(
)
;
S
t
r
i
n
g
p
a
s
s
w
o
r
d
=
e
t
_
p
a
s
s
w
o
r
d
.
g
e
t
T
e
x
t
(
)
.
t
o
S
t
r
i
n
g
(
)
.
t
r
i
m
(
)
;
i
f
(
T
e
x
t
U
t
i
l
s
.
i
s
E
m
p
t
y
(
q
q
)
|
|
T
e
x
t
U
t
i
l
s
.
i
s
E
m
p
t
y
(
p
a
s
s
w
o
r
d
)
)
{
T
o
a
s
t
.
m
a
k
e
T
e
x
t
(
t
h
i
s
,
"
密
码
或
者
用
户
名
不
能
为
空
"
,
0
)
.
s
h
o
w
(
)
;
r
e
t
u
r
n
;
}
i
f
(
c
b
_
r
e
m
e
n
b
e
r
.
i
s
C
h
e
c
k
e
d
(
)
)
{
F
i
l
e
f
i
l
e
=
n
e
w
F
i
l
e
(
g
e
t
F
i
l
e
s
D
i
r
(
)
,
"
i
n
f
o
.
t
x
t
"
)
;
t
r
y
{
F
i
l
e
O
u
t
p
u
t
S
t
r
e
a
m
f
o
s
=
n
e
w
F
i
l
e
O
u
t
p
u
t
S
t
r
e
a
m
(
f
i
l
e
)
;
f
o
s
.
w
r
i
t
e
(
(
q
q
+
"
#
#
"
+
p
a
s
s
w
o
r
d
)
.
g
e
t
B
y
t
e
s
(
)
)
;
f
o
s
.
c
l
o
s
e
(
)
;
T
o
a
s
t
.
m
a
k
e
T
e
x
t
(
M
a
i
n
A
c
t
i
v
i
t
y
.
t
h
i
s
,
"
保
存
成
功
"
,
0
)
.
s
h
o
w
(
)
;
}
c
a
t
c
h
(
E
x
c
e
p
t
i
o
n
e
)
{
T
o
a
s
t
.
m
a
k
e
T
e
x
t
(
M
a
i
n
A
c
t
i
v
i
t
y
.
t
h
i
s
,
"
保
存
失
败
"
,
0
)
.
s
h
o
w
(
)
;
e
.
p
r
i
n
t
S
t
a
c
k
T
r
a
c
e
(
)
;
}
}
}
}
数
据
存
储
在
S
D
卡
中
的
实
现
方
法
:
p
a
c
k
a
g
e
c
o
m
.
e
x
a
m
p
l
e
.
q
q
l
o
a
d
;
i
m
p
o
r
t
j
a
v
a
.
i
o
.
B
u
f
f
e
r
e
d
R
e
a
d
e
r
;
i
m
p
o
r
t
j
a
v
a
.
i
o
.
F
i
l
e
;
i
m
p
o
r
t
j
a
v
a
.
i
o
.
F
i
l
e
I
n
p
u
t
S
t
r
e
a
m
;
i
m
p
o
r
t
j
a
v
a
.
i
o
.
F
i
l
e
N
o
t
F
o
u
n
d
E
x
c
e
p
t
i
o
n
;
i
m
p
o
r
t
j
a
v
a
.
i
o
.
F
i
l
e
O
u
t
p
u
t
S
t
r
e
a
m
;
i
m
p
o
r
t
j
a
v
a
.
i
o
.
I
n
p
u
t
S
t
r
e
a
m
R
e
a
d
e
r
;
i
m
p
o
r
t
j
a
v
a
.
t
e
x
t
.
F
o
r
m
a
t
;
i
m
p
o
r
t
c
o
m
.
e
x
a
m
p
l
e
.
q
q
l
o
a
d
_
s
p
.
R
;
i
m
p
o
r
t
a
n
d
r
o
i
d
.
o
s
.
B
u
n
d
l
e
;
i
m
p
o
r
t
a
n
d
r
o
i
d
.
o
s
.
E
n
v
i
r
o
n
m
e
n
t
;
i
m
p
o
r
t
a
n
d
r
o
i
d
.
a
p
p
.
A
c
t
i
v
i
t
y
;
i
m
p
o
r
t
a
n
d
r
o
i
d
.
c
o
n
t
e
n
t
.
S
h
a
r
e
d
P
r
e
f
e
r
e
n
c
e
s
;
i
m
p
o
r
t
a
n
d
r
o
i
d
.
c
o
n
t
e
n
t
.
S
h
a
r
e
d
P
r
e
f
e
r
e
n
c
e
s
.
E
d
i
t
o
r
;
i
m
p
o
r
t
a
n
d
r
o
i
d
.
t
e
x
t
.
T
e
x
t
U
t
i
l
s
;
i
m
p
o
r
t
a
n
d
r
o
i
d
.
t
e
x
t
.
f
o
r
m
a
t
.
F
o
r
m
a
t
t
e
r
;
i
m
p
o
r
t
a
n
d
r
o
i
d
.
v
i
e
w
.
M
e
n
u
;
i
m
p
o
r
t
a
n
d
r
o
i
d
.
v
i
e
w
.
T
e
x
t
u
r
e
V
i
e
w
;
i
m
p
o
r
t
a
n
d
r
o
i
d
.
v
i
e
w
.
V
i
e
w
;
i
m
p
o
r
t
a
n
d
r
o
i
d
.
w
i
d
g
e
t
.
B
u
t
t
o
n
;
i
m
p
o
r
t
a
n
d
r
o
i
d
.
w
i
d
g
e
t
.
C
h
e
c
k
B
o
x
;
i
m
p
o
r
t
a
n
d
r
o
i
d
.
w
i
d
g
e
t
.
E
d
i
t
T
e
x
t
;
i
m
p
o
r
t
a
n
d
r
o
i
d
.
w
i
d
g
e
t
.
T
o
a
s
t
;
p
u
b
l
i
c
c
l
a
s
s
M
a
i
n
A
c
t
i
v
i
t
y
e
x
t
e
n
d
s
A
c
t
i
v
i
t
y
{
p
r
i
v
a
t
e
E
d
i
t
T
e
x
t
e
t
_
q
q
;
p
r
i
v
a
t
e
E
d
i
t
T
e
x
t
e
t
_
p
a
s
s
w
o
r
d
;
p
r
i
v
a
t
e
C
h
e
c
k
B
o
x
c
b
_
r
e
m
e
n
b
e
r
;
@
O
v
e
r
r
i
d
e
p
r
o
t
e
c
t
e
d
v
o
i
d
o
n
C
r
e
a
t
e
(
B
u
n
d
l
e
s
a
v
e
d
I
n
s
t
a
n
c
e
S
t
a
t
e
)
{
s
u
p
e
r
.
o
n
C
r
e
a
t
e
(
s
a
v
e
d
I
n
s
t
a
n
c
e
S
t
a
t
e
)
;
s
e
t
C
o
n
t
e
n
t
V
i
e
w
(
R
.
l
a
y
o
u
t
.
a
c
t
i
v
i
t
y
_
m
a
i
n
)
;
e
t
_
q
q
=
(
E
d
i
t
T
e
x
t
)
f
i
n
d
V
i
e
w
B
y
I
d
(
R
.
i
d
.
e
t
_
q
q
)
;
e
t
_
p
a
s
s
w
o
r
d
=
(
E
d
i
t
T
e
x
t
)
f
i
n
d
V
i
e
w
B
y
I
d
(
R
.
i
d
.
e
t
_
p
a
s
s
w
o
r
d
)
;
c
b
_
r
e
m
e
n
b
e
r
=
(
C
h
e
c
k
B
o
x
)
f
i
n
d
V
i
e
w
B
y
I
d
(
R
.
i
d
.
c
b
_
r
e
m
e
n
b
e
r
)
;
F
i
l
e
f
i
l
e
=
n
e
w
F
i
l
e
(
E
n
v
i
r
o
n
m
e
n
t
.
g
e
t
E
x
t
e
r
n
a
l
S
t
o
r
a
g
e
D
i
r
e
c
t
o
r
y
(
)
,
"
i
n
f
o
.
t
x
t
"
)
;
i
f
(
f
i
l
e
.
e
x
i
s
t
s
(
)
&
&
f
i
l
e
.
l
e
n
g
t
h
(
)
>
0
)
{
t
r
y
{
F
i
l
e
I
n
p
u
t
S
t
r
e
a
m
f
i
s
=
n
e
w
F
i
l
e
I
n
p
u
t
S
t
r
e
a
m
(
f
i
l
e
)
;
B
u
f
f
e
r
e
d
R
e
a
d
e
r
b
r
=
n
e
w
B
u
f
f
e
r
e
d
R
e
a
d
e
r
(
n
e
w
I
n
p
u
t
S
t
r
e
a
m
R
e
a
d
e
r
(
f
i
s
)
)
;
S
t
r
i
n
g
l
i
n
e
=
b
r
.
r
e
a
d
L
i
n
e
(
)
;
S
t
r
i
n
g
q
q
=
l
i
n
e
.
s
p
l
i
t
(
"
#
#
"
)
[
0
]
;
S
t
r
i
n
g
p
a
s
s
w
o
r
d
=
l
i
n
e
.
s
p
l
i
t
(
"
#
#
"
)
[
1
]
;
e
t
_
q
q
.
s
e
t
T
e
x
t
(
q
q
)
;
e
t
_
p
a
s
s
w
o
r
d
.
s
e
t
T
e
x
t
(
p
a
s
s
w
o
r
d
)
;
f
i
s
.
c
l
o
s
e
(
)
;
}
c
a
t
c
h
(
E
x
c
e
p
t
i
o
n
e
)
{
/
/
T
O
D
O
A
u
t
o
-
g
e
n
e
r
a
t
e
d
c
a
t
c
h
b
l
o
c
k
e
.
p
r
i
n
t
S
t
a
c
k
T
r
a
c
e
(
)
;
}
}
}
p
u
b
l
i
c
v
o
i
d
l
o
g
i
n
(
V
i
e
w
v
i
e
w
)
{
S
t
r
i
n
g
q
q
=
e
t
_
q
q
.
g
e
t
T
e
x
t
(
)
.
t
o
S
t
r
i
n
g
(
)
.
t
r
i
m
(
)
;
S
t
r
i
n
g
p
a
s
s
w
o
r
d
=
e
t
_
p
a
s
s
w
o
r
d
.
g
e
t
T
e
x
t
(
)
.
t
o
S
t
r
i
n
g
(
)
.
t
r
i
m
(
)
;
i
f
(
T
e
x
t
U
t
i
l
s
.
i
s
E
m
p
t
y
(
q
q
)
|
|
T
e
x
t
U
t
i
l
s
.
i
s
E
m
p
t
y
(
p
a
s
s
w
o
r
d
)
)
{
T
o
a
s
t
.
m
a
k
e
T
e
x
t
(
t
h
i
s
,
"
密
码
或
者
用
户
名
不
能
为
空
"
,
0
)
.
s
h
o
w
(
)
;
r
e
t
u
r
n
;
}
i
f
(
c
b
_
r
e
m
e
n
b
e
r
.
i
s
C
h
e
c
k
e
d
(
)
)
{
F
i
l
e
f
i
l
e
=
n
e
w
F
i
l
e
(
E
n
v
i
r
o
n
m
e
n
t
.
g
e
t
E
x
t
e
r
n
a
l
S
t
o
r
a
g
e
D
i
r
e
c
t
o
r
y
(
)
,
"
i
n
f
o
.
t
x
t
"
)
;
/
/
判
断
S
D
卡
是
否
挂
载
i
f
(
!
E
n
v
i
r
o
n
m
e
n
t
.
g
e
t
E
x
t
e
r
n
a
l
S
t
o
r
a
g
e
S
t
a
t
e
(
)
.
e
q
u
a
l
s
(
E
n
v
i
r
o
n
m
e
n
t
.
M
E
D
I
A
_
M
O
U
N
T
E
D
)
)
{
T
o
a
s
t
.
m
a
k
e
T
e
x
t
(
M
a
i
n
A
c
t
i
v
i
t
y
.
t
h
i
s
,
"
S
D
卡
不
可
用
"
,
0
)
.
s
h
o
w
(
)
;
r
e
t
u
r
n
;
}
/
/
判
断
S
D
卡
大
小
是
否
充
足
l
o
n
g
s
i
z
e
=
E
n
v
i
r
o
n
m
e
n
t
.
g
e
t
E
x
t
e
r
n
a
l
S
t
o
r
a
g
e
D
i
r
e
c
t
o
r
y
(
)
.
g
e
t
F
r
e
e
S
p
a
c
e
(
)
;
S
t
r
i
n
g
i
n
f
o
=
F
o
r
m
a
t
t
e
r
.
f
o
r
m
a
t
F
i
l
e
S
i
z
e
(
t
h
i
s
,
s
i
z
e
)
;
/
/
此
处
存
储
数
据
较
小
就
不
进
行
判
断
T
o
a
s
t
.
m
a
k
e
T
e
x
t
(
t
h
i
s
,
"
可
用
空
间
"
+
i
n
f
o
,
0
)
.
s
h
o
w
(
)
;
t
r
y
{
F
i
l
e
O
u
t
p
u
t
S
t
r
e
a
m
f
o
s
=
n
e
w
F
i
l
e
O
u
t
p
u
t
S
t
r
e
a
m
(
f
i
l
e
)
;
f
o
s
.
w
r
i
t
e
(
(
q
q
+
"
#
#
"
+
p
a
s
s
w
o
r
d
)
.
g
e
t
B
y
t
e
s
(
)
)
;
f
o
s
.
c
l
o
s
e
(
)
;
T
o
a
s
t
.
m
a
k
e
T
e
x
t
(
M
a
i
n
A
c
t
i
v
i
t
y
.
t
h
i
s
,
"
保
存
成
功
"
,
0
)
.
s
h
o
w
(
)
;
}
c
a
t
c
h
(
E
x
c
e
p
t
i
o
n
e
)
{
T
o
a
s
t
.
m
a
k
e
T
e
x
t
(
M
a
i
n
A
c
t
i
v
i
t
y
.
t
h
i
s
,
"
保
存
失
败
"
,
0
)
.
s
h
o
w
(
)
;
e
.
p
r
i
n
t
S
t
a
c
k
T
r
a
c
e
(
)
;
}
}
}
}
S
P
存
储
:
S
P
存
储
本
质
上
是
一
个
X
M
L
文
件
,
以
键
值
对
的
形
式
存
入
手
机
内
存
中
。
常
用
于
存
储
简
单
的
参
数
设
置
,
如
登
陆
账
号
密
码
的
存
储
,
窗
口
功
能
状
态
的
存
储
等
,
该
存
储
文
件
位
于
:
d
a
t
a
/
d
a
t
a
/
包
名
/
s
h
a
r
e
d
_
p
r
e
f
s
文
件
夹
中
。
使
用
的
时
候
,
首
先
需
要
通
过
c
o
n
t
e
x
t
.
g
e
t
S
h
a
r
e
d
P
r
e
f
r
e
n
c
e
s
(
S
t
r
i
n
g
n
a
m
e
,
i
n
t
m
o
d
e
)
获
取
S
h
a
r
e
d
P
r
e
f
r
e
n
c
e
s
的
实
例
对
象
,
存
储
数
据
时
,
用
S
h
a
r
e
d
P
r
e
f
r
e
n
c
e
s
的
实
例
对
象
得
到
S
h
a
r
e
d
P
r
e
f
r
e
n
c
e
s
文
件
的
编
辑
器
,
在
编
辑
器
中
用
p
u
t
X
x
x
(
)
添
加
数
据
,
之
后
务
必
用
c
o
m
m
i
t
提
交
数
据
,
否
则
无
法
获
取
数
据
。
取
数
据
时
,
直
接
用
g
e
t
X
x
x
(
)
方
法
。
s
p
存
储
自
动
生
成
x
m
l
文
件
,
其
的
路
径
如
下
:
s
p
存
储
的
实
现
方
法
:
p
a
c
k
a
g
e
c
o
m
.
e
x
a
m
p
l
e
.
q
q
l
o
a
d
;
i
m
p
o
r
t
c
o
m
.
e
x
a
m
p
l
e
.
q
q
l
o
a
d
_
s
p
.
R
;
i
m
p
o
r
t
a
n
d
r
o
i
d
.
o
s
.
B
u
n
d
l
e
;
i
m
p
o
r
t
a
n
d
r
o
i
d
.
a
p
p
.
A
c
t
i
v
i
t
y
;
i
m
p
o
r
t
a
n
d
r
o
i
d
.
c
o
n
t
e
n
t
.
S
h
a
r
e
d
P
r
e
f
e
r
e
n
c
e
s
;
i
m
p
o
r
t
a
n
d
r
o
i
d
.
c
o
n
t
e
n
t
.
S
h
a
r
e
d
P
r
e
f
e
r
e
n
c
e
s
.
E
d
i
t
o
r
;
i
m
p
o
r
t
a
n
d
r
o
i
d
.
t
e
x
t
.
T
e
x
t
U
t
i
l
s
;
i
m
p
o
r
t
a
n
d
r
o
i
d
.
v
i
e
w
.
M
e
n
u
;
i
m
p
o
r
t
a
n
d
r
o
i
d
.
v
i
e
w
.
T
e
x
t
u
r
e
V
i
e
w
;
i
m
p
o
r
t
a
n
d
r
o
i
d
.
v
i
e
w
.
V
i
e
w
;
i
m
p
o
r
t
a
n
d
r
o
i
d
.
w
i
d
g
e
t
.
B
u
t
t
o
n
;
i
m
p
o
r
t
a
n
d
r
o
i
d
.
w
i
d
g
e
t
.
C
h
e
c
k
B
o
x
;
i
m
p
o
r
t
a
n
d
r
o
i
d
.
w
i
d
g
e
t
.
E
d
i
t
T
e
x
t
;
i
m
p
o
r
t
a
n
d
r
o
i
d
.
w
i
d
g
e
t
.
T
o
a
s
t
;
p
u
b
l
i
c
c
l
a
s
s
M
a
i
n
A
c
t
i
v
i
t
y
e
x
t
e
n
d
s
A
c
t
i
v
i
t
y
{
p
r
i
v
a
t
e
E
d
i
t
T
e
x
t
e
t
_
q
q
;
p
r
i
v
a
t
e
E
d
i
t
T
e
x
t
e
t
_
p
a
s
s
w
o
r
d
;
p
r
i
v
a
t
e
C
h
e
c
k
B
o
x
c
b
_
r
e
m
e
n
b
e
r
;
p
r
i
v
a
t
e
S
h
a
r
e
d
P
r
e
f
e
r
e
n
c
e
s
s
p
;
@
O
v
e
r
r
i
d
e
p
r
o
t
e
c
t
e
d
v
o
i
d
o
n
C
r
e
a
t
e
(
B
u
n
d
l
e
s
a
v
e
d
I
n
s
t
a
n
c
e
S
t
a
t
e
)
{
s
u
p
e
r
.
o
n
C
r
e
a
t
e
(
s
a
v
e
d
I
n
s
t
a
n
c
e
S
t
a
t
e
)
;
s
e
t
C
o
n
t
e
n
t
V
i
e
w
(
R
.
l
a
y
o
u
t
.
a
c
t
i
v
i
t
y
_
m
a
i
n
)
;
e
t
_
q
q
=
(
E
d
i
t
T
e
x
t
)
f
i
n
d
V
i
e
w
B
y
I
d
(
R
.
i
d
.
e
t
_
q
q
)
;
e
t
_
p
a
s
s
w
o
r
d
=
(
E
d
i
t
T
e
x
t
)
f
i
n
d
V
i
e
w
B
y
I
d
(
R
.
i
d
.
e
t
_
p
a
s
s
w
o
r
d
)
;
c
b
_
r
e
m
e
n
b
e
r
=
(
C
h
e
c
k
B
o
x
)
f
i
n
d
V
i
e
w
B
y
I
d
(
R
.
i
d
.
c
b
_
r
e
m
e
n
b
e
r
)
;
s
p
=
t
h
i
s
.
g
e
t
S
h
a
r
e
d
P
r
e
f
e
r
e
n
c
e
s
(
"
c
o
n
f
i
g
"
,
0
)
;
S
t
r
i
n
g
q
q
=
s
p
.
g
e
t
S
t
r
i
n
g
(
"
q
q
"
,
"
"
)
;
S
t
r
i
n
g
p
a
s
s
w
o
r
d
=
s
p
.
g
e
t
S
t
r
i
n
g
(
"
p
a
s
s
w
o
r
d
"
,
"
"
)
;
e
t
_
q
q
.
s
e
t
T
e
x
t
(
q
q
)
;
e
t
_
p
a
s
s
w
o
r
d
.
s
e
t
T
e
x
t
(
p
a
s
s
w
o
r
d
)
;
}
p
u
b
l
i
c
v
o
i
d
l
o
g
i
n
(
V
i
e
w
v
i
e
w
)
{
S
t
r
i
n
g
q
q
=
e
t
_
q
q
.
g
e
t
T
e
x
t
(
)
.
t
o
S
t
r
i
n
g
(
)
.
t
r
i
m
(
)
;
S
t
r
i
n
g
p
a
s
s
w
o
r
d
=
e
t
_
p
a
s
s
w
o
r
d
.
g
e
t
T
e
x
t
(
)
.
t
o
S
t
r
i
n
g
(
)
.
t
r
i
m
(
)
;
i
f
(
T
e
x
t
U
t
i
l
s
.
i
s
E
m
p
t
y
(
q
q
)
|
|
T
e
x
t
U
t
i
l
s
.
i
s
E
m
p
t
y
(
p
a
s
s
w
o
r
d
)
)
{
T
o
a
s
t
.
m
a
k
e
T
e
x
t
(
t
h
i
s
,
"
密
码
或
者
用
户
名
不
能
为
空
"
,
0
)
.
s
h
o
w
(
)
;
r
e
t
u
r
n
;
}
i
f
(
c
b
_
r
e
m
e
n
b
e
r
.
i
s
C
h
e
c
k
e
d
(
)
)
{
E
d
i
t
o
r
e
d
i
t
=
s
p
.
e
d
i
t
(
)
;
e
d
i
t
.
p
u
t
S
t
r
i
n
g
(
"
q
q
"
,
q
q
)
;
e
d
i
t
.
p
u
t
S
t
r
i
n
g
(
"
p
a
s
s
w
o
r
d
"
,
p
a
s
s
w
o
r
d
)
;
e
d
i
t
.
c
o
m
m
i
t
(
)
;
}
}
}
数
据
库
存
储
:
数
据
库
所
有
信
息
都
存
储
在
单
一
文
件
内
,
占
用
内
存
小
,
并
且
支
持
基
本
S
Q
L
语
法
,
是
项
目
中
经
常
被
采
用
的
一
种
数
据
存
储
方
式
,
通
常
用
于
存
储
用
户
信
息
等
,
例
如
在
手
机
上
做
一
个
学
生
信
息
管
理
系
统
。
S
Q
L
i
t
e
是
一
款
内
置
到
移
动
设
备
上
的
轻
量
型
的
数
据
库
,
S
Q
L
i
t
e
O
p
e
n
H
e
l
p
e
r
是
A
n
d
r
o
i
d
提
供
的
一
个
抽
象
工
具
类
,
负
责
管
理
数
据
库
的
创
建
、
升
级
工
作
。
数
据
库
的
路
径
为
:
/
d
a
t
a
/
d
a
t
a
/
应
用
包
名
/
d
a
t
a
b
a
s
e
s
/
数
据
库
。
如
果
想
创
建
数
据
库
,
就
需
要
自
定
义
一
个
类
继
承
S
Q
L
i
t
e
O
p
e
n
H
e
l
p
e
r
,
然
后
覆
写
其
中
的
抽
象
方
法
,
指
定
数
据
库
名
、
版
本
号
。
在
o
n
C
r
e
a
t
e
(
)
方
法
中
通
过
执
行
s
q
l
语
句
实
现
表
的
创
建
。
如
果
只
是
创
建
出
来
该
类
并
不
会
真
正
的
去
创
建
数
据
库
,
而
是
需
要
通
过
执
行
h
e
l
p
e
r
.
g
e
t
W
r
i
t
a
b
l
e
D
a
t
a
b
a
s
e
(
)
或
者
h
e
p
l
e
r
.
g
e
t
R
e
a
d
a
b
l
e
D
a
t
a
b
a
s
e
(
)
。
另
外
想
要
对
创
建
的
数
据
库
进
行
增
删
改
查
的
操
作
可
以
单
独
定
义
一
个
类
实
现
。
增
删
改
查
操
作
有
两
种
方
式
,
一
是
直
接
执
行
s
q
l
语
句
,
另
一
个
是
A
n
d
r
o
i
d
自
身
的
A
P
I
实
现
。
用
数
据
库
实
现
账
号
登
录
显
得
有
些
大
材
小
用
,
为
演
示
数
据
库
的
原
理
本
文
给
出
的
案
例
是
用
数
据
库
记
录
多
个
用
户
的
账
号
和
密
码
信
息
,
并
把
最
后
一
个
账
号
信
息
回
显
在
界
面
。
但
实
际
应
用
中
很
少
这
样
做
。
从
手
机
文
件
中
导
出
数
据
库
文
件
并
不
可
以
直
接
打
开
,
因
此
可
以
用
可
视
化
工
具
和
s
q
l
i
t
e
3
操
作
工
具
进
行
查
看
。
这
里
介
绍
s
q
l
i
t
e
3
工
具
的
使
用
。
具
体
需
要
的
步
骤
如
下
:
1
.
执
行
a
d
b
s
h
e
l
l
命
令
进
入
L
i
n
u
x
n
e
内
核
;
2
.
使
用
c
d
进
入
数
据
库
所
在
的
路
径
c
d
:
/
d
a
t
a
/
d
a
t
a
/
应
用
包
名
/
d
a
t
a
b
a
s
e
s
;
3
.
进
入
数
据
库
模
式
:
s
q
l
i
t
e
3
数
据
库
名
.
d
b
;
4
.
执
行
S
Q
L
语
句
S
q
l
i
t
e
3
操
作
演
示
:
数
据
库
存
储
路
径
:
数
据
库
实
现
方
法
,
先
创
建
一
个
类
继
承
S
q
l
i
t
e
O
p
e
n
H
e
l
p
e
r
,
在
类
中
创
建
数
据
库
和
表
:
p
a
c
k
a
g
e
c
o
m
.
e
x
a
m
p
l
e
.
q
q
l
o
a
d
.
d
b
;
i
m
p
o
r
t
a
n
d
r
o
i
d
.
c
o
n
t
e
n
t
.
C
o
n
t
e
x
t
;
i
m
p
o
r
t
a
n
d
r
o
i
d
.
d
a
t
a
b
a
s
e
.
s
q
l
i
t
e
.
S
Q
L
i
t
e
D
a
t
a
b
a
s
e
;
i
m
p
o
r
t
a
n
d
r
o
i
d
.
d
a
t
a
b
a
s
e
.
s
q
l
i
t
e
.
S
Q
L
i
t
e
D
a
t
a
b
a
s
e
.
C
u
r
s
o
r
F
a
c
t
o
r
y
;
i
m
p
o
r
t
a
n
d
r
o
i
d
.
d
a
t
a
b
a
s
e
.
s
q
l
i
t
e
.
S
Q
L
i
t
e
O
p
e
n
H
e
l
p
e
r
;
p
u
b
l
i
c
c
l
a
s
s
U
s
e
r
D
B
O
p
e
n
h
e
l
p
e
r
e
x
t
e
n
d
s
S
Q
L
i
t
e
O
p
e
n
H
e
l
p
e
r
{
p
u
b
l
i
c
U
s
e
r
D
B
O
p
e
n
h
e
l
p
e
r
(
C
o
n
t
e
x
t
c
o
n
t
e
x
t
)
{
s
u
p
e
r
(
c
o
n
t
e
x
t
,
"
u
s
e
r
.
d
b
"
,
n
u
l
l
,
1
)
;
/
/
T
O
D
O
A
u
t
o
-
g
e
n
e
r
a
t
e
d
c
o
n
s
t
r
u
c
t
o
r
s
t
u
b
}
@
O
v
e
r
r
i
d
e
p
u
b
l
i
c
v
o
i
d
o
n
C
r
e
a
t
e
(
S
Q
L
i
t
e
D
a
t
a
b
a
s
e
a
r
g
0
)
{
a
r
g
0
.
e
x
e
c
S
Q
L
(
"
c
r
e
a
t
e
t
a
b
l
e
u
s
e
r
(
_
i
d
i
n
t
e
g
e
r
p
r
i
m
a
r
y
k
e
y
a
u
t
o
i
n
c
r
e
m
e
n
t
,
n
a
m
e
v
a
c
h
a
r
(
2
0
)
,
p
a
s
s
w
o
r
d
v
a
r
c
h
a
r
(
2
0
)
)
"
)
;
}
@
O
v
e
r
r
i
d
e
p
u
b
l
i
c
v
o
i
d
o
n
U
p
g
r
a
d
e
(
S
Q
L
i
t
e
D
a
t
a
b
a
s
e
a
r
g
0
,
i
n
t
a
r
g
1
,
i
n
t
a
r
g
2
)
{
/
/
T
O
D
O
A
u
t
o
-
g
e
n
e
r
a
t
e
d
m
e
t
h
o
d
s
t
u
b
}
}
创
建
一
个
工
具
类
实
现
对
数
据
库
的
操
作
:
p
a
c
k
a
g
e
c
o
m
.
e
x
a
m
p
l
e
.
q
q
l
o
a
d
.
d
b
.
d
a
o
;
i
m
p
o
r
t
j
a
v
a
.
u
t
i
l
.
A
r
r
a
y
L
i
s
t
;
i
m
p
o
r
t
j
a
v
a
.
u
t
i
l
.
L
i
s
t
;
i
m
p
o
r
t
a
n
d
r
o
i
d
.
c
o
n
t
e
n
t
.
C
o
n
t
e
n
t
V
a
l
u
e
s
;
i
m
p
o
r
t
a
n
d
r
o
i
d
.
c
o
n
t
e
n
t
.
C
o
n
t
e
x
t
;
i
m
p
o
r
t
a
n
d
r
o
i
d
.
d
a
t
a
b
a
s
e
.
C
u
r
s
o
r
;
i
m
p
o
r
t
a
n
d
r
o
i
d
.
d
a
t
a
b
a
s
e
.
s
q
l
i
t
e
.
S
Q
L
i
t
e
D
a
t
a
b
a
s
e
;
i
m
p
o
r
t
c
o
m
.
e
x
a
m
p
l
e
.
q
q
l
o
a
d
.
d
b
.
U
s
e
r
D
B
O
p
e
n
h
e
l
p
e
r
;
p
u
b
l
i
c
c
l
a
s
s
U
s
e
r
D
a
o
{
p
r
i
v
a
t
e
U
s
e
r
D
B
O
p
e
n
h
e
l
p
e
r
h
e
l
p
e
r
;
p
u
b
l
i
c
U
s
e
r
D
a
o
(
C
o
n
t
e
x
t
c
o
n
t
e
x
t
)
{
h
e
l
p
e
r
=
n
e
w
U
s
e
r
D
B
O
p
e
n
h
e
l
p
e
r
(
c
o
n
t
e
x
t
)
;
}
p
u
b
l
i
c
l
o
n
g
a
d
d
(
S
t
r
i
n
g
n
a
m
e
,
S
t
r
i
n
g
p
a
s
s
w
o
r
d
)
{
S
Q
L
i
t
e
D
a
t
a
b
a
s
e
d
b
=
h
e
l
p
e
r
.
g
e
t
W
r
i
t
a
b
l
e
D
a
t
a
b
a
s
e
(
)
;
/
/
用
S
Q
L
语
句
实
现
增
加
数
据
的
功
能
/
/
d
b
.
e
x
e
c
S
Q
L
(
"
i
n
s
e
r
t
i
n
t
o
u
s
e
r
(
n
a
m
e
,
p
a
s
s
e
o
r
d
)
v
a
l
u
e
s
(
?
,
?
)
"
,
n
e
w
O
b
j
e
c
t
[
]
{
n
a
m
e
,
p
a
s
s
w
o
r
d
}
)
;
/
/
a
n
d
r
o
i
d
自
身
A
P
I
实
现
修
改
功
能
可
以
有
返
回
值
C
o
n
t
e
n
t
V
a
l
u
e
s
v
a
l
u
e
s
=
n
e
w
C
o
n
t
e
n
t
V
a
l
u
e
s
(
)
;
v
a
l
u
e
s
.
p
u
t
(
"
n
a
m
e
"
,
n
a
m
e
)
;
v
a
l
u
e
s
.
p
u
t
(
"
p
a
s
s
w
o
r
d
"
,
p
a
s
s
w
o
r
d
)
;
l
o
n
g
r
e
s
u
l
t
=
d
b
.
i
n
s
e
r
t
(
"
u
s
e
r
"
,
n
u
l
l
,
v
a
l
u
e
s
)
;
/
/
带
返
回
值
,
表
示
添
加
在
哪
一
行
d
b
.
c
l
o
s
e
(
)
;
r
e
t
u
r
n
r
e
s
u
l
t
;
}
p
u
b
l
i
c
L
i
s
t
<
u
s
e
r
>
f
i
n
d
A
l
l
(
)
{
L
i
s
t
<
u
s
e
r
>
l
i
s
t
=
n
e
w
A
r
r
a
y
L
i
s
t
<
u
s
e
r
>
(
)
;
S
Q
L
i
t
e
D
a
t
a
b
a
s
e
d
b
=
h
e
l
p
e
r
.
g
e
t
R
e
a
d
a
b
l
e
D
a
t
a
b
a
s
e
(
)
;
/
/
C
u
r
s
o
r
c
u
r
s
o
r
=
d
b
.
r
a
w
Q
u
e
r
y
(
"
s
e
l
e
c
t
n
a
m
e
,
p
a
s
s
w
o
r
d
f
r
o
m
u
s
e
r
"
,
n
u
l
l
)
;
C
u
r
s
o
r
c
u
r
s
o
r
=
d
b
.
q
u
e
r
y
(
"
u
s
e
r
"
,
n
e
w
S
t
r
i
n
g
[
]
{
"
n
a
m
e
"
,
"
p
a
s
s
w
o
r
d
"
}
,
n
u
l
l
,
n
u
l
l
,
n
u
l
l
,
n
u
l
l
,
n
u
l
l
)
;
w
h
i
l
e
(
c
u
r
s
o
r
.
m
o
v
e
T
o
N
e
x
t
(
)
)
{
S
t
r
i
n
g
n
a
m
e
=
c
u
r
s
o
r
.
g
e
t
S
t
r
i
n
g
(
0
)
;
S
t
r
i
n
g
p
a
s
s
w
o
r
d
=
c
u
r
s
o
r
.
g
e
t
S
t
r
i
n
g
(
1
)
;
u
s
e
r
u
s
=
n
e
w
u
s
e
r
(
)
;
u
s
.
s
e
t
N
a
m
e
(
n
a
m
e
)
;
u
s
.
s
e
t
P
a
s
s
w
o
r
d
(
p
a
s
s
w
o
r
d
)
;
l
i
s
t
.
a
d
d
(
u
s
)
;
}
c
u
r
s
o
r
.
c
l
o
s
e
(
)
;
d
b
.
c
l
o
s
e
(
)
;
r
e
t
u
r
n
l
i
s
t
;
}
}
在
主
方
法
中
实
现
账
号
登
录
和
记
录
p
a
c
k
a
g
e
c
o
m
.
e
x
a
m
p
l
e
.
q
q
l
o
a
d
;
i
m
p
o
r
t
j
a
v
a
.
i
o
.
B
u
f
f
e
r
e
d
R
e
a
d
e
r
;
i
m
p
o
r
t
j
a
v
a
.
i
o
.
F
i
l
e
;
i
m
p
o
r
t
j
a
v
a
.
i
o
.
F
i
l
e
I
n
p
u
t
S
t
r
e
a
m
;
i
m
p
o
r
t
j
a
v
a
.
i
o
.
F
i
l
e
N
o
t
F
o
u
n
d
E
x
c
e
p
t
i
o
n
;
i
m
p
o
r
t
j
a
v
a
.
i
o
.
F
i
l
e
O
u
t
p
u
t
S
t
r
e
a
m
;
i
m
p
o
r
t
j
a
v
a
.
i
o
.
I
n
p
u
t
S
t
r
e
a
m
R
e
a
d
e
r
;
i
m
p
o
r
t
j
a
v
a
.
u
t
i
l
.
L
i
s
t
;
i
m
p
o
r
t
c
o
m
.
e
x
a
m
p
l
e
.
q
q
l
o
a
d
.
d
b
.
d
a
o
.
U
s
e
r
D
a
o
;
i
m
p
o
r
t
c
o
m
.
e
x
a
m
p
l
e
.
q
q
l
o
a
d
.
d
b
.
d
a
o
.
u
s
e
r
;
i
m
p
o
r
t
c
o
m
.
e
x
a
m
p
l
e
.
q
q
l
o
a
d
.
R
;
i
m
p
o
r
t
a
n
d
r
o
i
d
.
o
s
.
B
u
n
d
l
e
;
i
m
p
o
r
t
a
n
d
r
o
i
d
.
a
p
p
.
A
c
t
i
v
i
t
y
;
i
m
p
o
r
t
a
n
d
r
o
i
d
.
c
o
n
t
e
n
t
.
S
h
a
r
e
d
P
r
e
f
e
r
e
n
c
e
s
;
i
m
p
o
r
t
a
n
d
r
o
i
d
.
c
o
n
t
e
n
t
.
S
h
a
r
e
d
P
r
e
f
e
r
e
n
c
e
s
.
E
d
i
t
o
r
;
i
m
p
o
r
t
a
n
d
r
o
i
d
.
t
e
x
t
.
T
e
x
t
U
t
i
l
s
;
i
m
p
o
r
t
a
n
d
r
o
i
d
.
v
i
e
w
.
M
e
n
u
;
i
m
p
o
r
t
a
n
d
r
o
i
d
.
v
i
e
w
.
T
e
x
t
u
r
e
V
i
e
w
;
i
m
p
o
r
t
a
n
d
r
o
i
d
.
v
i
e
w
.
V
i
e
w
;
i
m
p
o
r
t
a
n
d
r
o
i
d
.
w
i
d
g
e
t
.
B
u
t
t
o
n
;
i
m
p
o
r
t
a
n
d
r
o
i
d
.
w
i
d
g
e
t
.
C
h
e
c
k
B
o
x
;
i
m
p
o
r
t
a
n
d
r
o
i
d
.
w
i
d
g
e
t
.
E
d
i
t
T
e
x
t
;
i
m
p
o
r
t
a
n
d
r
o
i
d
.
w
i
d
g
e
t
.
T
o
a
s
t
;
p
u
b
l
i
c
c
l
a
s
s
M
a
i
n
A
c
t
i
v
i
t
y
e
x
t
e
n
d
s
A
c
t
i
v
i
t
y
{
p
r
i
v
a
t
e
E
d
i
t
T
e
x
t
e
t
_
q
q
;
p
r
i
v
a
t
e
E
d
i
t
T
e
x
t
e
t
_
p
a
s
s
w
o
r
d
;
p
r
i
v
a
t
e
C
h
e
c
k
B
o
x
c
b
_
r
e
m
e
n
b
e
r
;
p
r
i
v
a
t
e
U
s
e
r
D
a
o
d
a
o
;
p
r
i
v
a
t
e
L
i
s
t
<
u
s
e
r
>
l
i
s
t
;
@
O
v
e
r
r
i
d
e
p
r
o
t
e
c
t
e
d
v
o
i
d
o
n
C
r
e
a
t
e
(
B
u
n
d
l
e
s
a
v
e
d
I
n
s
t
a
n
c
e
S
t
a
t
e
)
{
s
u
p
e
r
.
o
n
C
r
e
a
t
e
(
s
a
v
e
d
I
n
s
t
a
n
c
e
S
t
a
t
e
)
;
s
e
t
C
o
n
t
e
n
t
V
i
e
w
(
R
.
l
a
y
o
u
t
.
a
c
t
i
v
i
t
y
_
m
a
i
n
)
;
e
t
_
q
q
=
(
E
d
i
t
T
e
x
t
)
f
i
n
d
V
i
e
w
B
y
I
d
(
R
.
i
d
.
e
t
_
q
q
)
;
e
t
_
p
a
s
s
w
o
r
d
=
(
E
d
i
t
T
e
x
t
)
f
i
n
d
V
i
e
w
B
y
I
d
(
R
.
i
d
.
e
t
_
p
a
s
s
w
o
r
d
)
;
c
b
_
r
e
m
e
n
b
e
r
=
(
C
h
e
c
k
B
o
x
)
f
i
n
d
V
i
e
w
B
y
I
d
(
R
.
i
d
.
c
b
_
r
e
m
e
n
b
e
r
)
;
u
s
e
r
u
=
n
e
w
u
s
e
r
(
)
;
d
a
o
=
n
e
w
U
s
e
r
D
a
o
(
M
a
i
n
A
c
t
i
v
i
t
y
.
t
h
i
s
)
;
l
i
s
t
=
d
a
o
.
f
i
n
d
A
l
l
(
)
;
i
f
(
l
i
s
t
.
s
i
z
e
(
)
=
=
0
)
{
e
t
_
q
q
.
s
e
t
T
e
x
t
(
"
"
)
;
e
t
_
p
a
s
s
w
o
r
d
.
s
e
t
T
e
x
t
(
"
"
)
;
}
e
l
s
e
{
S
y
s
t
e
m
.
o
u
t
.
p
r
i
n
t
l
n
(
"
大
小
:
"
+
l
i
s
t
.
s
i
z
e
(
)
)
;
f
o
r
(
i
n
t
i
=
0
;
i
<
l
i
s
t
.
s
i
z
e
(
)
;
i
+
+
)
{
S
y
s
t
e
m
.
o
u
t
.
p
r
i
n
t
l
n
(
l
i
s
t
.
g
e
t
(
i
)
.
g
e
t
N
a
m
e
(
)
+
"
:
:
:
:
"
+
l
i
s
t
.
g
e
t
(
i
)
.
g
e
t
P
a
s
s
w
o
r
d
(
)
)
;
}
u
=
l
i
s
t
.
g
e
t
(
l
i
s
t
.
s
i
z
e
(
)
-
1
)
;
S
t
r
i
n
g
q
q
=
u
.
g
e
t
N
a
m
e
(
)
;
S
t
r
i
n
g
p
a
s
s
w
o
r
d
=
u
.
g
e
t
P
a
s
s
w
o
r
d
(
)
;
e
t
_
q
q
.
s
e
t
T
e
x
t
(
q
q
)
;
e
t
_
p
a
s
s
w
o
r
d
.
s
e
t
T
e
x
t
(
p
a
s
s
w
o
r
d
)
;
}
}
p
u
b
l
i
c
v
o
i
d
l
o
g
i
n
(
V
i
e
w
v
i
e
w
)
{
S
t
r
i
n
g
q
q
=
e
t
_
q
q
.
g
e
t
T
e
x
t
(
)
.
t
o
S
t
r
i
n
g
(
)
.
t
r
i
m
(
)
;
S
t
r
i
n
g
p
a
s
s
w
o
r
d
=
e
t
_
p
a
s
s
w
o
r
d
.
g
e
t
T
e
x
t
(
)
.
t
o
S
t
r
i
n
g
(
)
.
t
r
i
m
(
)
;
i
f
(
T
e
x
t
U
t
i
l
s
.
i
s
E
m
p
t
y
(
q
q
)
|
|
T
e
x
t
U
t
i
l
s
.
i
s
E
m
p
t
y
(
p
a
s
s
w
o
r
d
)
)
{
T
o
a
s
t
.
m
a
k
e
T
e
x
t
(
t
h
i
s
,
"
密
码
或
者
用
户
名
不
能
为
空
"
,
0
)
.
s
h
o
w
(
)
;
r
e
t
u
r
n
;
}
i
f
(
c
b
_
r
e
m
e
n
b
e
r
.
i
s
C
h
e
c
k
e
d
(
)
)
{
d
a
o
.
a
d
d
(
q
q
,
p
a
s
s
w
o
r
d
)
;
/
/
在
工
具
类
添
加
增
加
功
能
T
o
a
s
t
.
m
a
k
e
T
e
x
t
(
M
a
i
n
A
c
t
i
v
i
t
y
.
t
h
i
s
,
"
保
存
成
功
"
,
0
)
.
s
h
o
w
(
)
;
}
}
}
用
数
据
库
实
现
账
号
登
录
案
例
的
目
录
结
构
如
下
所
示
:
回复
举报
上一个主题
下一个主题
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
本版积分规则
发表回复
!disable!!post_parseurl!
使用Markdown编辑器编辑
使用富文本编辑器编辑
回帖后跳转到最后一页