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

网站开发工程师简历扁平风格网站 模板免费下载

网站开发工程师简历,扁平风格网站 模板免费下载,淘客推广怎么样,大气环保网站模板S905L3 带有投屏的功能#xff0c;并通过 com.droidlogic.mediacenter.dlna.MediaCenterService 服务的启动和停止来开启和关闭DLNA功能#xff0c;但是在测试中发现机顶盒关闭DLNA后#xff0c;手机还能搜索到盒子。我在复测中发现关闭后有时很难很久搜索到盒子#xff0c…        S905L3 带有投屏的功能并通过 com.droidlogic.mediacenter.dlna.MediaCenterService 服务的启动和停止来开启和关闭DLNA功能但是在测试中发现机顶盒关闭DLNA后手机还能搜索到盒子。我在复测中发现关闭后有时很难很久搜索到盒子有时却很容易搜索到。 通过查看日志发现打开和关闭盒子com.droidlogic.mediacenter进程分别只有一条日志线索有限。 行  266: 05-31 09:35:54.089  4603  4603 D WeakRefService: net.droidlogic.action.dlna   state:true 行 1171: 05-31 09:36:04.272  4603  4603 D WeakRefService: net.droidlogic.action.dlna   state:false 调试了盒子设置界面打开和关闭DLNA的流程大概已经熟悉但是没有找出关闭的流程有什么问题设置APP的逻辑比较简单接口jar包dlna.jar则代码较多不太容易完全掌握其逻辑。难于定位是设置APP调用有问题还是调用的接口本身有问题。但是我想虽然不知道关闭DLNA需要调用什么代码和接口而且关闭会失败很难定位关闭的正确流程。但是可以通过定位开机打开DLNA调用了什么接口从而能猜测到关闭DLNA需要什么接口。 于是开机后打开DLNA, 一路的设置断点且每个断点都在手机上确认能否搜到盒子最后在adv.start()执行后手机就能搜到盒子了。 public boolean start() {Debug.d(DEVICE, httpServerList.start);int retryCnt 0;int bindPort this.getHTTPPort();HTTPServerList httpServerList;for(httpServerList this.getHTTPServerList(); !httpServerList.open(bindPort); bindPort this.getHTTPPort()) {retryCnt;if (100 retryCnt) {return false;}this.setHTTPPort(bindPort 1);}httpServerList.addRequestListener(this);httpServerList.start();Advertiser adv new Advertiser(this);this.setAdvertiser(adv);adv.start();Debug.d(DEVICE, SSDPSearchSocketList.start);if (HostInterface.getAvailNet() ! null HostInterface.getAvailNet().length 0) {this.setSSDPBindAddress(HostInterface.getAvailNet());}SSDPSearchSocketList ssdpSearchSockList this.getSSDPSearchSocketList();if (!ssdpSearchSockList.open()) {return false;} else {ssdpSearchSockList.addSearchListener(this);ssdpSearchSockList.start();this.peers.clear();return true;}} Advertiser继承线程类start后整个线程就跑起来了。他的逻辑还是很清楚先调用byebye如果线程关联的设备跟其他设备绑定了先解绑花5秒钟然后对外广播设备激活了之后每隔320秒广播一次。在这个类里面也能容易发现关闭DLNA要调用stopAdvertiser再设置断点发现调用stopAdvertiser后这个线程停止不下来于是还是会320秒广播一次。 public class Advertiser extends Thread {private static Thread advertise;private Device device;public Advertiser(final Device dev) {this.setDevice(dev);}public void setDevice(final Device dev) {this.device dev;}public Device getDevice() {return this.device;}public void stopAdvertiser() {if (Advertiser.advertise ! null) {final Thread tmpThread Advertiser.advertise;tmpThread.interrupt();Advertiser.advertise null;}}Overridepublic void run() {Advertiser.advertise Thread.currentThread();this.getDevice().byebye();try {Thread.sleep(5000L);}catch (InterruptedException e) {e.printStackTrace();while (true) {this.getDevice().announce();try {Thread.sleep(320000L);}catch (InterruptedException ex) {break;}}}finally {while (true) {this.getDevice().announce();try {Thread.sleep(320000L);}catch (InterruptedException ex2) {}}}}static {Advertiser.advertise null;} } 在这里就可以发现问题的所在当调用stopAdvertiser出发线程中断时run 循环对InterruptedException 异常没有做任何处理所以也不会停止可以考虑捕获异常时跳出循环。但是dlna.jar没有源码只有jar包因此要做反编译处理。 找到S905L3的编译环境查看是用的jdk 8,  把该jdk加入到环境变量 PATH。 生成class文件把dlna.jar拖入eclipse 或者 android studio, 找到相应的类可以直接看到代码然后把代码复制到一个空的Advertiser.java文件上修改对应的逻辑。然后用命令 javac Advertiser.java 生成新的Advertiser.class 第一次修改只在抛异常处增加break语句但是编译后发现break语句会被优化掉第二次修改把捕获中断异常放到循环外问题得到解决。 //修改前try {Thread.sleep(5000L);}catch (InterruptedException e) {e.printStackTrace();while (true) {this.getDevice().announce();try {Thread.sleep(320000L);}catch (InterruptedException ex) {}}}//第一次修改try {Thread.sleep(5000L);}catch (InterruptedException e) {e.printStackTrace();while (true) {this.getDevice().announce();try {Thread.sleep(320000L);}catch (InterruptedException ex) { break;}}}//第二次修改try {Thread.sleep(5000L);while (true) {this.getDevice().announce();Thread.sleep(320000L);}}catch (InterruptedException e) {e.printStackTrace();} 解包unzip dlna.jar 打包把新的Advertiser.class替换到解包出来的文件夹 用下命令打包jar -uvf dlna.jar org/cybergarage/upnp/device/Advertiser.class。dlna.jar就由旧的dlna.jar变成了新的dlna.jar。 用新的dlna.jar编译设置APK通过自测和测试复测问题没有再出现。
http://www.hkea.cn/news/14325925/

相关文章:

  • 做网红用哪个网站南京制作网站公司
  • 招聘网站开发兼职广州十大猎头公司排名
  • 网站开发开始阶段的主要任务包括( )如何在建设银行网站查企业年金
  • 江西建设厅特殊工种的网站wordpress 博客信息
  • 网站开发工程师证书有用吗wordpress修改页面标题显示
  • 建立自己的公司网站设计网页制作策划路程
  • 汽车网站建设公司哪家好哪个网站做外贸的
  • 创建网站并制作首页教案博创安泰网站建设
  • 外贸网站建设 联雅中国做外贸最好的网站
  • 广西网络公司网站建设深圳网站建设加盟
  • wordpress自动发货如何设置网站面向哪些地区做优化容易
  • 四川省建设厅官方网站做装修网站价格
  • c2c平台分类烟台企业网站怎么优化
  • 建站 手机网站百度收录软件
  • 沧州seo公司购物网站seo搜索引擎优化方案
  • angular适合 做 网站吗seo教程:外链优化方法和原理介绍
  • 石家庄网站开发公司注册费用多少
  • mvc 网站模板seo的作用
  • 企业网站关键词优化环保网站设计是什么
  • 网站qq临时会话代码网站为什么要备案
  • 德阳建设网站网站制作开发策划
  • 广州邮局网站东阳网站建设
  • 南昌做网站流程dedecms 做微网站
  • 做vue用哪个网站seo自然排名优化
  • 佛山专业网站设计公司域名注册和网站哪个好
  • 织梦网站被黑wordpress搜索页制作
  • 高端品牌网站建设建议网站产品展示代码
  • 左侧固定导航栏的网站南通启益建设集团有限公司网站
  • 营销型网站sem投放策略酒泉网站建设哪家好
  • 卖护肤在哪个网站做宣传好最大郑州网站建设公司