Monkey

Android 6.0动态获取权限

三世轮回 提交于 2021-02-11 12:56:42
点上方蓝字关注「极客猴」 每周学点技术,充实自己 0x00 背景 Android系统的市场占有率不断攀升,智能手机的全面普及。这也给恶意软件、木马程序滋生提供了丰富营养。这些恶意软件、木马程序会对用户的敏感数据进行读写操作,用户的隐私收到威胁。谷歌为手机用户真是煞费苦心,在Android 6.0系统新增动态获取权限功能,目的是更好保护用户的隐私。 0x01 哪些权限需要申请 Android目前所有权限大可分为两种,一种是普通权限,另一种则是危险权限。普通权限指的是不会直接威胁到用户的安全和隐私的权限,这些权限的申请,系统会自动帮我们申请。危险权限则是可能会对用户的隐私以及设备的安全性造成威胁的权限。这些权限例如获取联系人信息、获取设备的地理位置、打开摄像头等。对于这危险权限,在Android 6.0之后必须由用户自行判断管理。如果用户授权,应用程序才会具有这相应的功能。 下图为危险权限列表,一共9组24个权限。 需要注意的一点 : 如果权限组中有个权限得到用户的授权,那么该权限所在组中所有其他权限也会同时被授权。 0x02 实现 我自己基于samples-23_r02\system\RuntimePermissions\实例代码,写出了一个demo。demo是功能是动态获取摄像头权限,如果用户同意授权,则获取摄像头预览画面。 1)在AndroidMesifest

阿里云移动测试平台使用教程

£可爱£侵袭症+ 提交于 2021-02-10 06:02:35
关于阿里云移动测试平台详细内容: 阿里云移动测试平台使用教程 (移动测试(Mobile Testing)是为广大企业客户和移动开发者提供真机测试服务的云平台,拥有大量热门机型,提供7x24全天候服务,帮助客户发现APP中的各类隐患(应用崩溃、各类兼容性问题、功能性问题、性能问题等),减少用户流失,提高APP质量和市场竞争力。) 简介: 移动测试(MQC)是为广大企业客户和移动开发者提供真机测试服务的云平台,拥有大量热门机型,提供7x24全天候服务。 我们致力于提供专业、稳定、全面、高价值的自动化测试能力,以及简单易用的使用流程、贴心的技术服务,并且帮助客户以最低的成本、最高的效率发现APP中的各类隐患(APP崩溃、各类兼容性问题、功能性问题、性能问题等),减少用户流失,提高APP质量和市场竞争力。 依托于阿里深厚的移动测试技术积累,MQC针对不同的测试场景和需求,研发了一套独特的测试方法和体系,可以涵盖Android、iOS、YunOS、H5 等不同的平台体系,我们在内部服务了手淘、天猫、聚划算、支付宝等一系列超级App,积累了丰富的移动测试经验。 同时,在发现问题—>定位问题—>解决问题 整个链路上做了非常多的优化和提升,可以帮助客户快速的发现问题,并且辅助迅速定位问题,最后通过各类修复建议促进问题快速解决。通过一整套测试能力网络,使得MQC的测试效果非常出众,远远高于业界水平。

Xamarin.Forms之主题

百般思念 提交于 2021-02-05 03:09:54
Xamarin.Forms应用程序可以使用 DynamicResource标记 扩展在运行时动态响应样式更改。 此标记扩展类似于StaticResource标记扩展,两者都使用字典键从ResourceDictionary中获取值。 但是,在StaticResource标记扩展执行单个字典查找的同时,DynamicResource标记扩展维护与字典键的链接。 因此,如果替换了与键关联的值,则更改将应用于VisualElement。 这使得可以在Xamarin.Forms应用程序中实现运行时主题。 在Xamarin.Forms应用程序中实现运行时主题的过程如下: 创建一个xaml文件,继承ResourceDictionary,并在其中为每个主题 定义资源 。 使用DynamicResource标记扩展在应用程序中 使用主题资源 。 在应用程序的App.xaml文件中 设置默认主题 。 添加代码以在运行时加载主题。 定义主题 创建xaml文件,主题定义为存储在ResourceDictionary中的资源对象的集合。 以下示例显示了示例应用程序中的LightTheme: < ResourceDictionary xmlns ="http://xamarin.com/schemas/2014/forms" xmlns:x ="http://schemas.microsoft.com

必会10大软件测试软件工具,不知道的快收藏了

旧巷老猫 提交于 2021-01-28 08:23:42
一、一个从事软件测试行业十年的老司机列出以下与软件测试相关的工具: 1.操作系统: Linux:vmware、xshell 、xftp 、ssh 1 2.数据库: 主流是以下三种数据库,尤其是MySQL以及oralce,在测试中必会的技能是对表的相关操作,增删改查,查询是最重要的。包括多表查询,子查询,连接查询以及复杂查询等。 mysql :前端连接工具为SQLyog 、Navicat oralce :前端连接工具为plsql developer、Navicat也可以使用 sqlserver:前端连接工具为它自带企业管理器 当然还有很多不是最常用的比如:DB2,MongoDB,Sybase 3.开发工具: java :eclipse 、myeclipse 、IDEA python :PyCharm 、sublime 4.单元框架: java :junit/testng python :unittest/pytest 5.抓包工具: fidder 、Charles、httpwatch、wireshark 6.接口测试工具: postman、jmeter 、SoapUI 、在线接口测试工具、编写接口自动化脚本 7.自动化测试框架: selenium 、Robot Framework 、appium 、UIautomater、Robotium、QTP、requests

PTA 6-15 用单向循环链表实现猴子选大王 (20 分)

南楼画角 提交于 2021-01-16 07:41:42
一群猴子要选新猴王。新猴王的选择方法是:让n只候选猴子围成一圈,从某位置起顺序编号为1~n号。每只猴子预先设定一个数(或称定数),用最后一只猴子的定数d,从第一只猴子开始报数,报到d的猴子即退出圈子;当某只猴子退出时,就用它的定数决定它后面的第几只猴子将在下次退出。如此不断循环,最后剩下的一只猴子就选为猴王。请输出猴子退出圈子的次序以及当选的猴王编号。 ##函数接口定义: int KingOfMonkey(int n,linklist *head); 裁判测试程序样例: #include <stdio.h> #include <stdlib.h> typedef struct node /*这个结构类型包括三个域 */ { int number; /*猴子的编号*/ int mydata; /* 猴子的定数 */ struct node *next; /* 指向下一只猴子的指针 */ } linklist; linklist *CreateCircle( int n ); linklist *DeleteNext(linklist *p); /* 删除单循环链表的p所指的下一个结点 */ /* 提示: 你所有的代码将由系统插入在此处 */ int main() { linklist *head; int i,n; scanf("%d",&n); head =

GD32如何替代STM32,带着疑问今晚继续听课!

半城伤御伤魂 提交于 2021-01-15 16:23:58
由《单片机与嵌入式系统应用》杂志社主办,兆易创新、IAR Systems、腾讯科技和麦克泰软件支持,嵌入式系统联谊会指导的“GD32 Arm MCU物联网开发者线上课程”第一次课程昨天晚上完美开讲!好多嵌友早早就在直播室等待,你们的支持,就是我们不断前进的动力。 昨天,来自兆易创新的任保宏详细介绍了GD32E5系列MCU开发指南并分享了开发案例,还穿插了Demo演示,满满的干货令很多工程师大呼没过够瘾,还强烈要求看回放视频细品。 详细案例介绍 Demo演示 互动环节,任工有问必答 在此恭喜获得互动礼品的嵌友:王海林、LXTao、Monkey之魂、Jinhui、王一民、Eric韦,你们的礼品今天快递出去,注意查收哦! 今天晚上,干货课程第二讲继续进行,晚上8点准时在腾讯会议直播间见。 希望入群的小伙伴可以加小编微信13717989036,保证你不会错过精彩直播!为了让更多朋友方便观看,课程也会同步在B站直播, 点此 可以直接观看或者复制链接http://live.bilibili.com/22738793。(温馨提示,只有在腾讯会议直播间的朋友才有机会获得奖品哦!) 明后天还有精彩内容继续,诸多好礼相送,千万不要错过哦! 1.GD32 Arm MCU物联网开发者线上课程精彩内容预告! 2.杨福宇专栏|寻找可超车的弯道:伟人讲破字当头,立也在其中了 3.RISC-V其实是反潮流! 4

干货-ANR问题处理套路

冷暖自知 提交于 2021-01-09 11:03:53
anr问题的处理技巧 hi, 大家好,我是爱吃香蕉的猴子,今天记录一下ANR问题的处理套路吧,这也是自己分析ANR问题一般的思路; 根据测试的描述,区分是Monkey测试偶现的 ,还是可以手动复现,一般情况前者多一些,我也是根据前者写这个记录; 首先,要会区分ANR类型 ,是什么类型的ANR ?? 用户输入事件处理超时: KeyDispatchTimeout-主要类型按键或触摸事件,input事件在 5S 内没有处理完成发生ANR 关键字:Reason: Input dispatching timed out xxxx Broadcast超时: BroadcastReceiver onReceiver处理事务时前台广播在10S内,后台广播在60s内没有处理完成发生ANR 关键字:Timeout of broadcast XXX/Receiver during timeout:XXX/Broadcast of XXX Service超时:ServiceTimeout-bind,create,start,unbind等在主线程处理耗时,前台Service在20s内,后台Service在200s内没有处理完成发生ANR 关键字:Timeout executing service:/executing service XXX ContentProvider超时:

七种不同类型的游戏测试技术

岁酱吖の 提交于 2021-01-07 11:51:09
顾翔老师的《软件测试技术实战设计、工具及管理》网上购买地址: https://item.jd.com/34295655089.html 《基于Django的电子商务网站》网上购买地址: https://item.jd.com/12082665.html 店铺二维码: 来源:http://www.ltesting.net 根据GlobalData(译者注:是全球知名数据分析和咨询公司)的最新报告:随着云端游戏和移动端游戏等革命性产品的飞速增长,如下图所示,预计到2025年,全球游戏行业将达到3,000亿美元以上的市值(请参见-- https://www.globaldata.com/store/report/gdtmt-tr-s212--video-games-thematic-research/ )。与此同时,由于全球疫情的继续,游戏产业得以爆发式增长和扩张,AltSpaceVR和BigScreenVR等该行业的顶尖领导者,正在以前所未有的速度,发力与远程联机和虚拟世界。当然,对于游戏公司而言,在关注未来发展趋势的同时,准确地把握用户的 需求 也是至关重要的。倘若交付了带有 缺陷 、甚至是有着严重错误的最终游戏产品,不但会让企业招致最终用户的广泛批评,而且会反过来导致产品使用量、以及销量的大幅下降。 显然,游戏 测试 是协助确保最终产品具有最佳 性能 和质量的关键步骤之一。不同的

《JAVA设计模式》之原型模式(Prototype)

自作多情 提交于 2021-01-07 05:38:47
在阎宏博士的《JAVA与模式》一书中开头是这样描述原型(Prototype)模式的:   原型模式属于对象的创建模式。通过给出一个原型对象来指明所有创建的对象的类型,然后用复制这个原型对象的办法创建出更多同类型的对象。这就是选型模式的用意。 原型模式的结构   原型模式要求对象实现一个可以“克隆”自身的接口,这样就可以通过复制一个实例对象本身来创建一个新的实例。这样一来,通过原型实例创建新的对象,就不再需要关心这个实例本身的类型,只要实现了克隆自身的方法,就可以通过这个方法来获取新的对象,而无须再去通过new来创建。   原型模式有两种表现形式:(1)简单形式、(2)登记形式,这两种表现形式仅仅是原型模式的不同实现。 简单形式的原型模式      这种形式涉及到三个角色:   (1)客户(Client)角色:客户类提出创建对象的请求。   (2)抽象原型(Prototype)角色:这是一个抽象角色,通常由一个Java接口或Java抽象类实现。此角色给出所有的具体原型类所需的接口。   (3)具体原型(Concrete Prototype)角色:被复制的对象。此角色需要实现抽象的原型角色所要求的接口。 源代码   抽象原型角色 public interface Prototype { /** * 克隆自身的方法 * @return 一个从自身克隆出来的对象 */ public

面试官:不会看 Explain执行计划,简历敢写 SQL 优化?

我们两清 提交于 2021-01-05 07:32:50
转自: 程序员内点事 作者: 程序员内点事 昨天中午在食堂,和部门的技术大牛们坐在一桌吃饭,作为一个卑微技术渣仔默默的吃着饭,听大佬们高谈阔论,研究各种高端技术,我TM也想说话可实在插不上嘴。 聊着聊着突然说到他上午面试了一个工作6年的程序员,表情挺复杂,他说:我看他简历写着熟悉 SQL 语句调优,就问了下 Explain 执行计划怎么看?结果这老哥一问三不知,工作6年这么基础的东西都不了解! 感受到了大佬的王之鄙视,回到工位我就开始默默写这个,哎~ 我TM也不太懂 Explain ,老哥你这是针对我啊!哭唧唧~ Explain有什么用 当 Explain 与 SQL 语句一起使用时, MySQL 会显示来自优化器关于SQL执行的信息。也就是说, MySQL 解释了它将如何处理该语句,包括如何连接表以及什么顺序连接表等。 表的加载顺序 sql 的查询类型 可能用到哪些索引,哪些索引又被实际使用 表与表之间的引用关系 一个表中有多少行被优化器查询 ..... Explain有哪些信息 Explain 执行计划包含字段信息如下:分别是 id 、 select_type 、 table 、 partitions 、 type 、 possible_keys 、 key 、 key_len 、 ref 、 rows 、 filtered 、 Extra 12个字段。 下边我们会结合具体的