一、前提:

apk可以获得系统签名

二、适用:

需要对android设备进行循环重启测试

三、步骤:

1. AndroidManifest.xml中添加以下权限:

    <uses-permission android:name="android.permission.REBOOT"/><uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/><uses-permission android:name="android.permission.WAKE_LOCK"/><uses-permission android:name="android.permission.DISABLE_KEYGUARD"/>

其中REBOOT需要系统用户权限,需要改sharedUserId,然后进行系统签名。

<manifest xmlns:android="http://schemas.android.com/apk/res/android"android:sharedUserId="android.uid.system"package="com.xxx.xxx">

2.系统签名方式:

2.1可以内置在代码中的app->build.gradle文件中signingConfigs、buildTypes位置,

,然后使用对应的buildTypes编译成apk即可。

2.2或者编译成apk,使用签名工具对apk进行系统签名,得到最终签名后的apk。

2.3系统签名用到的keystore,和ROM相关。

Android原生ROM的系统签名keystore可以网上下载获得。

手机/ODM厂商的ROM可能keystore不同,如有合作关系,可以索要签名工具。

3.AndroidManifest.xml中注册监听广播

<receiver android:name=".YourBroadcastReceiver"><intent-filter><action android:name="android.intent.action.BOOT_COMPLETED"/></intent-filter>
</receiver>

4.编写class YourBroadcastReceiver

import android.app.KeyguardManager;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.os.PowerManager;public class YourBroadcastReceiver extends BroadcastReceiver {@Overridepublic void onReceive(Context context, Intent intent) {if(intent.getAction().equals("android.intent.action.BOOT_COMPLETED")){//开机后一般会停留在锁屏页面且短时间内没有进行解锁操作屏幕会进入休眠状态,此时就需要先唤醒屏幕和解锁屏幕//屏幕唤醒PowerManager pm=(PowerManager)context.getSystemService(Context.POWER_SERVICE);PowerManager.WakeLock pwl=pm.newWakeLock(PowerManager.ACQUIRE_CAUSES_WAKEUP|PowerManager.SCREEN_DIM_WAKE_LOCK,"com.your.packetName:android.intent.action.BOOT_COMPLETED");pwl.acquire();//屏幕解锁KeyguardManager km=(KeyguardManager)context.getSystemService(Context.KEYGUARD_SERVICE);KeyguardManager.KeyguardLock kgl=km.newKeyguardLock("android.intent.action.BOOT_COMPLETED");kgl.disableKeyguard();//重启设备Intent intent=new Intent(Intent.ACTION_REBOOT);intent.putExtra("nowait",1);intent.putExtra("interval",1);intent.putExtra("window",0);sendBroadcast(intent);}}
}

5. 编译apk,安装已经进行系统签名的apk,重启设备,以后即可实现设备循环自动重启。

android自动测试2:使用android studio实现设备循环自动重启相关推荐

  1. android期末测试b卷,Android应用开发期末考试题

    试题 一. 选择题 1 android虚拟设备的缩写是(AVD) 2 Android SDK目前支持的操作系统(DOS) 3 Android开发工具插件(ADT)没有提供的开发功能(自动更新) 4 A ...

  2. Android SDK更新下载失败以及Studio首次安装取消自动下载SDK

    这是因为,此时Android Studio会去获取 android sdk 组件信息,这个过程相当慢,还经常加载失败,导致Android Studio启动不起开. 解决办法: 不去获取android ...

  3. ios和android手机测试,IOS和Android进行手机测试有哪些区别?

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 3.Sqlite数据库: 1android和IOS客户端都是采用sqlite数据库,SQLite是一个嵌入式库并且实现了零配置.无服务端和事务功能的SQL ...

  4. android怎么测试网速,Android网速测试App(三)

    网速测试助手软件名称:网速测试助手 软件版本:1.1 软件大小:817KB 软件授权:免费 适用平台:Android 这是一款比较简单的网速测试App,没有分开延迟值.上下行乃至线程数测试,只会直接告 ...

  5. GUI自动测试化工具 Ranorex Studio 使用介绍

    之前用的VS自带的测试工具进行Winform的测试.但是有一个第三方的插件,没有被更好的支持. 提示消息: 测试方法 EnformentUITestProject.CodedUITest1.Coded ...

  6. Android media 测试,如何在ANDROID中检测媒体文件是否受DRM保护?

    我尝试使用Android VideoView(媒体播放器)播放MPEG4文件 . 但它给出了以下错误 . 这是日志 . VERBOSE/MediaPlayerService(64): setDataS ...

  7. 电脑接口自动测试软件,通过多种接口总线与计算机实现自动检定/校准测试系统的设计...

    2.1 多总线仪器硬件兼容的实现方案 如图2中VISA接口子层是实现仪器统一编程接口的核心.VISA详细规范了虚拟仪器I/O接口软件的组成.内部结构与实现规则,而符合此规范的虚拟仪器I/O接口函数就是 ...

  8. 非常详细的测试unity与android之间的通讯操作

    非常详细的测试unity与android之间的通讯操作 博客分类: unity3dandroid 非常详细的测试unity与android之间的通讯操作 转载自 http://www.narkii.c ...

  9. android获得application类对象,android之Application类介绍

    Application类 application是用来保存全局变量的,并且是在package创建的时候就跟着存在了. 当我们需要创建全局变量的时候,而直接在application中去实现. 只需要调用 ...

最新文章

  1. 五行塔怎么吃第五个_红毛丹怎么吃 吃红毛丹的五个好处
  2. 025_Tree树形控件
  3. IntelliJ IDEA的使用操作链接
  4. Shiro框架:缓存、session会话、自定义FormAuthenticationFilter、RemenberMe
  5. 简练软考知识点整理-控制成本过程
  6. gram矩阵_Skip-gram
  7. google 浏览器默认打开控制台_chrome浏览器使用 Console(控制台)
  8. 迈克尔·戴尔再次到访2019戴尔科技峰会,为“戴尔中国4.0+战略”加个码……
  9. PyTorch实战福利从入门到精通之一——PyTorch框架安装
  10. java 中怎么比较两个时间相差的秒数
  11. 小学在班里排第几名家长才比较放心?
  12. 计算机连接打印机用户数量修改,win7电脑中局域网限制每台打印机的使用成员数量的方法...
  13. [面试] 算法(八)—— 树
  14. matlab数据导入 spss,【excel数据导入系统】excel数据导入_excel数据导入spss-系统城...
  15. vb.net程序可以在触摸屏上运行么_简单PLC编程台达PLC模拟量程序
  16. html调用矢量小图标的方法,微信小程序里引入SVG矢量图标的方法
  17. 完美解决Teamview12 过期之后不能用问题
  18. CUBA Platform
  19. linux环境git安装及使用教程,Ubuntu Git安装与使用
  20. 关于UnityPC端打包参数设置及发布PC端时固定分辨率

热门文章

  1. 生态伙伴 | 飞书携手Moka开启无接触线上招聘,打赢职场招聘开年战疫
  2. 前端人员学习postman
  3. SpringCloud微服务完整项目实例源码
  4. python实现随机森林进行情绪分类
  5. 实验七:555定时器及其应用
  6. 楼宇自控系统服务器 含软件,霍尼韦尔honeywell楼宇自控系统及现场设备 产品清单...
  7. 蓝牙5.2新特性及低功耗蓝牙音频(LE Audio)解读
  8. 讲解变频电源的工作原理图
  9. 平面几何----梅氏定理逆定理的证明
  10. html 定义悬浮块层级,采用CSS3的动态元素(动画)设计div块的层级式展现