activity

3.在Activity之间传递参数

自闭症网瘾萝莉.ら 提交于 2020-01-23 20:55:40
传递简单数据 findViewById ( R . id . startactivity ) . setOnClickListener ( new View . OnClickListener ( ) { @Override public void onClick ( View v ) { Intent i = new Intent ( MainActivity . this , Main2Activity . class ) ; i . putExtra ( "data" , "hello world" ) ; startActivity ( i ) ; } } ) ; Intent i = getIntent ( ) ; textView = findViewById ( R . id . textView ) ; textView . setText ( i . getStringExtra ( "data" ) ) ; 传递数据包Bundle public void onClick ( View v ) { Intent i = new Intent ( MainActivity . this , Main2Activity . class ) ; // i.putExtra( "data","hello world" ); Bundle b = new Bundle (

Android进阶之路——Handler机制

烈酒焚心 提交于 2020-01-22 22:09:06
Handler简介 Handler在日常开发中或多或少的都用过,在Android开发中是一个比较重要的知识点,希望通过这篇文章会使你对Handler有更全面的理解。 Hanlder设计的初衷或用途主要有两点: 在不同线程中执行任务。 执行定时任务。 Handler基本使用方式 下面代码展示了Handler使用的基本流程。 // 定义一个消息标识符 final int MESSAGE_WHAT_TEST = 100 ; // 1.创建一个Handler对象。 Handler handler = new Handler ( ) { @Override public void handleMessage ( Message msg ) { // 2. 重写handleMessage方法处理发送过来的Message // 判断Message类型 if ( msg . what == MESSAGE_WHAT_TEST ) { // 接收Message中的数据 String data = ( String ) msg . obj ; // 展示数据 textView . setText ( data ) ; } } } ; // 3. 新建一个Message对象承载要传输的数据。 Message msg = new Message ( ) ; // 4. 给Message设置一个标识符

python appium 操作app

烂漫一生 提交于 2020-01-22 11:50:47
下面是一些Python脚本中操作app的用法: 检查app安装情况(返回true/false), driver.is_app_installed(package_name) 安装app driver.install_app("x:/xxx.apk") 卸载app driver.remove_app(package_name) 打开通知栏 driver.open_notifications() 关闭app driver.close_app() 启动app driver.launch_app() 锁定屏幕x秒(不是很好用,锁定后屏幕无法解锁,导致无法后续,本人未找到解锁的方法) driver.lock(X) 模拟摇晃设备 driver.shake 重置应用 driver.resetApp() 检查是否存在某个activity(未找到则返回异常) driver.find_element_by_id(activity) 获取当前的activity: activity = self.driver.current_activity print(u"当前的activity是:", activity) 等待activity启动直到x秒超时,每隔y秒扫描一次 driver.wait_activity(activity, x, y) 将app置于后台运行x s(注意:测试发现置于后台数秒后变为前台时

Application Fundamentals (2/n)

两盒软妹~` 提交于 2020-01-22 09:15:09
1. Activities and Tasks 1.2 Affinities and new tasks 默认情况下,在一个程序中的所有activity都在一个affinity中,这个也使这些activity属于同一个task。但是我们可以在<activity>标签中设置taskAffinity属性来为每一个activity指定一个单独的affinity。不同的应用程序的activity可以被指定为相同的affinity,在同一个应用程序的多个activity也可以被指定为在不同的affinity中。在两种情况下,affinity会起作用: 1) 启动activity的Intent对象中包含 FLAG_ACTIVITY_NEW_TASK 标志。 2) 一个activity将 allowTaskReparenting 属性 设置为true。 FLAG_ACTIVITY_NEW_TASK 标志: 默认情况下,通过 startActivity() 方法激活的activity会加入到和调用者相同的task中,也会放到和存放调用者相同的stack中。但如果传递给 startActivity() 方法的的Intent对象包含了 FLAG_ACTIVITY_NEW_TASK 标志,系统就会把这个新激活的activity放到一个不同的task中去。正如这个标志的字面意义那样,它是一个新的task

[整理]ADB命令行学习笔记

别来无恙 提交于 2020-01-21 15:39:53
global driver # 元素定位 driver.find_element_by_id("id") # id定位 driver.find_element_by_name("name") # name定位 driver.find_element_by_link_text("text") # 链接名定位 driver.find_element_by_partial_link_text("text") # 通过元素部分可见链接文本定位 driver.find_element_by_tag_name("name") # 通过查找html的标签名称定位元素 driver.find_element_by_xpath("xpath") # 路径定位 driver.find_element_by_class_name("android.widget.LinearLayout") # 类名定位 driver.find_element_by_css_selector("css") # css选择器定位 # 元素集合复数定位 driver.find_elements_by_id("id") # id元素集合 driver.find_elements_by_name("name") # name元素集合 driver.find_elements_by_link_text("text") #

Android性能优化典范

梦想的初衷 提交于 2020-01-21 13:32:03
2015年伊始,Google发布了关于 Android性能优化典范的专题 ,一共16个短视频,每个3-5分钟,帮助开发者创建更快更优秀的Android App。课程专题不仅仅介绍了Android系统中有关性能问题的底层工作原理,同时也介绍了如何通过工具来找出性能问题以及提升性能的建议。主要从三个方面展开,Android的渲染机制,内存与GC,电量优化。下面是对这些问题和建议的总结梳理。 0)Render Performance 大多数用户感知到的卡顿等性能问题的最主要根源都是因为渲染性能。从设计师的角度,他们希望App能够有更多的动画,图片等时尚元素来实现流畅的用户体验。但是Android系统很有可能无法及时完成那些复杂的界面渲染操作。Android系统每隔16ms发出VSYNC信号,触发对UI进行渲染,如果每次渲染都成功,这样就能够达到流畅的画面所需要的60fps,为了能够实现60fps,这意味着程序的大多数操作都必须在16ms内完成。 如果你的某个操作花费时间是24ms,系统在得到VSYNC信号的时候就无法进行正常渲染,这样就发生了丢帧现象。那么用户在32ms内看到的会是同一帧画面。 用户容易在UI执行动画或者滑动ListView的时候感知到卡顿不流畅,是因为这里的操作相对复杂,容易发生丢帧的现象,从而感觉卡顿。有很多原因可以导致丢帧,也许是因为你的layout太过复杂

Android性能优化典范

混江龙づ霸主 提交于 2020-01-21 13:31:43
http://www.cnblogs.com/xitang/p/4239818.html 0)Render Performance 大多数用户感知到的卡顿等性能问题的最主要根源都是因为渲染性能。从设计师的角度,他们希望App能够有更多的动画,图片等时尚元素来实现流畅的用户体验。但是Android系统很有可能无法及时完成那些复杂的界面渲染操作。Android系统每隔16ms发出VSYNC信号,触发对UI进行渲染,如果每次渲染都成功,这样就能够达到流畅的画面所需要的60fps,为了能够实现60fps,这意味着程序的大多数操作都必须在16ms内完成。 如果你的某个操作花费时间是24ms,系统在得到VSYNC信号的时候就无法进行正常渲染,这样就发生了丢帧现象。那么用户在32ms内看到的会是同一帧画面。 用户容易在UI执行动画或者滑动ListView的时候感知到卡顿不流畅,是因为这里的操作相对复杂,容易发生丢帧的现象,从而感觉卡顿。有很多原因可以导致丢帧,也许是因为你的layout太过复杂,无法在16ms内完成渲染,有可能是因为你的UI上有层叠太多的绘制单元,还有可能是因为动画执行的次数过多。这些都会导致CPU或者GPU负载过重。 我们可以通过一些工具来定位问题,比如可以使用HierarchyViewer来查找Activity中的布局是否过于复杂,也可以使用手机设置里面的开发者选项

Android性能优化典范

空扰寡人 提交于 2020-01-21 13:31:14
2015年伊始,Google发布了关于 Android性能优化典范的专题 , 一共16个短视频,每个3-5分钟,帮助开发者创建更快更优秀的Android App。课程专题不仅仅介绍了Android系统中有关性能问题的底层工作原理,同时也介绍了如何通过工具来找出性能问题以及提升性能的建议。主要从三个 方面展开,Android的渲染机制,内存与GC,电量优化。下面是对这些问题和建议的总结梳理。 0)Render Performance 大多数用户感知到的卡顿等性能问题的最主要根源都是因为渲染性能。从设计师的角度,他们希望App能够有更多的动画,图片等时尚元素来实现流畅的用 户体验。但是Android系统很有可能无法及时完成那些复杂的界面渲染操作。Android系统每隔16ms发出VSYNC信号,触发对UI进行渲染, 如果每次渲染都成功,这样就能够达到流畅的画面所需要的60fps,为了能够实现60fps,这意味着程序的大多数操作都必须在16ms内完成。 如果你的某个操作花费时间是24ms,系统在得到VSYNC信号的时候就无法进行正常渲染,这样就发生了丢帧现象。那么用户在32ms内看到的会是同一帧画面。 用户容易在UI执行动画或者滑动ListView的时候感知到卡顿不流畅,是因为这里的操作相对复杂,容易发生丢帧的现象,从而感觉卡顿。有很多原 因可以导致丢帧

Android_Day_1 初识安卓Activity

江枫思渺然 提交于 2020-01-21 09:24:45
Android_Day_1 初识安卓Activity 悠哉寒假,苦学java。 眨眼间寒假已经过去了半个月,早上八点躺在床上像婴儿一般醒来,就萌发了想开发安卓app的想法。购买了和java启蒙书一套的《疯狂Android讲义》,好家伙七百多页。看书看得脑壳疼啊,但功夫不负有心人,从早上到下午,也能摸着自己记的笔记写上几个Activity了。 一番摸索后,做出了一个小例子:非常简单的两个Activity界面互跳转,这边按下按钮到①页,那边按下按钮回到②页 早在一开始的时候我有想过安卓是怎样获取用户是否点击过屏幕、点击的是哪一块,这一块将会做什么事。今天才知道了这东西有正经名字: 监听器 . //一个按钮监听器 class MybuttenListener implements View . OnClickListener { @Override public void onClick ( View v ) { Intent intent = new Intent ( ) ; intent . putExtra ( "value" , "这里是第二页" ) ; intent . setClass ( MainActivity . this , Activity02 . class ) ; MainActivity . this . startActivity ( intent ) ;

对于android.intent.action.MAIN和android.intent.category.LAUNCHER的理解

两盒软妹~` 提交于 2020-01-21 05:35:54
当我们使用Android Studio创建一个工程并生成一个Activity时,经常可以在清单文件中看到如下的代码: <activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> 如果我们创建第二个Activity的话,标签里面默是没有action和category的,那么这里的android.intent.action.MAIN和android.intent.category.LAUNCHER有什么作用呢? 通过查阅API文档,了解到它们的作用如下: android.intent.action.MAIN:决定应用的入口Activity,也就是我们启动应用时首先显示哪一个Activity。 android.intent.category.LAUNCHER:表示activity应该被列入系统的启动器(launcher)(允许用户启动它)。Launcher是安卓系统中的桌面启动器,是桌面UI的统称。 action和category都是Intent的组成部分