activity

monkey

时间秒杀一切 提交于 2019-12-04 04:21:43
一、monkey简介 在 Android的官方自动化测试领域有一只非常著名的“猴子”叫Monkey,这只“猴子”一旦启动,就会让被测的Android应用程序像猴子一样活蹦乱跳,到处乱跑。人们常用这只“猴子”来对被测程序进行压力测试,检查和评估被测程序的稳定性。 monkey官方文档: http://www.android-doc.com/tools/help/monkey.html Moneky 路径 Monkey程序是Android系统自带的,其启动脚本是位于Android系统的/system/bin目录的Monkey文件,其jar包是位于Android系统的/system/framework目录的Monkey.jar文件。用户主要是通过adb命令来启动Monkey的,Monkey在运行时,会根据命令行参数的配置,生成伪随机的事件流,并在Android设备上执行对应的测试事件。同时,Monkey还会对测试系统进行监测,当出现以下三种情况时会进行特殊处理: 如限定了 Monkey运行在特定包上,当监测到试图转到其他包的操作,将对其进行阻止。 如应用程序崩溃或接收到任何失控异常, Monkey将记录对应的错误日志,并根据命令行参数判断是停止运行还是继续运行。 如果应用程序发生了程序无响应( application not responding)的错误,Monkey将记录对应的错误日志

如何通过命令行查看Android手机的Activtiy堆栈信息和手机分辨率

落花浮王杯 提交于 2019-12-04 03:46:04
查看 activity 栈的状态: adb shell dumpsys activity Android has an interesting command called dumpsys to dump some system information. Even described on adb manual I think that some points should be reinforced. In order to get the complete status just run (will produce a large output): adb shell dumpsys 一些关键命令解释 名字 功能 account 显示accounts信息 activity 显示所有的activities的信息 cpuinfo 显示CPU信息 window 显示键盘,窗口和它们的关系 wifi 显示wifi信息 batteryinfo $package_name 电量信息及CPU 使用时长 package packagename 获取安装包信息 usagestats 每个界面启动的时间 statusbar 显示状态栏相关的信息 meminfo 内存信息(meminfo $package_name or $pid 使用程序的包名或者进程id显示内存信息) diskstats

第七次作业

折月煮酒 提交于 2019-12-04 02:21:26
package com.example.chuangkou; import android.os.Bundle; import android.app.Activity; import android.content.Intent; import android.view.Menu; import android.view.View; import android.widget.EditText; import android.widget.TextView; import android.widget.Toast; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } //点按钮开启第二个窗口 public void click(View v){ Intent intent=new Intent(this,MainActivity2.class); EditText et2=(EditText)findViewById(R.id.et2); String s=et2

Android 夜间模式主题切换方案

核能气质少年 提交于 2019-12-04 01:41:04
由于Android的设置中并没有夜间模式的选项,对于喜欢睡前玩手机的用户,只能简单的调节手机屏幕亮度来改善体验。目前越来越多的应用开始把夜间模式加到自家应用中,没准不久google也会把这项功能添加到Android系统中吧。 业内关于夜间模式的实现,有两种主流方案,各有其利弊,我较为推崇第三种方案: 1、通过切换theme来实现夜间模式。 2、通过修改uiMode来切换夜间模式。 3、通过插件方式切换夜间模式。 值得一提的是,上面提到的几种方案,都是资源内嵌在Apk中的方案, 像新浪微博那种需要通过下载方式实现的夜间模式方案 ,网上有很多介绍,这里不去讨论。 下面简要描述下几种方案的实现原理: 1、通过切换theme来实现夜间模式。 首先在attrs.xml中,为需要随theme变化的内容定义属性 <?xml version="1.0" encoding="utf-8"?> <resources> <attr name="colorValue" format="color" /> <attr name="floatValue" format="float" /> <attr name="integerValue" format="integer" /> <attr name="booleanValue" format="boolean" /> <attr name=

Android Service与Activity之间通信的几种方式

我们两清 提交于 2019-12-04 01:33:44
在Android中,Activity主要负责前台页面的展示,Service主要负责需要长期运行的任务,所以在我们实际开发中,就会常常遇到Activity与Service之间的通信,我们一般在Activity中启动后台Service,通过Intent来启动,Intent中我们可以传递数据给Service,而当我们Service执行某些操作之后想要更新UI线程,我们应该怎么做呢?接下来我就介绍两种方式来实现Service与Activity之间的通信问题 通过Binder对象 当Activity通过调用bindService(Intent service, ServiceConnection conn,int flags) ,我们可以得到一个Service的一个对象实例,然后我们就可以访问Service中的方法,我们还是通过一个例子来理解一下吧,一个模拟下载的小例子,带大家理解一下通过Binder通信的方式 首先我们新建一个工程Communication,然后新建一个Service类 [java] view plain copy <span style= "font-family:System;" > package com.example.communication; import android.app.Service; import android.content.Intent;

Android 设置 横屏 竖屏

你离开我真会死。 提交于 2019-12-04 01:33:08
方法一:在 AndroidManifest.xml中配置 如果不想让软件在横竖屏之间切换,最简单的办法就是在项目的AndroidManifest.xml中找到你所指定的activity中加上android:screenOrientation属性,他有以下几个参数: "unspecified":默认值 由系统来判断显示方向.判定的策略是和设备相关的,所以不同的设备会有不同的显示方向. "landscape":横屏显示(宽比高要长) "portrait":竖屏显示(高比宽要长) "user":用户当前首选的方向 "behind":和该Activity下面的那个Activity的方向一致(在Activity堆栈中的) "sensor":有物理的感应器来决定。如果用户旋转设备这屏幕会横竖屏切换。 "nosensor":忽略物理感应器,这样就不会随着用户旋转设备而更改了("unspecified"设置除外)。 方法二:在java代码中设置 设置横屏代码: setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);//横屏 设置竖屏代码: setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);//竖屏 因为横屏有两个方向的横法

activity中的onPause()和onSaveInstanceState()解析

喜你入骨 提交于 2019-12-04 01:32:02
当用户在开启一个新activity时,当前的activity可能在内存中处于停止状态也可能由于新activity需要更多内存而被系统杀掉了,但不论怎样,当用户在新activity上按返回键时,他希望看到的是原先的activity的界面。原先的activity如果是被重新创建,那么它要恢复到用户最后看到它的样子。那么我们怎么做呢?其实也不难,跟据上一节所述,在onPause()或onStop()或onDestyroy()中保存必要的数据就行了。但是现在google又冒出一个新的东西:onSaveInstanceState(),观其名可知其意:它是专门用来保存实例状态的,这个“实例”不是指的activity对象,而是它所在的进程,因为activity的销毁是因为它所在的进程被杀而造成的。onSaveInstanceState()是在系统感觉需要杀死activity时调用的,它被传入一个参数:Bundle,这个Bundle可以被认为是个map,字典之类的东西,用”键-值”来保存数据。 现在又叫人蛋疼了:不是可以在onPause()中保存数据吗?为什么又搞出这样一个家伙来?它们之间是省木关系呢?原来onSaveInstanceState()的主要目的是保存activity的状态有关的数据,当系统在杀死activity时,如果它希望activity下次出现的样子跟现在完全一样

Android去掉标题栏和全屏[转]

ぃ、小莉子 提交于 2019-12-04 01:11:42
Android去掉标题栏和全屏都是件很容易的事情,最常见的有两种方法: 第一:在程序代码中实现 Java代码 this.requestWindowFeature(Window.FEATURE_NO_TITLE);//去掉标题栏 this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);//去掉信息栏 this.requestWindowFeature(Window.FEATURE_NO_TITLE);//去掉标题栏 this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);//去掉信息栏 注意:这两行代码要写在页面显示之前,即setContentView(R.layout.XXX)之前 第二:在AndroidManifest.xml配置文件中实现标签android:theme Java代码 <activity android:name="Activity1" android:theme="@android:style/Theme

ActivityGroup是如何对嵌入的Activitys进行管理的

扶醉桌前 提交于 2019-12-03 23:08:48
此前,我们对 Activity 进行了一些学习,在 Android 中,还提供了一个 ActivityGroup 类,该类是 Activity 的容器,可以包含多个嵌套进来的 Activitys ,我们接下来依然采用源码分析的方式来了解该类的内部实现。 首先,从 SDK 中和源码中都可以获知, ActivityGroup 类的父类是 Activity ,也就是说二者具有相同的接口和生命周期,同 Activity 一样,也有 onCreate() 、 onPause() 等函数可供我们重载。 在 ActivityGroup 的源码中有成员变量 protected LocalActivityManager mLocalActivityManager; 该变量在 ActivityGroup 的构造函数中创建并初始化,可见, ActivityGroup 的功能实现肯定是要委托给这个对象来完成了。为了给用户开放对此对象的访问, ActivityGroup 提供了 public final LocalActivityManager getLocalActivityManager() { return mLocalActivityManager; } 通过浏览 ActivityGroup 的源码可以发现,几乎全部是以通过 LocalActivityManager 对象来完成的具体动作,比如:

onSaveInstanceState()以及onRestoreInstanceState()的理解

女生的网名这么多〃 提交于 2019-12-03 23:08:39
Activity完整的生命周期 onCreate() --> onStart() --> onRestoreInstanceState() --> onResume() -->onSaveInstanceState() --> onPause() --> onStop() --> onDestroy() 有关onSaveInstanceState以及onRestoreInstanceState这两个方法我们都知道是用于Activity销毁和重建时数据的保存。 按 Back键 或者是调用 finish() 方法去 主动销毁Activity 时,这时候系统会认为是我们不再需要该Activity,系统不会执行onSaveInstanceState。 按 Home键 直接将程序后台,这时候系统会执行onSaveInstanceState()这时候系统知道不是你不需要这个Activity只是后台了。 此时我们唤醒应用,不会执行onRestoreInstanceState这个方法,因为我们后台再唤醒后该Activity并没有 销毁重建 ,所以这时候就不会去调用onRestoreInstanceState。 按 Home键 会执行onSaveInstanceState,然后系统由于内存不足将进程杀死了,这时候系统就感觉自己做的不对,要给你恢复状态