
android
文章平均质量分 77
CrystalChenxiaoqing
这个作者很懒,什么都没留下…
展开
-
使用dumpsys gfxinfo 测UI性能
原文地址:https://developer.android.com/training/testing/performance.html使用dumpsys gfxinfo 测UI性能dumpsys是一款运行在设备上的Android工具,将 gfxinfo命令传递给dumpsys可在logcat中提供输出,其中包含各阶段发生的动画以及帧相关的性能信息。> adb she...原创 2018-04-12 15:26:48 · 11366 阅读 · 0 评论 -
android官网译文《Setting up CTS》-搭建CTS环境
译文地址搭建CTS环境物理环境Wi-FI和IPv6CTS测试需要一个支持IPv6d的Wi-Fi网络环境,可以将被测设备(DUT)作为一个独立的客户端对待,并有互联网连接。分离的客户端是指一种构型,其中在DUT没有清楚了解在该子网中的广播/多网络消息,或者通过一个Wi-Fi AP配置或通过运行的分离的子网络在DUT不连接的其他设备。通过Wi-Fi热点的配置或则运行DUT上的独立子网(如果没有其他的设备翻译 2016-08-17 15:34:05 · 2986 阅读 · 0 评论 -
CTS在ubuntu下的环境搭建
CTS在ubuntu下的环境搭建一、什么是兼容性测试?关于什么是cts,网上的相关资料已经很多了,但是个人觉得还是要去官网看看官方的说明,之前我也有翻译,但是是边学边翻译的,有些词汇可能理解不到位,但大家也可以作为一个参考。 android官网译文《Compatibility Test Suite》-兼容性测试套件 android官网译文《Setting up CTS》-搭建CTS环境环境准备操原创 2016-08-17 16:51:31 · 11042 阅读 · 1 评论 -
android官网译文《Running CTS tests》-运行cts
android官网译文《Running CTS tests》-运行cts译文地址运行兼容性测试cts tradefed的使用详细信息请参考Trade Federation Overview (简称tradefed或TF)连续测试框架的说明。运行一项测试计划之前,你需要: 1. 至少链接一台设备 2. 按下home键使设备停留在桌面 3. 当设备正在测试时,不能有其他任何的操作,并且为了保证相机翻译 2016-08-18 15:39:50 · 2022 阅读 · 0 评论 -
android官网译文《Compatibility Test Suite》-兼容性测试套件
译文地址CTS是如何运作的?兼容性测试时一个免费的、商业测试套件,下载地址下载地址,CTS可以体现出被测程序的兼容性。CTS在PC上运行,并在PC所连接的设备或模拟器运行测试用例,CTS本质上是一套可以集成到每日构建的工作中(比如持续集成测试)单元测试, 该CTS是一套设计集成到日常工作流程的单元测试工程师构建设备(如通过持续构建系统)。它的目的是在构建的过程中尽早发现的程序的不兼容性。CTS是一翻译 2016-08-11 15:03:03 · 2887 阅读 · 0 评论 -
Android Studio自动生成带系统签名的apk
如果你需要开发一个带有系统权限的app,往往需要配置SharedUserId,比如:<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.cxq.signdemo" android:sharedUserId="android.uid.shell">原创 2016-06-01 17:32:09 · 53557 阅读 · 49 评论 -
Android6.0(Android M) 悬浮窗被禁用,无权限开启悬浮窗的解决方案
Android6.0的机子默认不开启悬浮窗权限,即使在Manifest文件中给予了权限依然会报permission deny的错误,本博文给出解决方案原创 2016-04-22 14:03:09 · 52277 阅读 · 15 评论 -
在Android Sudio中使用Uiautomator
如何在Android Studio中使用uiautomator【步骤1】新建一个Android工程不需要创建Activity【步骤2】配置gradle(app)内容如下:dependencies原创 2016-04-21 09:50:58 · 21021 阅读 · 1 评论 -
Android 离线log 保存工具类
提供一个自己写的离线Log工具类,将log保存到本地,以后后期排错,工具类可以实现如下功能:设置log的保存路径设置log保存的文件后缀设置log是否开启(分Android自带的log和本地log)设置log标签log分类如何使用:LocalLog.setDefalutTag("cxq"); LocalLog.setFileName("MyLoc原创 2016-04-19 15:25:05 · 3895 阅读 · 0 评论 -
Android自动dump hprof文件的功能实现
要实现这个功能,必须提升权限,必须满足以下两个条件之一1、在root的设备上运行2、如果机子没root,需要在app的manifest文件中添加sharedUid,但是使用了这个的话,需要对apk文件进行系统签名android:sharedUserId="android.uid.shell"【步骤1】先准备一个工具类,用于获取进程的内存,dump hrpof文件等操作,代码原创 2016-05-11 17:29:09 · 4037 阅读 · 0 评论 -
判断文件是否写入完毕
在对文件进行读取,复制等操作前,往往需要去判断文件是否已经完全写入完毕,如果这个文件的写入操作是在你自己写的代码里,那么可以通过自己添加一些标志位来获取当前文件的写入状态,但是如果文件的写操作并非是你的代码去控制的,比如是系统dump hprof文件,那么应该怎么去判断hprof文件已经写入完毕呢?下面的方式可以判断文件是否读写完毕,基本思想就是投机取巧的用了文件的长度,如果不再涨那么就判断写原创 2016-05-11 15:29:51 · 19682 阅读 · 6 评论 -
Android连接指定的wifi热点
让Android连接指定wifi,需要添加如下权限 热点的加密方式不同,其接入的方式也不同,但均是通过WifiConfigration来配置的,分为以下三种情况:1、完全开放的网络conf.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE);2、WEP加密类型的网络conf.wepKe原创 2016-04-11 15:40:40 · 5815 阅读 · 1 评论 -
Android Studio 分析内存泄漏
内存分析入门原创 2016-04-26 15:12:45 · 6961 阅读 · 0 评论 -
多个Activity轮训切换的实现
需求:现有A B C 3个Activity,需要实现A-B-C-A-B-C....这样轮训切换,需求比较奇葩,但是工作上有事还真要用到。。。方案:用一个主Activity(MainActivity)控制ABC, MainActivity中startActivityForResult(intentA, 0)启动AAActivity通过setResult返回一个int值1原创 2016-03-10 15:44:27 · 825 阅读 · 0 评论 -
Android开发中AccessibilityService的使用
AccessibilityService在官网上的介绍如下:An accessibility service runs in the background and receives callbacks by the system when AccessibilityEvents are fired. Such events denote some state transition in t原创 2016-02-22 18:09:58 · 6327 阅读 · 0 评论 -
在Android Studio中使用Jni
前提:NDK环境已经搭建好,windows下需要安装cygwimandroid studio指向正确的ndk1、新建一个Android项目, 选择Empty Activity2、在MainActivity中定义Native方法在static语句块中先加载so库,这时Android Studio会报错,先忽略packag原创 2016-03-19 16:21:37 · 3602 阅读 · 0 评论 -
自定义Adpter使用方法以及注意点
写一个ListView,里面的Item样式自定义,如下界面:activity_white_pkg.xml<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" a原创 2016-01-12 17:07:22 · 577 阅读 · 0 评论 -
设置RadioGroup下所有radioButton均不可点击
设置RadioGroup下所有radioButton均不可点击正常地说一般要是使一个控件不可点击,不外乎使用以下几种方法 - setEnable - setClickable - setFocusable但是对于RadioGroup而言以上均失效,想要达到使RadioGroup下所有Button均不可点击的状态,需要遍历这个group,针对单独一个button去设置就可以达到上述效果publ原创 2016-08-08 15:38:23 · 36357 阅读 · 1 评论 -
android切换输入法工具类
android切换输入法工具类共享一个切换输入法的工具类,可以实现以下功能检测输入法是否安装安装输入法切换输入法(在utf7Ime和android之间切换,如果需要切换成其他的输入法,请自行修改)import android.util.Log;import com.meitu.travelapk.data.ConfigData;import com.meitu.travelapk.data.原创 2016-08-08 15:48:00 · 1822 阅读 · 0 评论 -
Systrace的工作原理及例子解读
Systrace的工作原理及例子解读译文地址:https://source.android.com/devices/tech/debug/systrace如果图片显示有问题,请访问简书,地址http://www.jianshu.com/p/6f528e862d31systrace是一个分析android性能问题的基础工具,但本质上是其他某些工具的封装,包括:PC端的atrace,设备端的可执行文件(翻译 2017-07-05 10:38:31 · 8604 阅读 · 2 评论 -
Systrace工具的使用
Systrace工具的使用翻译原文地址:https://developer.android.com/studio/profile/systrace-commandline.html#requirements通过抓取和展示app的执行次数,Systrace工具可以通帮助你分析app的性能问题,Systrace工具将android kernel层的数据比如CPU调度、disk activity以及应用线翻译 2017-07-03 16:17:58 · 1709 阅读 · 0 评论 -
使用Systrace分析UI性能
使用Systrace分析UI性能原文地址:https://developer.android.com/studio/profile/systrace.html在开发应用时,通常使用60fps的帧率来检测交互是否流畅,如果中途出错了,或者发生了掉帧,解决这个问题的第一步应当是搞清楚当前系统在做什么。Systrace工具可以在程序运行的时候收集实时的信息,记录时间以及CPU的分配情况,记录每个线程和进程原创 2017-07-03 16:15:27 · 2483 阅读 · 0 评论 -
将tensorflow训练好的模型移植到android
将tensorflow训练好的模型移植到android上说明本文将描述如何将一个训练好的模型植入到android设备上,并且在android设备上输入待处理数据,通过模型,获取输出数据。 通过一个例子,讲述整个移植的过程。(demo的源码访问github上了https://github.com/CrystalChen1017/TSFOnAndroid) 整体的思路如下: 1. 使用python原创 2017-05-04 15:44:19 · 24085 阅读 · 17 评论 -
tensorflow 几个android demo源码环境搭建
tensorflow 几个android demo源码环境搭建说明tensorflow上有几个example,本文重点关注其在android上的应用,源码在gitHub上有,这个apk是什么样子,大家可以通过点击这里进行下载。系统要求如果需要独立的库,需要分开构建tensorflow的源码物体追踪以及YUV转RGB在libtensorflow_demo.so中android5.0 ( API2原创 2017-04-27 17:31:55 · 15707 阅读 · 13 评论 -
jacoco仿emma实现统计手工(UI)测试覆盖率
jacoco仿emma实现统计手工(UI)测试覆盖率目的上一篇文章说道如何使用emma统计黑盒测试的覆盖率,但是仅仅只是针对eclipse的项目架构,但android studio的工程结构和eclipse不一样,因此使用ant进行构建时,源码路径也不一样,当然如果你熟悉ant,懂得修改build.xml文件也是可以实现emma对android studio工程的覆盖率统计,本文采用的是另一种方案,原创 2016-11-25 17:41:17 · 6004 阅读 · 6 评论 -
emma统计手工测试或Ui测试覆盖率
emma统计手工测试或Ui测试覆盖率参考文章1 参考文章2目的统计一个app在手动测试或者UI测试过程中,这些测试对代码的覆盖率,需要有app的源码才能实现。 说明:本博文的教程仅仅针对eclipse的工程结构,如果是Android Studio的工程结构,建议使用Jacoco一些假设:**工程名:**MyEmma **工程包名:**com.learn.myemma **工程路径:**D:\原创 2016-11-23 11:40:10 · 1866 阅读 · 1 评论 -
Android单元测试/Ui测试+JaCoCo覆盖率统计
Android单元测试/Ui测试+JaCoCo覆盖率统计参考资料1 参考资料2背景说明单元测试 从源代码着手,对源码中的最小可测试单元进行检查和验证,在对源代码有较深的理解下,编写测试单元,工作量大,不管从编写单元测试用例再到用例的维护上,成本都会比较高,但是通过这种方式可靠性很强。UI测试 从UI层面着手,对UI操作进行检查和验证,可以不需要对代码有深层次的了解,成本相对较低,工作量相对原创 2016-11-17 17:53:15 · 8791 阅读 · 5 评论 -
在Android Studio中使用Android Tests(Junit)
1、配置测试环境在app:gradle下配置apply plugin: 'com.android.application'android { compileSdkVersion 19 buildToolsVersion "23.0.2" defaultConfig { applicationId "com.exam原创 2016-05-31 16:09:53 · 28188 阅读 · 3 评论 -
CTS自带测试用例(buletooth)导入Android Studio图文教程
CTS自带测试用例(buletooth)导入Android Studio图文教程本文的目的在于将CTS自带的测试用例导入到Android Studio中,方便源码的分析,并通过分析源码,达到后期自己增加测试包的目的,首先先将源码导入到Android studio中,步骤如下:前期准备几个jar包 - ~/out/target/common/obj/JAVA_LIBRARIES/ctstestrun原创 2016-09-22 16:21:00 · 2627 阅读 · 0 评论 -
CTS中自定义(新增)一项测试计划Plan
CTS中自定义(新增)一项测试计划Plan查看官网并没有找到自定义plan的具体操作,只是告诉你可以新建,于是自己琢磨了下,发现还真能跑起来,下面说下方法: 说明: $android-cts指的是你在官网下的cts测试包,解压之后得到的路径,类似...\android-cts-6.0_r8-linux_x86-arm\android-cts\的这种格式,请自行替换1. 进入$android-c原创 2016-09-13 14:12:40 · 6084 阅读 · 1 评论 -
使用清华镜像快速下载Android系统源代码
引用文献1 引用文献2参考以上资料,梳理之后,整理出来的,意在后期再次搭建的时候方便查看用。环境要求OS ubuntu16.04安装repo安装curl安装git上面的工具环境如果没有,可以自己使用apt-get命令去安装,方法也很简单,不在此处赘述。1. 新建一个用于存放下载脚本文件的目录mkdir ~/bin PATH=~/bin:$PATH2. 下载Repo脚git clo原创 2016-08-24 16:32:00 · 9819 阅读 · 2 评论 -
android官网译文《CTS Development》-cts的二次开发
android官网译文《CTS Development》-cts的二次开发译文地址初始化您的回购客户端按照说明获取和构建Android源代码,当使用repo init命令时,需要为CTS分支指定一个特定的名称,例如-b android-5.0_r2。这样CTS的修改才会下当前以及之后的版本生效。构建以及运行cts执行以下命令来构建CTS和启动交互式CTS控制台: 提示:使用AOSP x86_64翻译 2016-08-22 14:43:29 · 2258 阅读 · 0 评论 -
android官网译文《Interpreting CTS results》-cts报告分析
android官网译文《Interpreting CTS results》-cts报告分析译文地址cts测试结果存放在: $CTS_ROOT/android-cts/repository/results/.zip如果你是自己搭建的cts,那么$CTS_ROOT将和out/host/linux-x86/cts类似但根据版本的不同路径也会稍有不同,这取决于你在网上下载的cts套件版本。在这个zip翻译 2016-08-22 09:51:46 · 1159 阅读 · 0 评论 -
Activity中Handler潜在内存泄漏的问题
在activity的ui变更中,我们经常会使用到Handler来配合,但是这样的做法有一个潜在的内存泄漏问题,因为同一个线程下的handler共享一个looper对象,消息中保留了对handler的引用,只要有消息在队列中,那么handler便无法被回收,如果handler不是static那么使用Handler的Service和Activity就也无法被回收。这就可能导致内存泄露。当然这通常不会发生原创 2016-07-21 15:23:47 · 542 阅读 · 0 评论 -
android官网译文《Using CTS Verifier》-CTS验证工具的使用
android官网译文《Using CTS Verifier》-CTS验证工具的使用译文地址cts verifier的使用Android兼容性测试套件验证工具是对兼容性测试的一个补充。CTS仅仅只能能测试能被自动化测试的API和功能,而CTS验证工具对于一些必须依赖手动操作的测试项(比如音频质量、触屏、加速器、相机等)提供了辅助性的测试。测试前的准备设备必须通过兼容性测试硬件要求一台具备usb 2翻译 2016-08-19 14:58:56 · 3178 阅读 · 1 评论 -
设置ListView中的所有Item均不可点击
设置ListView中的所有Item均不可点击正常地说一般要是使一个控件不可点击,不外乎使用以下几种方法 - setEnable - setClickable - setFocusable但是对于ListView如果直接使用以上方法均失效,想要达到使ListView下所有Item均不可点击的状态(置灰),需要重写Adapter下的isEnable方法,并且配合getView达到上述效果1、首先原创 2016-08-08 15:46:36 · 11278 阅读 · 0 评论 -
Android Studio同步远程Git代码到本地
前一篇文件说如何将本地代码同步到远程Git服务器(将代码同步到远程Git服务器),这篇说说如何在Android Studio中将远程代码同步到本地。环境说明:1、本地需要安装有git环境2、Android Studio3、存放项目的远程服务器地址,例https://git.coding.net/UserName/TestGit.git第一步:随便打开一个现有的And原创 2016-01-08 18:06:12 · 5030 阅读 · 0 评论 -
获取整机应用信息以及启动界面(通过adb启动应用)
通过Context.getPackgeManager来获取你关心的应用信息,包括icon、应用名、版本号等。但是如果要让你的脚本能够在任何界面下不通过点击图标而启动应用,除了包名之外还需要主Activity的信息,以下的AppInfo中,通过配置Intent,过滤出了主Activity信息。最后,可以通过如下方式启动被测应用(我的应用背景是自己写一个Android应用,把整机所有的应用都放原创 2016-01-07 15:30:57 · 2432 阅读 · 0 评论 -
一、通过发送系统广播让android关机、重启
要使机子关机或重启,归纳起来有如下三种方式:一. 发送广播方式二. Runtime调用Linux-shell三. 通过init.rc启动系统服务来运行sh文件本文先介绍第一种方式,使用发送广播的方式达到机子关机或重启的目的。有以下几个注意点:A.需要将应用提升至系统权限,应当配置manifest.xml文件,但是这样必须需要有对应的签名文件。andr原创 2015-07-15 11:17:32 · 8871 阅读 · 0 评论 -
Android中View的遍历
原文http://android-wtf.com/2013/06/how-to-easily-traverse-any-view-hierarchy-in-android/Have you ever wanted to find all the views marked with a specific tag? Well, the Android SDK only allows to fi转载 2015-07-14 16:07:27 · 2941 阅读 · 0 评论