前端技术
联系方式
您现在的位置:主页 > 前端技术 > 内容

Android开发之Ruby实现Android自动化屏幕适配,rubyandroid

发布时间:2019-02-06 编辑:环亚

Android开发之Ruby实现Android自动化屏幕适配,rubyandroid

背景:我相信对于Android开发者来说,屏幕适配一直是你心中的痛~,为了让Android开发者从屏幕适配的痛苦中解脱出来,我决定实现这个Android自动化屏幕适配的1.0版本。下面来讲一下思路。

  1. 首先以values-w360作为标准也就是360dp,对应的设备就是720×1080俗称的720P的屏幕,也就是说设计师给的设计稿是以720P的屏幕作为设计图的,那么如果设计图上面的尺寸是100px,那么我们就需要用100/2 = 50dp得到我们的这个标准值,以此类推,将app中所有需要适配的尺寸都写入到values目录的dimens.xml(标准值)中,Android程序员所需要做的工作就这么多了。

  2. 接下来的工作就交给脚本了,首先脚本会将values/dimens.xml拷贝到需要适配的屏幕分辨率对应的目录,例如values-w400,然后用正则匹配出每一个尺寸,进行计算然后重新写入适配之后的值,这里以360dp为标准,400dp为需要适配的目标设备,以100px为例,那么(400/360)× 100 = 111,那么在values-w400dp这个目录中的dimens的该项目的值就是111dp了。

require 'fileutils'  
    BASE_DP=360
    def adapte_dimens(dimens_file,alpha)
      puts "adapter #{dimens_file}"
      File.open dimens_file,'a+' do |f
        str =""
        f.each_line{|line
          value = /(?<=>)\d+(?=(dp|sp))/.match(line).to_a[0]#匹配出尺寸的项目包括dp和sp
          if value
            value = value.to_f * alpha#计算适配后的值
            str += line.gsub(/(?<=>)\d+(?=(dp|sp))/,value.to_i.to_s)#将新值写入
          else
          str += line
          end
        }
        f.truncate(0)
        f.puts str
      end
    end
    values_list = Dir.entries("./").find_all{|f
    #通过修改这里的正则表达式,可以控制具体适配哪一个屏幕比如将正则改为/values-w400dp/那么就只会适配400dp的屏幕了
    /values-w|values-sw/.match(f)
    }
    values_list.each do |v
      FileUtils.cp("values/dimens.xml",v)
      dest_file = "#{v}/dimens.xml"
      dp = /(\d{3})/.match(v)
      alpha =  dp[0].to_f/BASE_DP#计算比率系数
      adapte_dimens(dest_file,alpha)
    end

总结:好了简单的Ruby自动化适配脚本就完成了,当然还有很多需要改进的地方,现在是每一次运行脚本就会覆盖目标目录中的dimens.xml文件,如果有时候自动适配的效果不好偶尔需要人工做一些微调,但是执行这个脚本之后微调的值就会丢失掉,所以还需要改进。有兴趣的同学可以自己实现。



Android自动化测试工具谁会用,给我些资料或指导什的,谢啦

一、首先说说手机自动化测试的原理
1、手机自动化测试的原理为PC上一个控制端(测试工具)与手机上的一个agent端,通过串口、USB或者无线方式将PC与手机终端相连,然后应用测试工具向手机发送请求或者命令,手机收到命令或者请求后,交给agent端解析,然后agent将这些解析的命令下发给手机的各个功能模块所能识别的命令,调用那些功能模块模拟操作。完成这些操作后,手机会返回一些信息,agent可以抓取这些信息,然后传回给PC端,这样就完成了一个完整的手机自动化测试。
2、关键点在于agent,有的公司是向自己的手机终端的软件功能模块中植入测试程序响应代码,有的公司可以利用MMI_Command的方式来控制手机终端;原理就是给手机提供一个响应的接口。
3、而对于PC控制端,这个测试脚本用各种编程语言都可以,看如何定义
4、而又的自动化测试设计成录制的机制,说通俗点,就是记录手工操作的键盘信息或者LCD的操作信息(LCD需要用到智能识别机制)
5、自动化测试框架的搭建方法是通用的,你需要有一套自己的测试框架才能保证自动化测试的顺利开展。
二、Android自动化测试方向:
1、CTS,CTS 测试基于Android instrumentation 测试, 其又基于JUnit 测试。说白了, CTS 就是一堆单元测试用例。这也是Java 语言的擅长部分。
2、 Monkey工具,Monkey是Android中的一个命令行工具,可以运行在模拟器里或实际设备中。它向系统发送伪随机的用户事件流(如按键输入、触摸屏输入、手势输入等),实现对正在开发的应用程序进行压力测试。Monkey测试是一种为了测试软件的稳定性、健壮性的快速有效的方法。
3、ASE,ASE 意思为Android 脚本环境, 即我们可以通过脚本(比如Python)调用Android 的功能,从而定制一些测试。比如打电话,发短信,浏览网页,等。我们可以扩充它的API(Java 部分), 并用python 脚本调用这些API, 从而实现丰富的测试功能。用于API 部分可以访问到Android 全部API, python 又能灵活部署测试,所以ASE 的扩展性非常好。
4、Robotium,该工具用于黑盒的自动化测试。可以在有源码或者只有APK 的情况下对目标应用
进行测试。Robotimu 提供了模仿用户操作行为的API,比如在某个控件上点击,输入Text
等等。(推举你可以研究一下这个工具,开源的,我有资料)
5、可以自己开发一个手机方面的自动化测试工具,原理上一样的
如果你想要什么资料的话或者想一起学习研究的话,可以给我发邮件:[email protected]
 
手机APP自动化测试平台有什?Android终端太多,太碎片,人力测试太麻烦了,推荐好的APP自动测试平台

移动开发的一个重要难题,就是APP应用在开发过程中,必须使用大量不同的手机进行真实环境的测试,才有可能进入商用。由于手机操作系统的不同,以及操作系统版本之间的差异,使得真机测试这个过程尤其复杂,涉及终端、人员、工具、时间、管理等方面的问题,Android系统的设备因操作系统多样性和终端类型的庞杂,问题尤为复杂。恰恰就是这样,testin就想到了 ,做一个云的终端测试应用的服务!

Testin为移动应用开发者提供云端真机自动测试服务,该服务基于一种软硬件相结合的技术,帮助开发者解决了移动应用在不同平台、不同版本系统中的测试问题 。开发者可以免费使用云端1000多款真机测试自己为Android开发的应用,通过测试的应用可以直接发布到应用商店。此外,开发者和广告商还能使用Testin监控平台,监测全球不同地区用户的真机体验和广告展现质量。
 

http://www.bkjia.com/Androidjc/886416.htmlwww.bkjia.comtruehttp://www.bkjia.com/Androidjc/886416.htmlTechArticleAndroid开发之Ruby实现Android自动化屏幕适配,rubyandroid 背景:我相信对于Android开发者来说,屏幕适配一直是你心中的痛~,为了让Android开发...

本文源自: 凯发国际

上一篇:Vbs脚本经典教材,vbs经典教材

下一篇:没有了

Copyright © 2005-2016 http://www.erlygoods.com 凯发国际_凯发国际开户礼金_凯发注册送_搜狐财经版权所有 凯发国际_凯发国际开户礼金_凯发注册送_搜狐财经