基于Android的模拟点击探索
个人博客:http://www.milovetingting.cn
基于Android的模拟点击探索前言压力测试中,一般会用到自动化测试。准备写一个APP,可以记录屏幕上的点击事件,然后通过shell命令来模拟自动执行。shell指令,比较容易实现。那么,关键的一步是获取点击的坐标。对于Android来说,为便于开发者调试,Android系统中的”开发者选项”中,有一个”指针位置”的选项。打开这个选项,点击屏幕,就会显示当前点击的位置坐标。接下来,来看一下打开选项的过程。
开发者选项页面“开发者选项”的源码位于packages/apps/settings/src/com/android/settings/DevelopmentSettings.java文件中。
private SwitchPreference mPointerLocation;
在onCreate()方法中初始化:
mPointerLocation = findAndInitSwitchPref(POINTER_LOCATION_KEY); ...
Android组件化开发的简单应用
个人博客:http://www.milovetingting.cn
组件化开发的主要步骤:一、新建Modules1、新建Project,作为应用的主Module。
2、新建Module:”Common”,类型选择”Android Library”,作为所有其它Module的基础依赖库。
3、新建Module:”Home”,类型选择”Android Library”,依赖”Common”。
4、新建Module:”Project”,类型选择”Android Library”,依赖”Common”。
5、新建Module:”User”,类型选择”Android Library”,依赖”Common”。
具体新建怎样的Module,可以根据实际业务来调整。这里选择新建”Home”、”Project”、”User”来模拟业务。
二、增加Flag以便在release和debug模式下切换1、在gradle.properties文件中增加一个变量
isDebug = false
当isDebug为true时,为Debug模式,其它的Module可以作为单独的App运行。当isDebug ...
动态更新Icon
个人博客:http://www.milovetingting.cn
动态更新Icon动态更改图标主要用到activity-alias和PackageManager的setComponentEnabledSetting方法。具体步骤如下:
1、在AndroidManifest.xml中增加以下声明:123456789101112<activity-alias android:name=".alias" android:enabled="false" android:icon="@mipmap/icon" android:label="Alias" android:targetActivity=".MainActivity"> <intent-filter> <action android:name="android.intent.acti ...
VirtualAPK的简单使用
个人博客:http://www.milovetingting.cn
VirtualAPK的简单使用VirtualApk引入步骤:
一、宿主应用引入VirtualApk1、在项目的build.gradle文件中加入依赖
123dependencies { classpath 'com.didi.virtualapk:gradle:0.9.8.6'}
完整的gradle文件如下:
12345678910111213141516171819202122232425262728 // Top-level build file where you can add configuration options common to all sub-projects/modules.buildscript { repositories { google() jcenter() } dependencies { classpath ' ...