安卓24开发文档翻译:StrictMode.VmPolicy.Builder
用于创建 StrictMode.VmPolicy 实例。那些方法 名以 detect 开头的方法,用于指明 要对哪些问题进行检测。那些方法 名以 penalty 开头的方法,用于指明 在检测到问题时该作何处理。
根据 妳的实际情况,妳可以调用任意数量的 detect 和 penalty 方法。目前 ,调用顺序是随意的:所有的惩罚(penalties)都会被应用到所有被探测到的(detected)问题上去。
例如,探测所有问题,并且将探测到的所有问题都输出到日志:
StrictMode.VmPolicy policy = new StrictMode.VmPolicy.Builder()
.detectAll()
.penaltyLog()
.build();
StrictMode.setVmPolicy(policy);
自此版本开始引入 应用编程接口级别9
StrictMode.VmPolicy.Builder ()
自此版本开始引入 应用编程接口级别9
StrictMode.VmPolicy build ()
构造出对应的VmPolicy 实例。
注意 : 如果 在 build 调用之前没有启用任何惩罚方法,那么, 会隐式启用 penaltyLog() 。
返回 |
|
自此版本开始引入 应用编程接口级别11
StrictMode.VmPolicy.Builder detectActivityLeaks ()
探测 在 Activity 子类上发生的泄漏。
返回 |
|
自此版本开始引入 应用编程接口级别9
StrictMode.VmPolicy.Builder detectAll ()
探测所有可疑的事情。
在安卓3.0(Honeycomb)版本中,会探测的事情包括SQLite 游标(cursors)泄漏、活动(Activities)泄漏和其它可关闭对象的泄漏。日后的版本中可能会再增加新的类别。
返回 |
|
自此版本开始引入 应用编程接口级别23
StrictMode.VmPolicy.Builder detectCleartextNetwork ()
探测本个应用中发出的所有的未经过SSL/TLS 封装的网络流量。利用这个特性,可以帮助妳探测到妳的应用中无意间以明文发送数据的代码。
如果使用 penaltyDeath() 或 penaltyDeathOnCleartextNetwork() 这两种惩罚方法的话,那么, 会阻止在那个套接字上 发送任何其它的数据,以避免 发生数据泄漏,同时会引起 妳的进程崩溃。
使用 penaltyDropBox() 这种惩罚方法的话, 会将触发该违规行为 的数据包的原始内容记录下来 。
这种探测方法会同时探测IPv4/IPv6 和TCP/UDP 流量,但是,它可能会触发误报,例如,STARTTLS 协议或HTTP 代理就可能触发误报。
返回 |
|
StrictMode.VmPolicy.Builder detectContentUriWithoutPermission ()
探测如下情况 :当前应用程序 向另一个应用程序发送了一个 content:// Uri , 却没有设置对应的 FLAG_GRANT_READ_URI_PERMISSION 或 FLAG_GRANT_WRITE_URI_PERMISSION 权限。
一般情况下,在发送意图时未设置此种权限标志位,表明应用程序中存在着缺陷。
返回 |
|
参考 :
自此版本开始引入 应用编程接口级别18
StrictMode.VmPolicy.Builder detectFileUriExposure ()
探测如下情况 :当前应用程序向另一个应用程序暴露出了一个 file:// Uri 。
我们是不推荐采用这种暴露行为的,因为,接收这条信息的应用程序可能并没有权限能够访问到妳所共享出来的路径。例如 ,接收这条消息的应用程序可能并未请求获取 READ_EXTERNAL_STORAGE 这个运行时权限,或者,整个平台 在共享这个 Uri 的时候可能已经越过了用户配置文件边界(user profile boundaries)。
正确 的做法是,在应用程序中,应当使用 content:// 这种资源标识 符(Uris) , 这样,平台就可以 为接收到这条信息的应用程序临时地提升权限 ,以便访问到对应的资源。
返回 |
|
参考 :
自此版本开始引入 应用编程接口级别11
StrictMode.VmPolicy.Builder detectLeakedClosableObjects ()
探测如下情况 :某个 可关闭的( Closeable )对象,或者某个具有显式终止方法的对象, 被销毁了 (finalized) ,却未被关闭。
毫无疑问,妳应当显式地关闭这种对象,以避免发生不必要的资源泄漏。
返回 |
|
自此版本开始引入 应用编程接口级别16
StrictMode.VmPolicy.Builder detectLeakedRegistrationObjects ()
探测 以下情况: 在某个上下文 ( Context )的销毁(teardown)过程中,某个 BroadcastReceiver 或 ServiceConnection 发生了泄漏。
返回 |
|
自此版本开始引入 应用编程接口级别9
StrictMode.VmPolicy.Builder detectLeakedSqlLiteObjects ()
探测 以下情况:某个 SQLiteCursor 或其它SQLite 对象,在销毁之前未被关闭。
毫无疑问,妳应当显式地关闭SQLite 游标,以避免发生不必要的数据库竞争(contention)和临时的内存泄漏。
返回 |
|
StrictMode.VmPolicy.Builder detectUntaggedSockets ()
探测 以下情况:当前应用 中,任何 未使用 TrafficStats 进行标记的套接字。 将套接字进行标记,以助于分析 妳自己应用程序中的网络使用情况,例如 , 将某个重度网络使用情况 的源头缩小到某个库或组件上。
这个功能,目前并不会探测由原生代码创建的套接字。
返回 |
|
参考 :
自此版本开始引入 应用编程接口级别9
StrictMode.VmPolicy.Builder penaltyDeath ()
如果探测到违规的情况则令整个进程崩溃。这个惩罚步骤会放置在所有其它惩罚步骤之后,所以,在进程崩溃之前,日志及其它的违规惩罚动作都会正常生效。
返回 |
|
自此版本开始引入 应用编程接口级别23
StrictMode.VmPolicy.Builder penaltyDeathOnCleartextNetwork ()
如果探测到发生了明文的网络数据传输,则令整个进程崩溃。
返回 |
|
参考 :
自此版本开始引入 应用编程接口级别24
StrictMode.VmPolicy.Builder penaltyDeathOnFileUriExposure ()
如果探测 到当前应用程序暴露出了 file:// 类型的 Uri ,则令整个进程崩溃。
返回 |
|
参考 :
自此版本开始引入 应用编程接口级别9
StrictMode.VmPolicy.Builder penaltyDropBox ()
这个方法的作用是, 当探测到违规行为 时, 将栈跟踪数据 和时间数据记录 到记录箱( DropBox )中去。 主要用于帮助平台整合工作者进行早期 的用户领域数据收集。
返回 |
|
自此版本开始引入 应用编程接口级别9
StrictMode.VmPolicy.Builder penaltyLog ()
将探测到的违规行为记录到系统日志中。
返回 |
|
自此版本开始引入 应用编程接口级别11
StrictMode.VmPolicy.Builder setClassInstanceLimit ( Class klass,
int instanceLimit)
指定,同一时刻中,某个类能够同时存在的数量的上限。用于帮助阻止对象泄漏。
参数 |
|
klass |
Class |
instanceLimit |
int |
返回 |
|
林志玲
Your opinionsHxLauncher: Launch Android applications by voice commands