public static final class StrictMode.VmPolicy.Builder
extends Object
java.lang.Object | |
↳ | android.os.StrictMode.VmPolicy.Builder |
创建StrictMode.VmPolicy
实例。 名称以detect
开头的方法指定了我们应该查找的问题。 名称以penalty
开头的方法指定我们在检测到问题时应该做什么。
你可以尽可能多地调用detect
和penalty
方法。 目前订单不重要:所有处罚都适用于所有检测到的问题。
例如,检测所有内容并记录发现的内容:
StrictMode.VmPolicy policy = new StrictMode.VmPolicy.Builder() .detectAll() .penaltyLog() .build(); StrictMode.setVmPolicy(policy);
Public constructors |
|
---|---|
StrictMode.VmPolicy.Builder() |
|
StrictMode.VmPolicy.Builder(StrictMode.VmPolicy base) 建立在现有的VmPolicy之上。 |
Inherited methods |
|
---|---|
From class java.lang.Object
|
StrictMode.VmPolicy.Builder (StrictMode.VmPolicy base)
建立在现有的VmPolicy之上。
Parameters | |
---|---|
base |
StrictMode.VmPolicy
|
StrictMode.VmPolicy build ()
构建VmPolicy实例。
注意:如果在拨打 build
之前没有启用 build
,则隐式设置 penaltyLog()
。
Returns | |
---|---|
StrictMode.VmPolicy |
StrictMode.VmPolicy.Builder detectActivityLeaks ()
检测 Activity
子类的泄漏。
Returns | |
---|---|
StrictMode.VmPolicy.Builder |
StrictMode.VmPolicy.Builder detectAll ()
检测可能怀疑的一切。
在Honeycomb版本中,这包括SQLite游标,活动和其他可关闭对象的泄漏,但可能会在未来版本中扩展。
Returns | |
---|---|
StrictMode.VmPolicy.Builder |
StrictMode.VmPolicy.Builder detectCleartextNetwork ()
检测来自未包装在SSL / TLS中的调用应用程序的任何网络通信。 这可以帮助您检测应用程序无意中通过网络发送明文数据的位置。
使用 penaltyDeath()
或 penaltyDeathOnCleartextNetwork()
将阻止该套接字上的进一步流量,以防止意外数据泄露,同时还会导致进程崩溃。
使用 penaltyDropBox()
将记录触发违规的数据包的原始内容。
这会检查IPv4 / IPv6和TCP / UDP网络流量,但可能会受到误报,例如使用STARTTLS协议或HTTP代理时。
Returns | |
---|---|
StrictMode.VmPolicy.Builder |
StrictMode.VmPolicy.Builder detectFileUriExposure ()
检测此应用程序何时将 file://
Uri
给其他应用程序。
由于接收应用程序可能无法访问共享路径,因此不鼓励此曝光。 例如,接收应用程序可能未请求READ_EXTERNAL_STORAGE
运行时权限,或者平台可能跨用户配置文件边界共享Uri
。
相反,应用程序应该使用 content://
以便平台可以为接收应用程序扩展临时权限以访问资源。
Returns | |
---|---|
StrictMode.VmPolicy.Builder |
StrictMode.VmPolicy.Builder detectLeakedClosableObjects ()
检测具有 Closeable
终止方法的 Closeable
或其他对象是否在未关闭的情况下完成。
您总是希望显式关闭这些对象以避免不必要的资源泄漏。
Returns | |
---|---|
StrictMode.VmPolicy.Builder |
StrictMode.VmPolicy.Builder detectLeakedRegistrationObjects ()
检测 BroadcastReceiver
或 ServiceConnection
在 Context
拆卸过程中是否泄漏。
Returns | |
---|---|
StrictMode.VmPolicy.Builder |
StrictMode.VmPolicy.Builder detectLeakedSqlLiteObjects ()
检测 SQLiteCursor
或其他SQLite对象在未关闭时是否已完成。
您总是希望显式关闭SQLite游标以避免不必要的数据库争用和临时内存泄漏。
Returns | |
---|---|
StrictMode.VmPolicy.Builder |
StrictMode.VmPolicy.Builder penaltyDeath ()
崩溃整个过程违规。 这个惩罚运行在所有启用惩罚的最后,所以在进程死亡之前,您仍然会得到日志或其他违规。
Returns | |
---|---|
StrictMode.VmPolicy.Builder |
StrictMode.VmPolicy.Builder penaltyDeathOnCleartextNetwork ()
检测到明文网络通信时崩溃整个过程。
Returns | |
---|---|
StrictMode.VmPolicy.Builder |
也可以看看:
StrictMode.VmPolicy.Builder penaltyDeathOnFileUriExposure ()
当 file://
Uri
暴露在此应用程序之外时,崩溃整个过程。
Returns | |
---|---|
StrictMode.VmPolicy.Builder |
也可以看看:
StrictMode.VmPolicy.Builder penaltyDropBox ()
在违反策略时启用检测到的违规操作将DropBox
和计时数据记录到DropBox
。 主要用于进行beta用户现场数据收集的平台集成商。
Returns | |
---|---|
StrictMode.VmPolicy.Builder |
StrictMode.VmPolicy.Builder penaltyLog ()
将检测到的违规记录到系统日志。
Returns | |
---|---|
StrictMode.VmPolicy.Builder |
StrictMode.VmPolicy.Builder setClassInstanceLimit (Class klass, int instanceLimit)
一次设置一个类的多少个实例可以在内存中的上限。 有助于防止物体泄漏。
Parameters | |
---|---|
klass |
Class
|
instanceLimit |
int
|
Returns | |
---|---|
StrictMode.VmPolicy.Builder |