activity

appium获取android app的包名和主Activity

|▌冷眼眸甩不掉的悲伤 提交于 2020-03-15 12:59:03
方法一 在appium的android setting中选择下载到电脑上的app包,获取Activity。 方法二 在android-sdk中安装build-tools包,进入这个目录。 aapt dump badging *.apk(下载到电脑上的app包路径) 方法三 连接到电脑,打开app。 adb devices(查看手机是否连接到电脑) adb logcat | grep ActivityManager(查看当前正在运行的Activity) 或: adb logcat | grep Displayed(同上) 方法四 手机连接到电脑。 adb devices(查看手机是否连接到电脑) adb shell pm list packages:列出所有的包名,找到所查看包的包名。 adb shell dumpsys package com.android.XXX:查看某个包的具体信息 其它: adb devices:查看Android设备是否连接到电脑。 adb shell dumpsys activity:查看当前运行的是哪个activity,运行的一些进程等 adb shell dumpsys activity activities adb shell pm list packages:列出所有的包名。 adb shell dumpsys package

android获取包名的几种方法

我们两清 提交于 2020-03-15 12:54:34
方法一: adb shell pm list package -f 将获取手机内所有apk对应的包名和路径 方法二: adb shell dumpsys window w | findstr \/ | findstr name= 先打开需要查找的apk后,再敲入以上命令 备注:此方法不一定准确。对于使用qq的时候出现的了问题 com.tencent.mobileqq/com.tencent.mobileqq.activity.LoginActivity (这是方法2,但是不能启动) com.tencent.mobileqq/com.tencent.mobileqq.activity.SplashActivity (这是方法3,可以启动) 方法三: C:\Users\Administrator>adb shell root@msm8916_32_512:/ # logcat | grep android.intent.category.LAUNCHER 方法四: adb shell dumpsys activity > d:\log.txt 先启动需要的查找的apk,再敲入以上命令,在stack #1下查找cmp= 方法五: C:\Users\Administrator>adb shell root@msm8916_32_512:/ # logcat | grep START 附:

你真的会用OnTouchListener、OnClickListener、OnLongClickListener监听事件么?

眉间皱痕 提交于 2020-03-15 05:06:36
android应用中常用的监听 OnTouchListener、OnClickListener、OnLongClickListener ,大家肯定经常使用。但是你真的知道它会产生的神奇效果么?不要忽视这些神奇效果哦!说不定这些神奇效果正是你想要的呢?好,下面请看我的示例。 示例、 首先在Activity中创建一个button,然后对这个button同时设置 OnTouchListener、OnClickListener、onLongClickListener 这三种监听方式。 接着就是重写这三个接口的实现代码了。 java代码: public class ListenerTestActivity extends Activity { private Button mButton; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); mButton = (Button) findViewById(R.id.button); //设置监听 mButton

搞懂这些面试知识点,吊打面试官

孤者浪人 提交于 2020-03-12 22:33:16
一丶设计模式与使用场景 建造者模式: 将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 使用场景比如最常见的 AlertDialog,拿我们开发过程中举例,比如 Camera 开发过 程中,可能需要设置一个初始化的相机配置,设置摄像头方向,闪光灯开闭,成 像质量等等,这种场景下就可以使用建造者模式 装饰者模式: 动态的给一个对象添加一些额外的职责,就增加功能来说,装饰模 式比生成子类更为灵活。装饰者模式可以在不改变原有类结构的情况下曾强类的 功能,比如 Java 中的 BufferedInputStream 包装 FileInputStream ,举个开发中的 例子,比如在我们现有网络框架上需要增加新的功能,那么再包装一层即可,装 饰者模式解决了继承存在的一些问题,比如多层继承代码的臃肿,使代码逻辑更 清晰 还有等等.......观察者模式, 代理模式,门面模式,单例模式,生产者消费者模式。 二丶java 中的线程创建方式,线程池的工作原理 java 中有三种创建线程的方式,或者说四种 1.继承 Thread 类实现多线程 2.实现 Runnable 接口 3.实现 Callable 接口 4.通过线程池 线程池的工作原理: 线程池可以减少创建和销毁线程的次数,从而减少系统资源 的消耗,当一个任务提交到线程池时 a. 首先判断核心线程池中的线程是否已经满了

Android数据持久化(一) SharedPreferences

不问归期 提交于 2020-03-12 13:53:19
前言 前几篇文章主要讲了安卓四大组件之Activity。最近在coding的时候又遇到一个问题:自己项目中有两个Activity分别命名为Activity1和Activity2,而Activity1属于process1,Activity2属于process2,从Activity1跳转到Activity2,然后在Activity2中通过使用SharedPreferences进行保存简单的数据,结果不论怎么操作所取的值都是不正确的,why??? 读完本篇你将有所了解! 备注:本文主要从源码角度进行分析。 简介 SharedPreferences是Android平台上一个轻量级的存储辅助类,用来保存应用的一些常用配置,它提供了string,set,int,long,float,boolean六种数据类型。最终数据是以xml形式进行存储。在应用中通常做一些简单数据的持久化缓存。 流程图 源码分析 来源: CSDN 作者: aphrodite1314 链接: https://blog.csdn.net/aphrodite1314/article/details/104812973

Activity窗口及视图的创建

∥☆過路亽.° 提交于 2020-03-12 12:41:06
Activity是Android应用程序的载体,允许用户在其上创建一个用户界面,并提供用户处理事件的API。但它并不是显示视图,实际上Activity调用了PhoneWindow的setContentView()方法,然后加载视图,将视图放到这个Window上,而Activity其实创建的时候初始化的是Window(PhoneWindow)。Activity其实是个控制单元,即可视的人机交互界面。打个比方,Activity是一个工人,它来控制Window;Window是一面显示屏,用来显示信息;View就是要显示在显示屏上的信息,这些View都是层层重叠在一起(通过infalte()和addView())放到Window显示屏上的。而LayoutInfalter就是用来生成View的一个工具,XML布局文件就是用来生成View的原料。 Activity类的成员变量mWindow的类型为Window,它用来描述一个应用程序窗口。通过这个成员变量,每一个Activity组件就都会有一个对应的Window对象,即一个对应的应用程序窗口。 Window类是一个抽象类,提供了绘制窗口的一组通用API。可以将之理解为一个载体,各种View在这个载体上显示。 Window类有一个类型为Context的成员变量mContext,它指向的是一个Activity对象

Activity之间参数传递

假如想象 提交于 2020-03-12 12:17:32
1、第一种,简单传递。 发送: switch (v.getId()) { case R.id.btn1: EditText editText = findViewById(R.id.editText); Intent intent = new Intent(this, my1Activity.class); intent.putExtra("data", editText.getText().toString()); startActivity(intent); break; 接收: Intent intent=getIntent(); String str1 = intent.getStringExtra("data"); TextView textView=findViewById(R.id.textView3); textView.setText(str1); 2、第二种:使用bundle. 外汇MT4教程 发送: Bundle bundle=new Bundle(); bundle.putString("data1",editText.getText().toString()+editText.getText().toString()); intent.putExtras(bundle); startActivity(intent); 接收: Bundle bundle

android Activity runOnUiThread() 方法的使用

不打扰是莪最后的温柔 提交于 2020-03-11 17:45:28
利用Activity.runOnUiThread(Runnable)把更新ui的代码创建在Runnable中,然后在需要更新ui时,把这个Runnable对象传给Activity.runOnUiThread(Runnable). Runnable对像就能在ui程序中被调用。 /** * Runs the specified action on the UI thread. If the current thread is the UI * thread, then the action is executed immediately. If the current thread is * not the UI thread, the action is posted to the event queue of the UI thread. * * @param action the action to run on the UI thread */ public final void runOnUiThread(Runnable action) { if (Thread.currentThread() != mUiThread) { mHandler.post(action); } else { action.run(); } } 从上面的源代码中可以看出

Postgresql Useful SQL/Commands

a 夏天 提交于 2020-03-11 08:19:06
Update records update cloud_subscribers a set subscriber_location_id=b.subscriber_location_id from mtco_subscribers b where a.org_id='117556' and a.subscriber_id=b.subscriber_id; Connections select count(*) from pg_stat_activity; select client_addr,state,count(*) from pg_stat_activity group by client_addr,state order by count(*) desc; select max_conn,used,res_for_super,max_conn-used-res_for_super res_for_normal from (select count(*) used from pg_stat_activity) t1, (select setting::int res_for_super from pg_settings where name=$$superuser_reserved_connections$$) t2, (select setting::int max

【Android】每个Activity中加入引导界面

*爱你&永不变心* 提交于 2020-03-11 02:12:59
参考文章 【1】 http://www.cnblogs.com/beenupper/archive/2012/07/13/2589749.html 【2】 http://www.cnblogs.com/beenupper/archive/2012/07/18/2597504.html 功能需求:在初次加载每个Activity时,页面载入不同的引导界面。 思路: 1、每个Activity动作都一样,所以必须封装一个BaseActivity,在onStart()方法中实现加载引导页,并对外提供加载接口。其他Activity extends BaseActivity 2、只需要初次加载时显示引导页,所以引入SharedPreferences,用于保存该Activity是否为初次加载 由于引导过的界面就没必要再次引导了。所以得保存记录。这里采用偏好设置保存,如果该Activity被引导过了,就将它的类全名保存下。 由于偏好设置只能保存键值(key-value)对,所以保存多个类名,我采用|a|b|c这种形式保存为value。 3、显示引导页其实就是展示一个全屏的ImageView,在UI上体现为FrameLayout动态加载一个图层,当不需要时remove 4、怎样获取每个Activity这个啥啥FrameLayout?可以考虑使用DecorView