精华内容
下载资源
问答
  • 安卓app启动速度优化

    2018-09-08 21:41:25
    随着app的迭代功能也会越来越多,一些功能难免要启动时初始,这样会使应用的启动速度变慢,提升启动速度迫在眉睫,如果不是非必须应用,很有可能分分钟被卸载,优化启动速度这里需要用到一个theme属性 ​&lt...

    随着app的迭代功能也会越来越多,一些功能难免要启动时初始化,这样会使应用的启动速度变慢,提升启动速度迫在眉睫,如果不是非必须应用,很有可能分分钟被卸载,优化启动速度这里需要用到一个theme属性

    ​<item name="android:windowIsTranslucent">false</item>

    设置窗口是否半透明

    <item name="android:windowBackground">@mipmap/launch</item>

    在设置一下窗口的背景 设置为app的启动图片 这样在启动应用的第一时间就会显示启动页的背景图片就会和启动页无缝链接,这个时候如果启动页设置了等待时长,可能会使应用启动页显示时间过长,手机配置不一样从启动到启动页显示出来的时长也不尽相同,如果手机配置比较差的话,启动页显示时间还是过长,继续对启动页进行优化。

    //Application
    
    @Override
    protected void attachBaseContext(Context base) {
        super.attachBaseContext(base);
        //记录Application初始化时间
        SPUtil.putLong("application_attach_time", System.currentTimeMillis());
    }
    //启动界面
    @Override
    public void onWindowFocusChanged(boolean hasFocus) {
        super.onWindowFocusChanged(hasFocus);
    
          long appAttachTime = SPUtil.getLong("application_attach_time");
          //从application到入口Acitity的时间
          long diffTime = System.currentTimeMillis() - appAttachTime;
    
    
         //假设启动页停留2s 所以启动页展示的时间为 2000ms - diffTime.
    }

    这样的话在不同配置的手机上启动页显示的时间就基本一致。

    注:在使用windowIsTranslucent为false时,activity的转场动画就会失效,侧滑返回也没有达到应有的效果,这是可以单独设置启动页的theme

    展开全文
  • 一、环境搭建电脑端(Windows系统):1、安装Appium-Python-Client包,直接cmd窗口输入pip3 install Appium-Python-Client2、确保安装匹配版本的selenium和appium,使用命令pip install selenium -U3、安装Appium-...

    一、环境搭建

    电脑端(Windows系统):

    1、安装Appium-Python-Client包,直接cmd窗口输入pip3 install Appium-Python-Client

    2、确保安装匹配版本的selenium和appium,使用命令pip install selenium -U

    3、安装Appium-windows,下载地址:http://appium.io/

    4、安装jdk,使用命令java -version检查jdk是否安装成功

    5、安装androidsdk,下载地址:

    链接:https://pan.baidu.com/s/1xHDZU5nyLKb8aVtOwGr9zg

    提取码:qgdq

    把下载好的androidsdk.zip压缩包解压。

    1153659-20200924155037481-1430489218.png

    配置环境变量。

    1153659-20200924155433288-1753773023.png

    新建一个ANDROID_HOME系统变量,变量值为上一步的路径。

    1153659-20200924155610136-612455050.png

    1153659-20200924155632230-1909469709.png

    在path路径追加platform-tools路径

    1153659-20200924155911342-1343030239.png

    1153659-20200924155922995-558188905.png

    打开cmd窗口输入adb,出现下图所示表示配置成功

    1153659-20200924160105020-32296554.png

    手机端:

    真机有线:

    1、用usb线连接到电脑,一头连手机,一头连电脑,usb连接方式选择传输文件

    2、进入手机设置,找到版本号,不断点击版本号,直到提示已处于开发者模式

    1153659-20200924161914482-138156163.png

    3、搜索开发者模式,在开发者模式中,启动usb调试 ,确认授权电脑端调试,这样appium才能驱动手机

    1153659-20200924162550607-1824098286.png

    4、在电脑上执行adb devices命令,查看连接的设备,不显示设备的话在电脑和手机上安装手机助手再查看

    1153659-20200924163715301-1662458911.png

    真机无线(adb无线连接功能)

    1、先以usb有线连接方式连接到计算机

    2、激活手机adb的无线服务(确保手机和电脑处于同一局域网)

    在cmd命令行输入adb tcpip 5555

    3、计算机以无线方式连接到手机

    在cmd命令行输入adb connect 手机ip

    4、连接成功后就可以拔掉有线了

    安卓模拟器

    1、下载模拟器并安装

    下载一款安卓模拟器,夜神模拟器下载地址:https://www.yeshen.com/

    2、打开模拟器应用

    在开发者模式中打开usb调试

    3、连接模拟器

    在cmd命令行输入adb connect 127.0.0.1:62001

    1153659-20200924193026499-1921330656.png

    二、元素定位工具

    1、Appium-windows自带的

    点击启动appium

    1153659-20200924170004398-12817504.png

    点击第1个图标

    1153659-20200924170037374-79873987.png

    填写设备信息(需要与被测app保持会话才能定位元素),点击Start Session

    1153659-20200924170410694-480993845.png

    1153659-20200924174600799-1293739908.png

    2、weditor

    安装

    pip3 install weditor

    启动

    python -m weditor

    运行

    在弹出的浏览器(默认浏览器最好不要设置为IE,一般选择谷歌或火狐)页面点击上面的Connect按钮,元素定位工具会自动连接手机,并在上面安装ATX程序(远程服务),没有自动安装的话,执行:pip3 install --pre --upgrade uiautomator2,python -m uiautomator2 init,接下来就可以查看元素了,刷新页面可以点击Dump Hierarchy按钮,也可以将右侧按钮设置成实时状态,这样不需要每次手动刷新页面了。

    1153659-20200924175741811-1663363993.png

    注意:

    运行代码时,需要在ATX程序点击停止UIAUTOMATOR

    1153659-20200924180612950-237591382.png

    3、androidsdk中的uiautomatorviewer

    点击uiautomatorviewer.bat打开

    1153659-20200924181145681-1162512743.png

    点击第2个图标,打开设备后就可以进行元素定位了

    1153659-20200924181628857-513072927.png

    1153659-20200924182039319-1688600989.png

    三、上代码

    ""自动化BOSSAPP

    选择第一个搜索结果,点击进入详情,

    获取职位名称下面的信息:地区、工作年限、学历"""from appium import webdriver

    # 自动化环境配置信息

    desired_caps = {

    # 移动设备平台

    'platformName': 'Android',

    # 平台OS版本号,写整数位即可

    'plathformVersion': '10',

    # 设备的名称--值可以随便写

    'deviceName': 'test0106',

    # 提供被测app的信息-包名,入口信息:

    # 1.打开被测app,2.命令行输入以下信息

    # adb shell dumpsys activity recents | findstr intent={

    'appPackage': 'com.hpbr.bosszhipin',

    'appActivity': '.module.launcher.WelcomeActivity',

    # 确保自动化之后不重置app

    'noReset': True,

    # 设置session的超时时间,单位秒,默认60s

    'newCommandTimeout': 6000,

    # 设置底层测试驱动-1.15默认使用的底层驱动就是UiAutomator2

    'automationName': 'UiAutomator2', # 或者UiAutomator1

    'skipServerInstallation': True # 跳过UI2的安装,如果第一次运行程序,不要添加该配置

    }

    # 创建驱动

    driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)

    driver.implicitly_wait(10) # 隐式等待

    # 1.点击放大镜

    ele = driver.find_elements_by_id('com.hpbr.bosszhipin:id/img_icon')[1]

    ele.click()

    # 2.在搜索框输入自动化测试

    driver.find_element_by_id('com.hpbr.bosszhipin:id/et_search').send_keys('自动化测试')

    # 3.点击第一个搜索结果

    driver.find_element_by_id('com.hpbr.bosszhipin:id/tv_filtered_name').click()

    # 4.获取当前页面所有职位信息元素

    job_msg = driver.find_elements_by_id('com.hpbr.bosszhipin:id/view_job_card')

    for job in job_msg:

    # 输出岗位名称

    name = job.find_element_by_id('com.hpbr.bosszhipin:id/tv_position_name').text

    # 输出薪资

    salray = job.find_element_by_id('com.hpbr.bosszhipin:id/tv_salary_statue').text

    # 输出公司名称

    company = job.find_element_by_id('com.hpbr.bosszhipin:id/tv_company_name').text

    # 5.点击进入详情

    job.click()

    # 6.获取职位名称下面的信息:地区、工作年限、学历

    address = driver.find_element_by_id('com.hpbr.bosszhipin:id/tv_required_location').text

    work_years = driver.find_element_by_id('com.hpbr.bosszhipin:id/tv_required_work_exp').text

    education = driver.find_element_by_id('com.hpbr.bosszhipin:id/tv_required_degree').text

    print(f'{name}|{salray}|{company}|{address}|{work_years}|{education}')

    driver.find_element_by_id('com.hpbr.bosszhipin:id/iv_back').click() # 回退到职位信息列表

    driver.quit()

    展开全文
  • 那么在App的测试环节中,测试人员一般是通过获取App当前窗口的信息,查找和操作按钮等控件来完成测试,这种过程是可以标准的,从技术上说没有什么难度。但手游就不同了,通过我们多年的测试经验来看,手游测试...

     【转载】

    手游自动化测试与App自动化测试技术上的区别

    手游和App的开发技术不同,导致了两者的自动化测试技术完全不同。一般来说,安卓应用是使用Android SDK开发的,利用Java编写。那么在App的测试环节中,测试人员一般是通过获取App当前窗口的信息,查找和操作按钮等控件来完成测试,这种过程是可以标准化的,从技术上说没有什么难度。但手游就不同了,通过我们多年的测试经验来看,手游测试难度大主要的原因在于其开发需要引擎(譬如比较流行的cocos2d和unity3d)。那么在游戏运行时引擎就会将控件渲染成一幅简单的图片,我们就无法通过Android自带的服务来找出游戏中的按钮,也就无法进行常规的自动化测试了。”

     

    两者功能测试差距最大,关键在于玩法差异

    相较于App功能测试来说,手游的功能测试非常复杂,据笔者了解,造成这种情况的主要原因在于游戏大多时候是动态且随机的,无论你是重复玩一个关卡还是挂机不进行操作,场景都是时刻发生变化的,由此手游自动化测试需要更加灵活的脚本用例,并且需要适当的探索和自适应功能。而App测试就没有这个问题,大部分App的使用方式都是静态且可以重复的。因此自动化测试可以完全按照测试脚本进行编写并执行。

    其次,由于手游具有关卡,PVP等更加丰富的内容,这让需要测试功能点更加繁杂,你不仅需要关注关卡间的细微差别,还要遍历所有关卡,这样重复细致的测试是非常耗时耗力的。同时在PVP模式中,手游对于网络延迟的要求非常高,网络测试就变得非常关键,我们需要模拟大量不同的使用场景来观察两个玩家的状态和数据是否一致,同时体验网络延迟对游戏体验的影响。而上述这些在传统的App测试中是并不需要的。

    两者测试的侧重点不同

    对于大多数非支付类App来说,安全并不是一个特别大的问题,只需要保证登录鉴权的安全性即可。App是一个方便用户的工具,没有人会在用自己的计算器App时候锁定内存,或者把加法操作变为乘法操作。但针对手游来说,几乎所有的产品都更看重商业类的测试,譬如支付、安全和收益测试。

    这类测试,一般会需要在大量不同系统、不同型号的手机上进行适配操作,以降低出错的可能性。同时,对于安全性来说,手游一般通过锁定/修改内存来锁定和修改游戏资源、通过修改游戏内存来改变游戏逻辑简化游戏流程等。

    总结

    其实,对于两者的测试来说仍然有很多共通点:譬如来电等情况下的中断测试,大量终端的兼容性测试,客户端运行在手机上的性能测试,网络较差或者网络频繁切换的弱网络测试以及用户体验和UI测试等。这些相同点属于测试的基础内容,无论你想从事哪个方面的测试工作都需要拥有扎实的基本功。

    从以上分析可以看出,手游测试一般更为深入,相较于App更为复杂,需要遍历的功能点更多更杂,也正因如此,从手游领域测试经验转入到APP测试领域,相对来说,技术门槛和积累是降低的。但对于想转入手游测试的App测试工作者来说,我们必须要建立更加全面的测试逻辑,并且要加入适应性与探索机制作为补充,才可能转型成功

    转载于:https://www.cnblogs.com/semishigure/p/7666289.html

    展开全文
  • airtest APP自动基础安装airtest连接设备连接Android手机连接Windows窗口连接iOS手机简单的脚本打开脚本窗口与log窗口打开Airtest 与poco辅助窗口Airtest 安装airtest 点击 官网链接 解压完运行即可 连接设备...

    安装airtest

    点击 官网链接
    在这里插入图片描述
    解压完运行即可
    在这里插入图片描述

    连接设备

    连接Android手机

    通过ADB连接你的电脑和Android手机,即可开始调试Android应用。ADB是Google官方提供的Android调试工具。AirtestIDE依赖ADB与安卓设备进行通信。

    • 打开AirtestIDE,按照以下步骤进行连接:
    • 打开手机设置-开发者选项-USB调试开关
    • 在AirtestIDE设备面板中点击refresh ADB按钮,查看连接上的设备
    • 如果没有显示出设备,试试restart ADB
    • 能够成功看到设备后,点击对应设备的Connect按钮,进行初始化
      操作视频

    连接Windows窗口

    • 对于Windows桌面程序的测试,AirtestIDE可以将被测窗口嵌入,方便脚本录制和调试。
    • 在AirtestIDE设备面板中点击Windows-框选游戏窗口按钮
    • 将鼠标移动到被测程序的窗口上,会显示绿色边框,将对应的窗口框出
    • 点击左键即可将对应的窗口嵌入到AirtestIDE中
      操作视频

    连接iOS手机

    要连接一台iOS手机,你需要先准备好一台安装了Xcode的Mac电脑,连接方法参考文档

    简单的脚本

    打开脚本窗口与log窗口

    在这里插入图片描述

    打开Airtest 与poco辅助窗口

    其中:Airtest 为安卓,poco为iospoco详细用法在这里插入图片描述

    Airtest

    touch 定位元素点击
    在这里插入图片描述

    text 点击输入
    在这里插入图片描述

    sleep()
    操作暂停时间(秒数)

    其他详细操作

    展开全文
  • App窗口支持架构

    2020-12-16 08:45:00
    code小生一个专注大前端领域的技术平台公众号回复Android加入安卓技术群作者:Bill,前滴滴 iOS,现就职于抖音商业,偶尔写写 FE 和跨端。本文发表于 2019/07/0...
  • 2、寻找appActivity,在运行窗口输入cmd,输入命令为:adb logcat>F:/log.txt,选择要执行的APP随意进行一些操作,打开日志搜索Displayed 3、获取’appWaitActivity名称详细链接...
  • 2021neoterm软件源特色1、Chrome风格的多窗口管理页面,华丽而不失效率2、默认显示的快捷键可以自定义修改3、丰富的个性设置4、快捷输入栏可根据使用的程序自动切换(需要oh-my-zsh)5、提供日常使用和开发的大...
  • Android7.0 多窗口你值得拥有

    万次阅读 2016-09-23 16:52:29
    多窗口分屏其实在国内并不陌生,已经有一些手机和平板搭载了“分屏多任务”和”APP窗口化”功能,但这些都是手机厂商自主定制系统中添加的功能,并非安卓原生所有,因此他们的实现方式可能会不一样,但是现在google原始...
  • 不是点了某一个按钮之后发生的闪退,而是app一打开就闪退。 三个可能原因: 1.在onCreate函数以外的地方使用“findViewById” 正确的方式是如下图这样: 要先在onCreate函数中初始布局才能实例按钮控件。 2.有...
  • 之前在做appium自动测试的时候,参考网上的例子,运行安卓系统自带的app,所以,就需要获取系统自带的package(包名)和activity。这里简单记录一下,不一定适合所有的系统应用。 运行环境:Windows 夜神模拟器...
  • 安卓第五天 Activity生命周期   1.Activity是应用程序的入口,负责创建窗口、用户交互等。   2.一个程序可能会有多个Activity 继承自android.app.Activity 如果想实现activity类,必须覆盖其方法, ...
  • 最大网页可视面积,自动适配调整网页大小,展现最佳效果 应用中心 手机酷站,海量新闻资讯任你选 Web app方式呈现,结构清晰,即点即用 操作便捷,一键完成 快捷手势 独特手势,快速实现新建、关闭、切换...
  • 在这把用APICLOUD开发APP的一些小技巧分享出来,本贴会持续更新,同时也欢迎大家分享 ========================================================== 1.安卓滑动关闭窗口 2.安卓点击两次退出...6.安卓最小你的
  • 6、聊天窗口的下拉刷新在释放刷新后垂直线条断开,并且上划或下划到顶有明显的光晕痕迹。 7、2000人的大群群聊时,群成员昵称可能显示不了。 隐藏功能: 点击“动态”-“气泡、主题、表情”可以设置用户...
  • 【健康体检】 一键式操作,整合DoKit多项工具,数据可视,快速准确定位问题,让你对app的性能了如指掌。 【文件同步助手】 通过终端服务,让你的终端空间在平台端完整的展现并提供强大的文件以及数据库操作能力。...
  • [个人实战]React Native项目-有团-项目初始搭建实战项目背景项目初始这个node窗口一定不要关掉,因为他就是我们的开发服务器好了,当我们看到这个界面的时候证明我们的项目已经初始成功了! 实战项目背景 因为...
  • AidCode(IDE)功能介绍

    2020-03-24 11:16:22
    1. 手机或浏览器中双击AidCode。... Open是打开python代码文件,New是新建python代码文件,Wizard是开发安卓手机APP的图形设计界面,里面有许多图形的控件,可以加快APP开发速度,这个功能在以后详细介绍...
  • 安卓上用于加载的Webview视图窗口只是作为类浏览器而存在,在安卓上更是只能同时运行一个Webview。(2)跨域数据交互问题。不同的Webview之间无法共享数据。(3)页面自适应问题。页面难以兼容适应不同分辨率的设备...
  • 这项功能可以在横屏显示的状态下,一个App分成左右两个窗口同时显示,做到了一份快乐,两份享受。而且,这项功能的出现也使得安卓平板的使用体验有了革命性突破。华为平板M6 10.8英寸“我买平板回来的意义是什么?”...
  • 这项功能可以在横屏显示的状态下,一个App分成左右两个窗口同时显示,做到了一份快乐,两份享受。而且,这项功能的出现也使得安卓平板的使用体验有了革命性突破。华为平板M6 10.8英寸“我买平板回来的意义是什么?”...
  • 【健康体检】 一键式操作,整合DoKit多项工具,数据可视,快速准确定位问题,让你对app的性能了如指掌。 【文件同步助手】 通过终端服务,让你的终端空间在平台端完整的展现并提供强大的文件以及数据库操作能力。...
  • 知识体系:对安卓知识体系做整理 登录注册:登录、注册、Cookie持久 我的收藏页面:依靠Cookie持久,实现对文章的收藏和展示 项目分类:在WanAndroid上发布的项目 网址导航:展示常用的开发网站 搜索功能:输入...
  • UiAutomator是Google提供的用来做安卓自动测试的一个Java库,基于Accessibility服务。功能很强,可以对第三方App进行测试,获取屏幕上任意一个APP的任意一个控件属性,并对其进行任意操作,但有两个缺点:1. 测试...
  • getAppVersionCode : 获取 App 版本码 getAppSignature : 获取 App 签名 getAppSignatureSHA1 : 获取应用签名的的 SHA1 值 getAppSignatureSHA256 : 获取应用签名的的 SHA256 值 getAppSignatureMD5 : 获取应用签名...
  • chrome.exe

    2020-04-01 09:26:11
    另有手机版的Chrome浏览器,于2012年发布了Chrome浏览器移动版,提供IOS系统、安卓系统以及Windows Phone系统的Chrome浏览器,在保持浏览器原有特点的情况下,实现了多终端使用浏览器,具有共享收藏历史信息等功能,...
  • Android 蓝牙通信问题

    2019-08-25 16:22:55
    在做一个蓝牙通信的APP,现在打开蓝牙可以搜索到周围一开启蓝牙的设备,点击连接后,也会出现配对的窗口,但软件会出现闪退,不知是何问题。以下是源代码,希望各路大佬可以帮我解决一下这个问题,是否是线程未开启...
  • 本地设备采集到的数据实时上传到云端,以便手机APP或者web等其他方式提取。 支持两种数据源,一种是串口和网络通过协议采集设备数据,一种是数据库采集。数据库采集模式可以作为通用的系统使用。 自带设备模拟工具,...
  • <div><p>这是很久很久之前想写的东西,拖了五六个月,没有动笔,现今补齐,内容有些多,对初学者有用,错误之处,望指出。 理解作用域 理解作用域链是Js编程中一个必须要...

空空如也

空空如也

1 2
收藏数 28
精华内容 11
关键字:

安卓app窗口化