当前位置: 首页 > news >正文

来宾 网站建设seo电商运营是什么意思

来宾 网站建设,seo电商运营是什么意思,php网站培训,祁东seo公司小酌鸡汤 富贵必从勤苦得#xff0c;男儿须读五车书。 StrictMode能检测什么呢#xff1f; StrictMode主要检测两大问题#xff1a;线程策略(TreadPolicy)和VM策略(VmPolicy)。 StrictMode的工作原理#xff1f; StrictMode最常用于在应用程序的主线程上捕获意外的磁盘或网… 小酌鸡汤 富贵必从勤苦得男儿须读五车书。 StrictMode能检测什么呢 StrictMode主要检测两大问题线程策略(TreadPolicy)和VM策略(VmPolicy)。 StrictMode的工作原理 StrictMode最常用于在应用程序的主线程上捕获意外的磁盘或网络访问在该线程上接收UI操作并进行动画处理。使磁盘和网络操作脱离主线程可以使应用程序更加流畅响应更快。通过使应用程序的主线程保持响应状态还可以防止向用户显示ANR对话框。 请注意即使Android设备的磁盘通常位于闪存中但许多设备在该内存之上运行文件系统的并发性非常有限。通常情况下几乎所有磁盘访问都是快速的但是在某些情况下某些进程在后台发生某些I / O时访问速度可能会大大降低。如果可能的话最好假设这种情况并不快。 ThreadPolicy线程策略 检测所有可能的问题使用detectAll()开启 调用速度缓慢的检测使用detectCustomSlowCalls()开启 磁盘读取操作使用detectDiskReads()开启 磁盘写入操作使用detectDiskWrites()开启 网络操作使用detectNetwork()开启; 检测已定义资源类型和getter调用之间的不匹配的功能使用detectResourceMismatches()开启 检测未缓冲的输入/输出操作使用detectUnbufferedIo()开启。 VmPolicy虚拟机策略 检测所有可能的问题使用detectAll()开启 检测Activity泄漏使用detectActivityLeaks()开启 权限检测detectContentUriWithoutPermission()开启 未关闭的Closable对象泄漏使用detectLeakedClosableObjects()开启 泄漏的Sqlite对象使用detectLeakedSqlLiteObjects()开启 检测实例数量使用setClassInstanceLimit()开启。 等等…… StrictMode的使用原则和技巧 以名称开头的方法detect指定了我们应该寻找的问题。以名称开头的方法penalty指定了检测到问题时应采取的措施。 可以根据需要调用任意多个detect和penalty方法。顺序微不足道所有措施都适用于所有检测到的问题。 StrictMode如何使用 在ApplicationActivity或其他应用程序组件Application.onCreate() 方法执行前添加StrictMode检测。 public void onCreate() { if (DEVELOPER_MODE) { StrictMode.setThreadPolicy(new ThreadPolicy.Builde() .detectDiskReads() .detectDiskWrites() .detectNetwork() // or .detectAll() for all detectable problems .penaltyLog() .build()); StrictMode.setVmPolicy(new VmPolicy.Builde() .detectLeakedSqlLiteObjects() .detectLeakedClosableObjects() .penaltyLog() .penaltyDeath() .build()); } super.onCreate(); } 如果观测结果呢 AS IDE中的logat中筛选StrictMode信息 adb logcat 进行筛选StrictMode信息 现在就一起实操体验 StrictMode 吧~ (1)StrictMode实操环境(可选项用自己的环境和代码也一样) SamplePop环境如下 Android Studio 4.0 Gradle version 6.1.1 Android API version 30 (2)举个栗子主线程中的文件写入的检查 (2.1)代码启用全部的ThreadPolicy和VmPolicy违例检测 public class MainActivity extends AppCompatActivity { Override protected void onCreate(Bundle savedInstanceState) { //代码启用全部的ThreadPolicy和VmPolicy违例检测 StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder().detectAll().penaltyLog().build()); StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder().detectAll().penaltyLog().build()); super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //执行模拟测试 writeToFileInMainThread(); } /** * 主线程写文件 */ public void writeToFileInMainThread() { File destFile new File(Environment.getExternalStoragePublicDirectory (Environment.DIRECTORY_DOWNLOADS).getPath(), StrictModeTest.txt); try { destFile.createNewFile(); destFile.setWritable(true); OutputStream output new FileOutputStream(destFile, true); output.write(IO operation.getBytes()); output.flush(); output.close(); } catch (Exception e) { e.printStackTrace(); } } } (2.2)运行应用观察logcat的输出 StrictMode 主线程写文件 (2.3)解决StrictMode检查错误 /** * 子线程写文件 */ public void writeToFileInSubThread() { new Thread(new Runnable() { Override public void run() { writeToFileInMainThread(); } }).start(); } (3)举个栗子内存泄漏的检查 (3.1)让LeakActivity产生内存泄漏 public class LeakActivity extends AppCompatActivity { Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_leak); ActivityManager.getInstance().mActivities.add(this); } } (3.2)ActivityManager中关于mActivities的部分实现 public class ActivityManager { private static ActivityManager mInstance new ActivityManager(); public ArrayList mActivities new ArrayList(); private ActivityManager(){ } public static ActivityManager getInstance() { return mInstance; } } (3.3)引发内存泄漏 不断从MainActivity打开LeakActivity再返回再打开如此反复操作引发内存泄漏。 public void onLeakActivityStart(View view) { Log.d(TAG, onLeakActivityStart: ); startActivity(new Intent(this, LeakActivity.class)); } (3.4)运行应用观察logcat的输出 StrictMode 内存泄漏 (4)举个栗子自定义检测类的实例泄漏 (4.1)开启实例检测当LeakActivity类出现多于一个实例时就报告内存泄漏 StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder().setClassInstanceLimit(LeakActivity.class, 1).penaltyLog().build()); (4.2)运行应用观察logcat的输出 StrictMode 实例检测 (5)举个栗子耗时调用(noteSlowCall) (5.1)耗时调用检测适用于自定义的任务执行类中比如 public class FastRunTask { private static final int MAX_RUN_VALID_DURATION 300; public void execute(Runnable task) { long startTime SystemClock.uptimeMillis(); task.run(); long useTime SystemClock.uptimeMillis() - startTime; if (useTime MAX_RUN_VALID_DURATION) { StrictMode.noteSlowCall(FastRunTask note slow call use time : [ useTime ]); } } } (5.2)执行耗时任务 public void onFastRunTask(View view) { Log.d(TAG, onFastRunTask: ); FastRunTask fastRunTask new FastRunTask(); fastRunTask.execute(new Runnable() { Override public void run() { try { Thread.sleep(500); } catch (InterruptedException e) { e.printStackTrace(); } } }); } (5.3)运行应用观察logcat的输出 StrictMode 耗时调用 (6)StrictMode小结 主要作用查找可能会长时间运行的操作例如您可能会无意中在主线程中执行的网络或数据库操作。 注意项 StrictMode无法监控JNI中的磁盘IO和网络请求 应用中并非需要解决全部的违例情况比如有些IO操作必须在主线程中进行。 通常情况下StrictMode给出的耗时相对实际情况偏高并不是真正的耗时数据。 如何修复问题如果你发现你的感觉有问题的违规行为有各种各样的工具来帮助解决这些问题线程HandlerAsyncTaskIntentService等。 注意StrictMode不是安全机制不能保证找到所有磁盘或网络访问。尽管在执行Binder调用时确实跨进程边界传播了状态但它最终仍是尽力而为的机制。未来的Android版本可能会执行更多(或更少)操作因此您永远不要在发布的应用程序中启用StrictMode。 一起来启用 StrictModel 查看自己的项目吧~ 小编的扩展链接 参考链接 状似明月泛云河体如轻风动流波 举手之劳赞有余香 ❤ 比心 ❤
http://www.hkea.cn/news/14349400/

相关文章:

  • 网页设计制作与网站建设课程公司网站地址
  • 长沙建站公司效果计算机前端工资多少
  • 北京北京网站建设网页游戏大全力荐新壹玩
  • 蒙城做网站冬奥会网页设计代码
  • 腾讯网网站网址商丘网红排行榜
  • 简单的网站代码app和小程序的开发成本
  • 手机app设计网站上海网站推广模板
  • 宿迁网站建设公司排名怎么在网站上做游戏代练
  • 内蒙古包头网站建设seo工具助力集群式网站升级
  • 上社网站建设wordpress 文章去重
  • 那些平台可以给网站做外链旅游网站建设的方法
  • 企业网站备案请问哪里可以做网站
  • 安徽手机版建站系统wordpress列表页模板
  • 网站服务器租赁费用做养殖推广什么网站好
  • 网站模板库企业网站设计费做哪个科目
  • 人工智能网站开发注册网站在哪里注册
  • 石家庄外贸网站制作网站建设费用价格
  • 江门网站建设联系电话wordpress yoast
  • 同城配送网站建设国家企业信用信息公示系统官网全国
  • 建设网站流程图网站根验证文件在哪
  • 英文网站建设easy网站模板文件在哪里下载
  • 饮食网站模板中国建设通官方网站
  • 临沂市建设工程多图联审系统 网站四川省建筑人才网个人中心
  • 网站建设公司华网天下北京宣传册制作
  • 平台网站建设公司哪家好百度推广登录平台
  • 响应式网站 外贸用什么软件做动漫视频网站好
  • 网站开发属于软件吗烟台网站建设技术托管
  • 获取网站漏洞后下一步怎么做平面设计师工作内容
  • 网站建设培训学院做网店的进货网站
  • 网站设计怎么做wordpress 文件结构