Mio4kon

扶我起来 我还能送!

自定义你想要的 Android 系统

Android

这篇博客记录了如何通过修改 Android 的系统源码来定制自己的 Android 系统.内容主要包括下面几点: 系统环境的预准备 下载 Android 源码 编译 Android 源码 刷写设备 定制 Android 系统 下载 Android 源码并编译网上已经有很多教程了,我这里使用的是 mac 系统编译,如果你也查找过相关博客可以知道 mac 系统编译 Android 源码会遇到......

DumpHprof 文件分析记录

源码解析

dump 流程 header fix header java profile 版本 size of id: 写死的为4 当前时间 当前 hprof remaining length (87133083) string table StartNewRecord(TAG,time) 主要作用如下: 该方法会写入三个值: 写入 tag 写入时间 写入 length 写入之后会写入 id......

30分钟了解轻量级插件化方案--Small

插件化

介绍现有的插件化方案有很多,Small以轻量级著称,先看下官方的对比图: 更多对比:https://github.com/wequick/Small/blob/master/Android/COMPARISION.md 插件化? 模块化? 入门Demo 新建一个宿主工程. project-build中加入依赖: 123456789dependencies { c......

Activity启动流程分析以及如何动态改变启动的页面

Activity启动流程

分析首先从Activity的startActivity()为入口点: Activity.startActivity[Activity.java] 12345678910111213141516171819@Override public void startActivity(Intent intent, @Nullable Bundle options) { if ......

Appium源码解析之二——第一个请求

源码解析

前言通过前一篇的源码分析,我们知道Appium如何开启了服务以及如何处理客户端发起的请求. 本篇教程将根据第一个请求,来看一看Appium初始化到底做了哪些事情. 创建SessionId先看看Server的log: 在创建服务之后,收到的第一个请求就是/wd/hub/session,让我们来分析下收到请求后具体都干了哪些事情. 上回说到.收到请求后都会在 buildHandler中做请求处......

Appium源码解析之一——建立连接

源码解析

本地运行Appium源码 首先先下载 Appium 源码: https://github.com/appium/appium 进入工程目录 执行 npm install 执行 node build/lib/main.js 建立Appium连接根据启动命令可以知道程序入口点在lib/main.js中. [appium:lib/main.js] 1234567async function m......

Appium踩坑之旅——小米手机

踩坑之旅

前言了解过 Appium 或看过我之前写的系列教程的人,一定知道在与Appium Server连接的时候会传入相应的capabilities. platformName automationName autoLaunch noSign …. automationName是告诉 Appium Server是用什么方式来操作UI元素的.对应源码来说就是使用什么样的 Driver.(下一篇教程......

移动端自动化测试系列之五——AppiumLich框架使用

AppiumLich框架使用

前言经历了前面一系列的教程,相信你一定跃跃一试了,本篇教程将告诉你如何使用框架(appium-Lich)来进行移动端的自动化测试. Let’s go 项目结构先看下项目的目录结构 apk 文件夹下放置想测试的 *.apk 文件 data/config.ini文件中需要修改[name]与[account]中的内容 data/page.yaml文件就是系列四中提到的定位元素的文件 test/......

移动端自动化测试系列之四——生成定位元素

优雅的生成定位元素

前言之所以把定位元素单独拎出来说,是因为我觉得在写移动端测试框架的时候,如果处理不好的话,元素的定位是比较麻烦的事情. 如果对 Appium 稍微了解的童鞋一定知道定位元素的方式有很多种: id name xpath tag_name … 这么多的查找方式如果都写在代码中如下: 12345find_elements_by_id(R.id.login)find_elements_by_na......

移动端自动化测试系列之三——Allure测试报告

生成美观实用的测试报告

前言一个好的测试报告在整个测试框架起到至关重要的部分.最早之前使用Java写 Appium 框架的时候是用extentreports 做为测试报告的框架. 但是 extentreports 没有 python 版本.于是在网上搜寻了好久,发现很多人提到了 HTMLTestRunner 这个框架.自己试用了一下,发现生成的测试报告实在是太丑了.而且对 python3 的支持也不是很好.最终发......