app

Appium 简单使用(二)

爱⌒轻易说出口 提交于 2019-12-09 18:59:51
上回我们说到,手机和appium已经连接成功。 下面我们开始写代码来进行测试。 运行代码前,先要安装python 库 pip install Appium-Python-Client 然后获取apk信息、工具在sdk目录下,build-tools对应版本下面。 命令:aapt.exe dump badging (APK的路径) 获取到包名,等信息之后,将包名填写到appium桌面版当中去。appium桌面版我稍后将资源上传。 大致内容如下: 直接点start server 启动 启动后,点击放大镜,填写链接内容,大致界面如下图。添加好APP信息 { "platformName": "Android", #固定 "platformVersion": "9", #android版本 "deviceName": "xxxxxx你自己的手机唯一识别码,adb可以看", "appPackage": "bin.mt.plus", #package 上面获取到的app信息里面有 "appActivity": "bin.mt.plus.Main", # 上面获取到的app 第二个内容 "automationName": "uiautomator2", #默认 "unicodeKeyboard": true, #用unicode编码发送字符串 "resetKeyboard": true, #

命令行从Android手机中导出已安装APK的方法调研

孤人 提交于 2019-12-09 18:52:12
一、背景 很多时候,APK文件只存在于应用市场,在PC上无法直接下载。用手机下载下来后就直接安装了,也不能保存原始的APK文件。 APK安装到手机后,Android系统会保存一份和原始APK一模一样的拷贝,位于data/app目录,文件名为 “APK的包名-1.apk”或者“APK的包名-2.apk”。这里的包名即 package name,形如 com.xxx.xxx。 data/app这个目录在非root的情况下,是无法直接查看的。 但幸运的是,这个目录下所有的APK文件,是有other组可读权限的。 这就是本文方法的原理了。 下面以微信这个APK为例来说明下具体的操作步骤。 二、步骤 Step 0: 在手机上安装APK,打开(在下面的步骤中保持APK处于打开状态)。 Step 1: 将PC通过adb连接上手机。这步显然是必要条件,对adb不清楚的请自行查阅相关资料 Step 2: 获取APK的包名(package name) - 最重要的一步 - 有两种方法 第一种方法 -- 如果你大概知道这个APK的包名可能会包含什么字符串。 比如,我们知道微信是腾讯出品的,那么按惯例,它包名里面肯定包含了 “tencent ”这个字符串。 方法:打开PC的命令行,输入 adb shell ps 。 它会列出当前手机中所有正在运行的程序,肯定包含了你要的APK的包名。

位置

[亡魂溺海] 提交于 2019-12-09 18:48:48
下载逍遥模拟器(仅限Windows系统) 输入网址: 逍遥安卓模拟器:http://www.xyaz.cn/index2.html 2.点击【立即安装】,选择【个人版】 3.等待下载完成,点击【在文件中显示】 4.找到安装程序,鼠标单机右键>打开,弹出窗口选择【是】 5.点击【快速安装】 6.点击【立即使用】 桌面有快捷方式 7.点击 位置 小图标 8.选择具体位置 注意:最好只设置一次位置,后面再次设置定位位置会导致蘑菇丁APP 定位报错(无此情况请忽略) 解决方法:卸载模拟器重装 9.导入蘑菇钉APP 蘑菇丁APP下载地址 首先切换主页 把蘑菇丁APP直接拖到模拟器中,完成安装 10.等待安装 11.打开>登录>签到 下载夜神模拟器(Win和MAC均支持) 根据系统不同下载相应版本。Windows系统点立即下载就行了。 安装 点击 更多信息 点击 仍要运行 安装完成后直接打开。 设置定位 点击 ··· 或按快捷键 Ctrl+9 进入虚拟定位 点击 虚拟定位 设置位置 输入位置或选择位置后,点击 定位到这里 下载蘑菇钉APP 蘑菇丁APP下载地址 导入电脑上的安卓系统 登录你的蘑菇钉账号>点击签到 第一次定位请选择到你要定位的地址,后面蘑菇丁可能直接无法定位。 其他模拟器 如果电脑卡顿,可以切换到 逍遥安卓模拟器 安装和使用方法一致。 来源: https://www

vuex实践示例

倾然丶 夕夏残阳落幕 提交于 2019-12-09 18:48:12
前言 Vuex的文档翻了几遍,依然只会最简单的用法。对其更多的功能不太了解。这次因为重新开始一个前后端分离项目,我希望使用vue+typescript,这时就涉及到ts版的vuex,才发现自己vuex都不懂,如何ts化呢?于是再次从0开始学一遍vuex。 这次有个意外的发现,在 Vuex官方文档 核心概念 - 项目结构 最后一行有句 请参考 购物车示例 ,点击打开了github vuex项目,发现里面有很多examples.于是下载下来,一个一个学习。刚开始就是照抄代码。网上很多大神都说抄代码没用,但是对于没有更好的办法的我来说,目前抄代码是最可行的方式。 建议你们自行下载vuex项目,例子都在examples里面, https://github.com/vuejs/vuex 这篇文章我想做的是对照示例学习vuex概念。 准备工作 1.示例一 counter 先从最简单的示例counter开始 (1)本地创建一个最简单的项目vuex-counter 用 vue cli 创建一个默认项目,安装vuex,这个过程省略。结构如下: 这个结构自己能掌握就好,未必要和我的一模一样。 (2)打开参考项目(从github下载的vuex项目),它是这样的 找到examples/counter 这里的示例项目结构跟我们本地构建的项目vuex-counter结构稍有不同, (4)vuex

oracle备份以及定时上传备份服务器

放肆的年华 提交于 2019-12-09 16:20:09
我把备份oracle以及上传备份服务器的脚本贴出来给你们做一下参考。 [root@master ~]-cat expDB_DailyBackup.sh #---------------------------Set Parameter---------------------------------------- ENVFILE="/etc/profile" EXITCODE=0 uDate=`date +'%Y%m%d'` Week=`date +'%a'` dbBackup=/home/app/backup/db_Daily tarName=app_${uDate}_DB_DailyBk.tar.gz #---------------------------Exit Program---------------------------------------- exit_handler() { exit $EXITCODE } #---------------------------Load the environment file---------------------------------------- if [ -r "$ENVFILE" ] then source $ENVFILE else EXITCODE=-1 exit_handler fi #--------

C#中怎样获取默认配置文件App.config中配置的键值对内容

两盒软妹~` 提交于 2019-12-09 15:35:39
场景 在新建一个程序后,项目中会有一个默认配置文件App.config 一般会将一些配置文件信息,比如连接数据库的字符串等信息存在此配置文件中。 怎样在代码中获取自己配置的键值对信息。 注: 博客主页: https://blog.csdn.net/badao_liumang_qizhi 关注公众号 霸道的程序猿 获取编程相关电子书、教程推送与免费下载。 实现 双击App.config,并添加如下格式的信息 <?xml version="1.0" encoding="utf-8"?> <configuration> <startup> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5"/> </startup> <appSettings> <!--扫描仪配置--> <add key="SqlConention" value="server=localhost;database=badao;uid=sa;pwd=123"/> </appSettings> </configuration> 然后右击项目引用,添加配置引用 因为如果只是添加了using System.Configuration; 则会提示: 在需要获取配置文件中设置的地方使用 var values = ConfigurationManager

Nodejs开发指南的几处更新

只谈情不闲聊 提交于 2019-12-09 14:55:54
《node.js开发指南》上面讲的代码案例,现在再来操作的话,肯定是运行不成功的。 express现在已经是3.x版本,相比书上用到的2.x版本,改动还是蛮大的。 使用express projectName创建项目时,express的-t参数已经失效,需要手动修改package.json和app.js文件来指定模块引擎,默认的为jade;如果需要换成ejs,需要修改: //app.js app . set ( 'view engine' , 'ejs' ); //package.json (使用*默认会获取最新的) "ejs" : "*" ; 然后是mongodb,需要使用下面方法: var MongoStore = require ( 'connect-mongo' )( express ); express3.x默认已经不支持flash了,你需要先使用npm install connect-flash。然后在app.js中添加如下代码: //app.js var flash = require ( 'connect-flash' ); app . configure ( function (){ app . use ( flash ()); //app.use(flash());要放在session之前 }); 不支持ejs模块的partials方法,需要使用npm

Android ios 小程序又一测试神器

孤街醉人 提交于 2019-12-09 14:47:16
浏览github有意看到这个库: https://github.com/didi/DoraemonKit 涵盖以下功能,可以说非常方便: 一、常用工具 【App 信息查看】 快速查看手机信息,App 信息,权限信息的渠道,避免去手机设置查找或者查看项目源代码的麻烦; 【沙盒浏览】 App 内部文件浏览的功能,支持删除和预览, 并且能通过 AirDrop 或者其他分享方式上传到 PC 中,进行更加细致的操作; 【MockGPS】 App 能定位到全国各地,支持地图地位和手动输入经纬度; 【H5任意门】 开发测试同学可以快速输入 H5 页面地址,查看该页面效果; 【Crash查看】 方便本地打印出出现 Crash 的堆栈; 【子线程UI】 快速定位哪一些 UI 操作在非主线程中进行渲染,避免不必要的问题;(iOS独有) 【清除本地数据】 一键删除沙盒中所有数据; 【NSLog】 把所有 NSLog 信息打印到UI界面,避免没有开发证书无法调试的尴尬; 【Lumberjack】 每一条 CocoaLumberjack 的日志信息,都在在 App 的界面中显示出来,再也不需要导出日志这么麻烦;(iOS独有) 【DBView】 通过网页方便快捷的操作应用内数据库,让数据库的调试变得非常优雅; 【模拟弱网】 限制网速,模拟弱网环境下App的运行情况。(android独有) 二、性能检测 【帧率

《记忆边缘》—团队冲刺阶段--领航篇(First Day)

ⅰ亾dé卋堺 提交于 2019-12-09 14:41:20
《记忆边缘》——团队冲刺阶段--领航篇(First Day) 目录 各个成员在 Alpha 阶段认领的任务 明日各个成员的任务安排 燃尽图&任务清单 团队成员贡献值的计算规则 拼搏的合照 各个成员在 Alpha 阶段认领的任务 经过团队讨论,我们最新确定的版本所需实现内容如下: 1:在IDEA上完成代码的整体部分,将逻辑和思路定下来。 2:在Android Studio上实现界面设计、按钮设计。 3:将APP界面和数据库联系起来。 4:截止时间、地点提醒、重要性等功能的IDEA代码的编写和Android Studio上功能的实现。 5:APP图标,背景图片的设计与美化。 各个成员在 Alpha 阶段认领的任务 小组成员 分工 任务量 袁源 数据库的建立与链接、在Android上完成APP功能的实现 55 彭淼迪 在IDEA上完成APP所需核心代码的编写,辅助在Android上完成APP功能的实现 55 王美皓 APP图标,背景图片的设计与美化,以及辅助完成界面布局设计、按钮设计 30 李一卓 在Android Studio上完成界面布局设计、按钮设计。 30 钱佳禹 博客的撰写,各种图的绘制,辅助编写APP功能所需的核心代码 30 总任务量 55+55+30+30+30 =200 在团队合作时任务也会动态分配,最终以实际为主,上述仅具有参考价值。 明日各个成员的任务安排 燃尽图

h5唤醒App

牧云@^-^@ 提交于 2019-12-09 12:40:37
一、应用场景 用户在访问我们的网页时,判断出这个用户手机上是否安装了我们的App,如果安装了则直接从网页上打开APP,否则就引导用户前往下载,从而形成一个推广上的闭环。这里只针对从网页端打开本地APP。 二、APP端配置 <activity android:name=".ui.activity.ZMCertTestActivity" android:label="@string/app_name" android:launchMode="singleTask" android:screenOrientation="portrait"> <intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> <data android:scheme="scheme1" android:host="host1" android:path="/path1" android:port="8080" /> </intent-filter> </activity> WEB端通过调用“