
Android
Sunraych
这个作者很懒,什么都没留下…
展开
-
不需要root通过adb控制开关wifi
需要编写APK:class MainActivity : AppCompatActivity() { @RequiresApi(Build.VERSION_CODES.M) override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) val wf原创 2022-02-15 10:25:10 · 3496 阅读 · 1 评论 -
华为Android 10手机微信小程序无法调起的问题解决办法
最近测试小程序发现华为Android 10手机微信小程序无法调起。网上查了一下有很多人都有类似的情况。于是开始排查自己,发现自己的小程序没有问题,是华为手机的一个系统特性。解决办法:1. 检查微信的悬浮窗权限是否开启。开启悬浮窗权限可以解决2. 检查微信是否有显示在其他应用上层的权限,需要打开该权限...原创 2020-03-12 17:29:59 · 15631 阅读 · 10 评论 -
通过widget来实现手机响铃模式的切换
转载请注明出处,谢谢!最近入了一部Neuxs 5,昨天因为开会的时候手机经常收到短信,想静音按音量键关的确是媒体音量!在通知栏里也找不到快速切换按钮。于是萌生了自己写一个桌面widget来快速切换响铃模式的想法。首先,要创建一个widget。网上搜了一下,方法很普遍。只要实现onUpdate方法,使用pendingIntent发送广播,本地再接收广播执行切换响铃模式即可。代原创 2014-03-12 22:24:42 · 1498 阅读 · 2 评论 -
浅谈Android应用性能之内存
如何测试一个APP的内存占用情况?一个APP占用的内存分哪些部分?如何检查一个APP是否存在内存泄漏? 一、Android内存介绍:在java开发过程中,是通过new来为对象分配内存的,而内存的释放是由垃圾收集器(GC)来回收的,在开发的过程中,不需要显式的去管理内存,java虚拟机会自动帮我们回收内存。但是这样有可能在不知不觉中就会浪费了很多内存,最终导致java虚拟机花费很多时间去原创 2014-02-25 13:16:02 · 1179 阅读 · 0 评论 -
在Android手机上获取其他应用的包名及版本号
获取Android手机上其他应用的包名及版本号方法有很多,可以通过AAPT从APK包中直接获取,也可以通过代码在手机上获取。显然,对于产品或者用户来说要获取这些信息,在手机上获取更为简便。下面我们来看下如何在手机上获取其他应用的包名、版本号。核心:通过PackageManager可以获取到我们想要的信息,例如:程序图标、程序名称、包名、VersionName、VersionCode原创 2014-07-14 11:21:48 · 12688 阅读 · 0 评论 -
应用获取ROOT权限实践
在开发过程当中会有需要root权限,原创 2014-09-18 11:45:46 · 664 阅读 · 0 评论 -
FindBugs应用实践
最近在做代码级别的测试,评估了一下现有的开源工具。发现FindBugs是一个既简单又实惠的Eclipse原创 2014-09-18 11:33:38 · 754 阅读 · 0 评论 -
Android Studio使用自我总结
总结一下使用Android Studio: 1. Android Studio中的Project即是Eclipse中的workspace,这个在起初使用的时候颇为不顺,后来才慢慢意识到这点,强制自己改变观点。2. Android Studio中的Module是Eclipse中的Project3. 新增的.aar格式的SDK包,导入项目时比较方便,直接作原创 2015-06-10 15:59:26 · 1151 阅读 · 0 评论 -
打Android渠道包简易脚本
大家可能在日常工作中有需要打多个渠道包的需求,如果数量较少的话可以直接通过手动来完成,如果数量比较庞大的话就需要脚本来执行了。下面给出一种比较简单的,效率较高的打渠道包的方法。这个方法是通过全程批处理来完成的,不需要其他语言协助。思路:生成母包->反编译->修改渠道号->打包->签名->对齐(这里没有使用到直接打包的方法而使用了拆包打包,原因是直接打包的速度比较慢如果遇到大批量的生成的话会原创 2015-06-10 16:16:15 · 1341 阅读 · 0 评论 -
Android Studio 2.0编译报错解决方法
升级Android Studio以后感觉编译变慢了,编译之后还报错,居然说我内存不足。老子可是16G内存。解决方法:在build.gradle中添加: dexOptions { javaMaxHeapSize "8g" }如果觉得不好看,编译一次再去掉就可以了~原创 2016-04-13 14:06:40 · 869 阅读 · 0 评论 -
通过网络实现远程操作Android设备
首先需要把Android设备连接到电脑上,先要打开tcpip连接方式:adb tcpip 5555默认端口是5555,如果要使用其他端口可以直接修改之后查看到设备IP,保证电脑和设备网络可以互通访问。然后就可以通过网络连接了adb connect 192.168.1.4:5555连接成功后就可以使用adb命令对手机进行相应的操作了。原创 2017-10-10 18:47:12 · 4454 阅读 · 2 评论 -
浅谈Android应用性能之启动时间
应用程序的启动时间也是衡量应用性能好坏的重要指标之一,所以我们来看一下如何获取一个程序启动所需的时间。获取程序启动的时间有几种方法,详情见下文分析:方法一:通过log获取。思路:通过记录开始时间与结束时间,计算时间差来获取启动时间。在onCreate()方法最后一行加入log.e("TAG",""finish),通过查看logcat中的log输出来计算程序启动时间。此种原创 2014-03-03 23:48:08 · 1690 阅读 · 0 评论 -
通过脚本实现指定的Monkey操作
虽然说我们知道Monkey是monkey.jar相手机发送伪随机事件流,但是通过对monkey的API研究发现,我们可以通过-f这个参数来实现monkey执行脚本。在monkey的源码中我们可以看到以下例子:/** * monkey event queue. It takes a script to produce events * * sample script f原创 2014-02-28 10:00:16 · 5977 阅读 · 1 评论 -
Android平台架构
Android系统的底层建立在Linux系统之上,该平台由操作系统、中间件、用户界面和应用软件四层组成,它采用一种被称为软件叠层(software stack)的方式进行构建。这种软件叠层结构使得之间相互分离,明确各层的分工。这种分工保证了层与层之间的低耦合,当下层的层内或层下发生改变时,上层应用程序无需任何改变。Android系统主要由五部分组成,下面分别对这5部分进行介绍:1.转载 2014-02-26 13:50:33 · 1754 阅读 · 0 评论 -
Android自动化测试工具调研
一、Android自动化测试现状1. Android自动化测试介绍近年来,随着Android智能手机操作系统的快速发展,越来越多的手机厂商及应用提供商专注于Android手机及应用的研发。作为保障手机质量的测试环节位置非常重要,但测试环节工作普遍都非常繁重。能够提高测试质量、提升测试效率、降低测试成本的自动化测试技术在非手机测试领域早已成熟运用,而在手机领域,自动化测试意义虽早已被公认原创 2014-02-26 09:30:06 · 1322 阅读 · 0 评论 -
Android adb命令总结
1. 显示系统中全部Android平台: android list targets2. 显示系统中全部AVD(模拟器): android list avd3. 创建AVD(模拟器): android create avd --name 名称 --target 平台编号4. 启动模拟器: emulator -avd 名称 -sdcard ~原创 2014-02-25 14:29:35 · 974 阅读 · 0 评论 -
通过代码实现获取手机CPU信息
要获取手机CPU的基本信息可分为几类:CPU最高频率、CPU最低频率、CPU当前频率、CPU型号等。以下是获取最高频率信息的代码: public static String getMaxCpuFreq() { String result = ""; ProcessBuilder cmd;原创 2014-02-25 14:08:19 · 3461 阅读 · 0 评论 -
如何拦截Android系统短信
如何拦截Android系统短信?由于Android系统中的短信也是以APP的形式存在的,并且是通过接收系统广播来实现短信的展示。所以,我们只要接收到系统的广播,然后终止该广播即可做到拦截短信。首先需要注册一个系统广播接收器: <receiver android:name=".MsgReceiver" androi原创 2014-02-26 19:05:13 · 914 阅读 · 0 评论 -
Native Driver的搭建及使用
1.在被测程序中加入server-standalone.jar包2.在被测程序的AndroidManifest中加入代码: <instrumentation android:name="com.google.android.testing.nativedriver.server.ServerInstrumentation" android:targe原创 2014-02-26 17:28:45 · 1844 阅读 · 0 评论 -
在Android手机上实现tcpdump抓包
1. 手机要有root权限2. 下载tcpdump http://www.strazzere.com/android/tcpdump3. adb push E:\tcpdump /data/local/tcpdump4. adb shell chmod 6755 /data/local/tcpdump5. adb shell, su获得root权限6原创 2014-02-26 09:46:37 · 1934 阅读 · 0 评论 -
Android记录自己的日志
在Android开发过程中,可能需要自己记录一些log到SD卡。可以通过返回自定义的错误码来验证log是否保存成功。代码见下:public int SaveLog(String path, String fname, String log) { isMount = Environment.getExternalStorageState(); if (isMount.equals("原创 2014-02-25 15:02:57 · 899 阅读 · 0 评论 -
Android平台上Monkey测试的用法
不知道大家是不是听说过一个比较有趣的理论:说,让一百万只猴子在一百万台打字机上随意敲打,经过一百万年的时间他们将能够完成莎士比亚全集。这个理论开始是由十八世纪的达尔文提出的,本来是为了形象说明进化论后来被很多数学家引用来说明数学中的概率问题 显然我们能够执行monkey测试,是因为我们是支持数学家的观点也就是说我们相信在monkey工具持续随机模拟人类的操作的过程中,能够覆盖所原创 2014-02-26 20:41:46 · 1169 阅读 · 0 评论 -
ListView点击单个Item失效问题解决办法
如果ListView中的单个Item的view中存在checkbox,button等view,会导致ListView.setOnItemClickListener无效,事件会被子View捕获到,ListView无法捕获处理该事件.解决方法:在checkbox、button对应的view处加android:focusable="false" android:clickable="原创 2014-02-26 21:30:57 · 938 阅读 · 0 评论 -
通过ddmlib实现截图以及获取手机相关信息
通过ddmlib实现截图、获取手机相关信息Google Android SDK中有一个ddmlib的扩展库,位于sdk/tools/lib/ddmlib.jar。我们引用这个库,就可以实现对手机的截屏以及获取手机的相关信息。引入ddmlib库之后,首先要找到设备对象,所以先要获得到device[]列表,再从列表中取出所需要的设备对象: public IDevice ge原创 2014-02-27 10:36:00 · 2823 阅读 · 2 评论 -
利用PackageManager获取应用版本号
在开发升级功能时,往往要监测旧版的Version code。版本信息可以通过PackageManager来获取: public static int getAppVersionName(Context context) { try { PackageManager pm = context.getPackageManager(); PackageInfo pi = pm.get原创 2014-02-26 17:41:57 · 1589 阅读 · 0 评论